Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Кнопка сохранения хтмл документа

Доброго времени суток! Нужна помощь в написании скрипта для сохранения html формы как отдельный документ. Прожимать ctrl+s не тот случай. Нужна именно кнопка сохранения, за ранее благодарю!
Ответ: Jodah, что я не так написал? при нажатии на кнопку, должно выдавать окно с сохранением файла, тот же эффект, как при нажатии ctrl+s, только сохранение должно происходить ПОСЛЕ НАЖАТИЯ КНОПКИ НА ФОРМЕ.

Добавлено через 27 секунд
Programust, Спасибо, но пример не подходит
Вопрос: Упростить код кнопки сохранения

Имеется база данных. На форме компонент dataGridViev. При заполнении данных: ряд, место, имя заказчика и нажатии "Изменить заказ" идет сохранение в БД. Помогите упростить код кнопки сохранения. Буду весьма благодарен.

C#
1
2
3
4
5
6
7
8
9
10
11
public void button1_Click(object sender, EventArgs e)
        {
            foreach (Control c in panel1.Controls)            
            {
                foreach (Binding b in c.DataBindings)
                {
                    b.WriteValue();
                }
            }         
            this.saveChanges();
        }
Ответ:
C#
1
2
3
4
5
6
7
public void button1_Click(object sender, EventArgs e)
        {
            foreach (Control c in panel1.Controls)            
                foreach (Binding b in c.DataBindings)
                    b.WriteValue();
            this.saveChanges();
        }
Добавлено через 3 минуты
примерно так еще можно
C#
1
2
3
4
5
public void button1_Click(object sender, EventArgs e)
{
    panel1.Controls.ForEach(c => c.DataBindings.ForEach(b =>  b.WriteValue()));
   this.saveChanges();
}
Вопрос: Упростить функцию

Помогите пожалуйста. Нужно упростить код и сделать так, чтобы была одна функция которая решает пример
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function x2y3(x,y:double):double; 
begin 
x2y3:=x*x+y*y*y; 
end; 
 
function Answ(x:double):double; 
var leftopp,rightopp,sin2sin3:double; 
begin 
sin2sin3:=x2y3(sin(x),sin(x)); 
leftopp:=x2y3(x,x)/sin2sin3; 
rightOpp:=x2y3(x,x)/sqr(sin(1+sin(x))); 
 
Answ:=x2y3(leftOpp,rightOpp); 
end; 
 
begin 
writeln(Answ(24)); 
end.
Ответ:

Не по теме:

Сообщение от Matan!
Ну, да. Но даже если исходить из вопроса "Нужно упростить код и сделать так, чтобы была одна функция" - понятно, что речь вовсе не о простоте кода..
ну яж не до тебя докапываюсь)

Вопрос: Простой чат на C#

Здравствуйте!

Нужно сделать простой чат без авторизаций и прочего. Суть чата:

Я скидываю на хостинг сервер. Скидываю друзьям клиенты. Они заходят в них и сразу могут набирать там текст - без всяких лишних наворотов. Т.е. зашёл в чат и сразу пишешь сообщение и его все видят.

Как такое чудо сделать? Заранее всем спасибо!
Ответ: Когда я хотел написать простой чат на C#, то с WCF у меня возникли сложности, когда я пытался развернуть приложение на удалённом бесплатном хостинге ASP.NET и попробовать с друзьями пообщаться. У меня в целом пока проблемы с WCF с достаточным пониманием для развёртывания на хостинге. Но с SignalR получилось по официальной пошаговой инструкции, правда, она на английском: Файлы отправил на хостинг и всё без проблем заработало. На русском не искал, но с WCF не получилось найти ни в книгах, ни в зарубежных туторах, чтобы было доступно и просто расписано, как сделать простейший общий чат на WCF. Есть только на локальных машинах, но не на сайте.

Мне кажется, что когда учишься, то чтобы мотивация не пропала иногда лучше чтобы конечная цель была достигнута быстрее и понятнее. В данном случае, конечная цель это отравить ссылку на чат другу и потестить с ним. С WCF "Простой чат на C#" может не закончится получением такой ссылки и удовлетворением, что с простым чатом всё понятно и просто.
Вопрос: Сделать простую авторизацию

Помогите сделать простенькую авторизация, мож кто проектом поделитсяв качестве примера ОЧЕНЬ сильно надо для курсовой... не сплю не ем уже 4 дня парюсь... но нечего не получается
Ответ:
Сообщение от zebbi
как образом для этого приложения можно сделать шифрование файла с данными о пользователях целиком
Да как угодно можно, хоть с использованием X509 сертификатов делайте.

Добавлено через 1 минуту
Сообщение от zebbi
есть вариант договориться за вознаграждение.
zebbi, если вы хотите оплатить работу исполнителя - обратитесь в соответствующий раздел, там есть ребята, кто сможет вам помочь.
Вопрос: Простые примеры Canvas

Доброго времени суток! Есть у кого ни будь примеры циклической анимации на Канве ?? Нужно сделать простое движение бесшовной текстуры по X или Y, по принципу ленточного конвейера.

p.s. Пишу на Builder 6.

Добавлено через 42 минуты
У меня есть уже почти готовый пример, но сообразить не могу, какое должно быть условие, для реализации анимации ленточного типа:

Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Graphics::TBitmap *Bitmap, *Buf; //картинки для фона, кораблика и буфер для хранения части рисунка под корабликом
int W,H,x,y; //ширина и высота кораблика, его координаты
TRect BufRct,BackRct; //прямоугольные области, понадобятся для передачи данных в метод CopyRect
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Bitmap = new Graphics::TBitmap(); // картинка
Buf = new Graphics::TBitmap(); // буфер
 
// загрузить картинку, которая будет двигаться
Bitmap->LoadFromFile("imgVoda2.bmp");
// определим "прозрачный" цвет
Bitmap->Transparent = true;
Bitmap->TransparentColor = Bitmap->Canvas->Pixels[1][1];
 
// создать буфер для сохранения копии области фона,
// на которую накладывается картинка
W= Bitmap->Width;
H= Bitmap->Height;
 
Buf->Width= W;
Buf->Height=H;
 
// определим область буфера, которая будет использоваться
// для восстановления фона
BufRct=Bounds(0,0,W,H);
// начальное положение картинки
x = 0;
y = 0;
// определим сохраняемую область фона
BackRct=Bounds(x,y,W,H);
// и сохраним ее
Buf->Canvas->CopyRect(BufRct,Bitmap->Canvas,BackRct);
Form1->DoubleBuffered = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 
// восстановлением фона (из буфера) удалим рисунок
Form1->Image1->Canvas->Draw(x,y,Buf);
 
x = x+ StrToInt(Edit1->Text); //Поплывет вправо
 
if (x>Form1->Image1->Width) x=-W;  //потом снова приплывет слева
 
// выведем рисунок
Form1->Image1->Canvas->Draw(x,y,Bitmap);
 
}
//---------------------------------------------------------------------------
Добавлено через 31 минуту
Немного изменил обработчик для Таймера:

Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 
// восстановлением фона (из буфера) удалим рисунок
Form1->Image1->Canvas->Draw(x,y,Buf);
 
x = x+ StrToInt(Edit1->Text); //Поплывет вправо
 
if (x+W>Form1->Image1->Width) {
        x=-W;  //потом снова приплывет слева
}
Form1->Image1->Canvas->Draw(x+W,y,Bitmap);
Form1->Image1->Canvas->Draw(x,y,Bitmap);
}
Работает практически так, как нужно. Только есть проблема! После завершения круга, происходит сброс, и в этот момент изображение "дергается".

Подскажите пожалуйста, как более правильно реализовать мою задачу ?
Ответ: Геомеханик, Спасибо!) Анимация работает, как нужно)

Теперь пытаюсь сделать наложение динамического слоя, поверх анимированного. Суть в том, чтобы поверх анимированного, лежал полупрозрачный слой с изменяемым градиентным цветом. Для статической картинки проблем нет:

Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Bitmap1 = new Graphics::TBitmap(); // Анимированная картинка
Bitmap2 = new Graphics::TBitmap(); // Верхний полупрозрачный слой
 
Bitmap1->LoadFromFile("imgVoda2.bmp");
 
Bitmap2->Height =50;  //размеры как у Image1
Bitmap2->Width = 360;
Bitmap2->Canvas->Brush->Color = clBlue;
Bitmap2->Canvas->FillRect(Rect(0,0,360,50));
 
//Устанавливаем прозрачность для верхнего слоя
BLENDFUNCTION blend;
blend.BlendOp = AC_SRC_OVER;
blend.BlendFlags = 0;
blend.SourceConstantAlpha = 128;
blend.AlphaFormat = 0;
 
::AlphaBlend(Bitmap2->Canvas->Handle,0,0,
Bitmap1->Width,Bitmap1->Height,Bitmap1->Canvas->Handle,0,0,
Bitmap1->Width,Bitmap1->Height,blend);
 
Image1->Canvas->Draw(0,0,Bitmap2); //рисуем верхний слой
Пока, для примера использую просто заливку синим цветом.

Как то можно модифицировать ваш пример, чтобы верхний слой "жил" сам по себе ?

Добавлено через 2 часа 50 минут
У меня получилось следующее:

Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Bitmap1 = new Graphics::TBitmap(); // Анимированная картинка
Bitmap2 = new Graphics::TBitmap(); // Верхний полупрозрачный слой
 
Bitmap1->LoadFromFile("imgVoda2.bmp");
 
Bitmap2->Height =50;  //размеры как у Image1
Bitmap2->Width = 500;
Bitmap2->Canvas->Brush->Color = clBlue;
Bitmap2->Canvas->FillRect(Rect(0,0,500,50));
 
//Устанавливаем прозрачность для верхнего слоя
 
blend.BlendOp = AC_SRC_OVER;
blend.BlendFlags = 0;
blend.SourceConstantAlpha = 128;
blend.AlphaFormat = 0;
 
 
::AlphaBlend(Bitmap2->Canvas->Handle,0,0,
Bitmap1->Width,Bitmap1->Height,Bitmap1->Canvas->Handle,0,0,
Bitmap1->Width,Bitmap1->Height,blend);
 
}
Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void TForm1::offset_horz(HDC hDC, Graphics::TBitmap* src, int& off, int dir){
 
        HDC src_dc = src->Canvas->Handle;
 
         Label2->Caption = IntToStr(src->Width - off);
 
        off += dir;
        if(off >= src->Width)
                off = 0;
        else if(off < 0)
                off = src->Width - 1;
 
        BitBlt(hDC, off, 0, src->Width - off, src->Height, src_dc, 0, 0, SRCCOPY);
        BitBlt(hDC, 0, 0, off, src->Height, src_dc, src->Width - off, 0, SRCCOPY);
 
 
        BitBlt(hDC, 0, 0, off, src->Height, Bitmap2->Canvas->Handle,
                src->Width - off, 0, SRCCOPY);
        BitBlt(hDC, off, 0, src->Width - off, src->Height,
                 Bitmap2->Canvas->Handle, 0, 0, SRCCOPY);
 
}
Практически то, что нужно. Но есть один момент. В таком исполнении, оба Bitmap'a двигаются.

А вот как сделать, чтобы второй стоял на месте, а первый двигался, ни как сообразить не могу...
Вопрос: Сохранение книги Excel по указанному пути

подскажите, вот код на VBA, для сохранения инфы, а какой синтаксис на С#?
vb.net
1
2
3
4
5
6
7
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Кнопка сохранения
        Dim SFD As New SaveFileDialog With {.Filter = "*.xls|*.xls |*.xlsx|*.xlsx"}
        If SFD.ShowDialog = DialogResult.OK Then
            Exc.ActiveWorkbook.SaveAs(SFD.FileName)
        End If
    End Sub
Ответ:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DialogResult res = MessageBox.Show("Экспорт завершен. При нажатии Yes будет открыт сгенерированный файл, при нажатии No будет предложено сохранить файл.", "Экспорт в Excel", MessageBoxButtons.YesNoCancel);
                if (res == DialogResult.Yes)
                { excel.Visible = true; }
                if (res == DialogResult.No)
                {
                    string fileName = String.Empty;
                    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                    saveFileDialog1.Filter = "xls files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
                    saveFileDialog1.FilterIndex = 1;
                    saveFileDialog1.RestoreDirectory = true;
                    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        fileName = saveFileDialog1.FileName;
                    }
                    else
                        return;
                    //сохраняем Workbook
                    wb.SaveAs(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                    saveFileDialog1.Dispose();
                }
                if (res == DialogResult.Cancel)
                {
                    StatusLabel.Text = "Сохранение результатов экспорта отменено";
                }
Вопрос: Кнопки "сохранить" и "отмена"

Сейчас в форме Change кнопка сохранения работает только для одной ячейки, записал в ячейку, нажал на сохранить.

Как сделать так, чтобы запись происходила для многих ячеек, а после этого можно было все сохранить?
И кнопка отмена должна возвращать предыдущее значение листа, если не нажимали сохранить.
Ответ: Burk, а не знаете, как сделать так, чтобы при удалении листа не выходило сообщение: действительно удалить лист?

Добавлено через 26 минут
Burk, уже нашла, спасибо за помощь)
Вопрос: При сохранении данных в локальную бд они как бы и сохраняются и как бы нет

Вообщем есть 2 таблицы, который созданы в локальной БД c#. Я открываю exe файл программы и в эти две таблицы спокойно заношу данные и потом их сохраняю, при повторном открытии-закрытии, эти данные есть, но у меня есть 3 вкладка, где отображаю итоги по запросу в dataGrivView и минус в том, что новые занесенные данных не отображаются, в чём проблема?

Код кнопки сохранения -
C#
1
2
dataGridView1.CurrentCell = dataGridView1[0, (dataGridView1.CurrentRow.Index) + 1];
            this.список_студентовTableAdapter.Update(this.collegeStatisticDataSet.Список_студентов);
Ответ: У меня не привязана таблица в 3 окне, это чисто дата грид виев, где жму кнопку и обрабатывается запрос из первых двух таблиц и выводится в грид и всё.
Вопрос: Как сделать простейший поиск по сайту на html без баз данных

Добрый день.

Как новичок в вопросе, понимаю, насколько тяжело объяснять таким как я примитивные вещи.

Я делаю сайт уже более 10 лет. Несколько лет назад перевёл всё в HTML5. Сайт пишу сам, ручками в блокноте, ничего другого не использую. Сайт на самом деле весьма крупный и посещаемый, но ничего более HTML я за эти годы не освоил, ну как-то не требовалось, ведь сайт чётко структурирован, типичный Web 1.0, никакого взаимодействия с пользователями не предусматривалось. Баз данных никаких нет, сайт - более 900 статических страниц формата .htm Для удобства использую, естественно, CSS и SSI, так что если что изменить надо - проблем тоже нет. Благодаря помощи вставил одну страничку PHP для вывода рандомной информации в одном из разделов.

Теперь вот захотелось следующее:
прикрутить к сайту поиск, но не Яндекс (Гугл), не по таблицам (которых нет) и не по тексту страниц (нафиг не надо).
Суть простейшая до невозможности:

Пример: есть страницы под названиями АБВ, ГДЕ, и ЖЗК (и ещё 900 штук)
Нужна кнопка поиск, работающая так: пользователь вводит нужную ему страницу в формате, например ГДЕ.
Я делаю страницу с таблицей с простейшим соответствием запроса нужному файлу. То есть сам вручную пишу, что если введено ГДЕ, то открывается страница ГДЕ.htm Все поправки на ошибки вбиваю туда же, то есть если я знаю, что вместо ГДЕ пользователь часто пишет ГДЁ, то я и вобью в таблицу все нужные значения.

Вот собственно и всё. Я прилежно прочитал пару десятков тем с подобными вопросами, но нигде инструкции, как же именно это сделать не нашёл. Понимаю, что плохо искал, наверное. А сам написать подобное я не в состоянии.

Может оно вообще не надо? Но пользователи просят.

Добавлено через 2 часа 34 минуты
Копался и в темах, и на сайтах-базах бесплатных скриптов - без толку. Потому что предлагается поиск, то есть программа сама ищет соответствие по страницам, а этого не надо. Надо то простое перенаправление пользователя, чтобы он мог вписать в окно запроса - хочу на страницу про А и по нажатии кнопки попасть на страницу А.htm
Ответ: Сура, все дело в скорости поиска. Для "живого поиска" это особенно актуально.

Добавлено через 9 минут
Если вам удобнее писать что-то вроде

страница1;ключ1;ключ2;...
страница2;ключ5;ключ6;...

это можно устроить. Я вам показала структуру в том виде, в котором она будет храниться в базе данных.