Форум: "Начинающим";
Текущий архив: 2014.02.02;
Скачать: [xml.tar.bz2];
ВнизКнопка Найти похожие ветки
← →
Максим (2013-03-21 23:05) [0]Здравствуйте. Имеются две формы. Суть в том, что вторая форма должна заменить несколько других. На 2-ой форме есть кнопка без обработки. При вызове второй формы из первой ,наждо создать событие для кнопки на 2-ой форме. как делать не знаю.Спасибо.
← →
Rouse_ © (2013-03-21 23:07) [1]Если я правильно понял поток мысли - проблема в том что ты не знаешь как в рантайме назначить обработчик OnClick конкретной кнопке?
← →
Максим (2013-03-21 23:14) [2]не дописал
← →
Максим (2013-03-21 23:16) [3]в первой форме создать событие для кнопки на 2-ой форме и передать ей.
← →
Rouse_ © (2013-03-21 23:20) [4]
> Максим (21.03.13 23:16) [3]
> в первой форме создать событие для кнопки на 2-ой форме
> и передать ей.
Создать событие - это ты конечно маханул.
А вот назначить существующее, конечно можно.
Покажи как пробовал сделать.
← →
clickmaker © (2013-03-21 23:20) [5]procedure TForm1.Form2ButtonCLick(Sender: TObject);
begin
ShowMessage("Bingo");
end;
Form2.Button1.OnClick := Form2ButtonCLick;
← →
Rouse_ © (2013-03-21 23:23) [6]
> clickmaker © (21.03.13 23:20) [5]
Воть жеж, нет чтобы довести человека до осмысления данного кода :)
← →
clickmaker © (2013-03-21 23:25) [7]ну так, пусть осмысливает теперь )
← →
Максим (2013-03-21 23:27) [8]procedure TForm3.BtnDobavitClick(Sender: TObject);
begin
Form1.OborudTable.Insert;
DBGrid1.SetFocus;
end;
все прекрасно работает.
← →
Максим (2013-03-21 23:29) [9]но, этот код надо перенести на form1 и что бы он передавался кнопке BtnDobavit на form3. что-то типа этого...
← →
Rouse_ © (2013-03-21 23:34) [10]
> Максим (21.03.13 23:29) [9]
> но, этот код надо перенести на form1 и что бы он передавался
> кнопке BtnDobavit на form3. что-то типа этого...
Сам понял что сказал?
← →
Максим (2013-03-21 23:52) [11]а если так...
суть программы состоит в том, что заносятс данные в базу данных.
сама програма состоит ~ из 8 окон.
Это оборудование, где стоит и т.д.
каждое окно обращается к своему AdoTable.
Хочется убраь лишние окна и оставить шавлон.кнопка у каждой формы называется сохранить и имеет один и тотже код(различие только в том что обращю к разным ...Table)
Но загвоздка в том, что я не знаю как.
← →
clickmaker © (2013-03-22 00:45) [12]> Хочется убраь лишние окна и оставить шавлон.кнопка у каждой
> формы называется сохранить и имеет один и тотже код
создай базовую форму с этой кнопкой, наследуй остальные от нее, только переопределяй таблицу
← →
Германн © (2013-03-22 01:41) [13]
> Хочется убраь лишние окна и оставить шавлон.кнопка у каждой
> формы называется сохранить и имеет один и тотже код(различие
> только в том что обращю к разным ...Table)
> Но загвоздка в том, что я не знаю как.
>
Добавь в эту форму свойство, которое будет характеристикой того, с каким полем таблицы она (форма) в данном случае работает. А в обработчике OnClick той самой кнопки сделай выбор вариантов с помощью оператора case.
← →
Максим (2013-03-24 18:23) [14]а можно пример с оперрат case?
procedure TForm1.mmiOborudClick(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure TForm3.BtnDobavitClick(Sender: TObject);
begin
Form1.OborudTable.Insert;
DBGrid1.SetFocus;
end;
procedure TForm3.BtnSaveClick(Sender: TObject);
begin
if Form1.OborudTable.Modified then
Form1.OborudTable.Post;
Close;
end;
← →
Плохиш © (2013-03-25 00:01) [15]Прочитай про использование методов и свойст в выбранной среде разработки.
← →
Германн © (2013-03-25 01:23) [16]
> Максим (24.03.13 18:23) [14]
>
> а можно пример с оперрат case?
>
Можно. Но не поймёшь.
← →
Германн © (2013-03-25 01:38) [17]Да и вообще. Выигрыша при замене восьми конкретно заточенных форм на одну универсальную "8 in 1" в твоём случае не будет никакого. Оставь всё как есть и не парься.
← →
clickmaker © (2013-03-26 11:21) [18]еще вариант: создать DataModule (в котором и будет работа с БД), вынести в него единый обработчик, а формам при создании его назначать. В параметрах обработчика можно передавать всю необходимую инфу для выбора нужной таблицы и т.д.
← →
O'ShinW © (2013-03-26 11:40) [19]одна процедура аля так
procedure RunSql(SQL: string; Param: array of const);
var
i: integer;
begin
Component.SQL.Text := SQL;
for i := low(Param) to High(Param) do
Component.parameter[i].value := Param[i];
Component.Execute;
end;
и дергать ее
ButtonX.onclick
RunSql("insert into Table1 (:id, :name)", [42, "bla-bla"]);
ButtonY.onclick
RunSql("insert into Table2 (:id, :name, :cnt)", [3434, "bla-bla", 34]);
и тп
← →
clickmaker © (2013-03-26 11:44) [20]мы тут походу друг перед другом выпендриваемся ) автору нужен "оперрат case"
← →
Anatoly Podgoretsky © (2013-03-26 15:18) [21]> clickmaker (26.03.2013 11:44:20) [20]
А он как собака, все понимает, только сказать не может
← →
Максим (2013-03-27 17:42) [22]здрасти. Я не собака, у меня ремонт. Редко включаю технику
← →
Максим (2013-03-28 00:18) [23]Исем спасибо. ТЕМА ЗАКРЫТАю SQL я не применял.
← →
Inovet © (2013-03-31 15:33) [24]> [22] Максим (27.03.13 17:42)
> Я не собака, у меня ремонт
"Первоначально он отнесся ко мне неприязненно и даже оскорблял меня, то есть думал, что оскорбляет, называя меня собакой, — тут арестант усмехнулся, — я лично не вижу ничего дурного в этом звере, чтобы обижаться на это слово"
(слова Иешуа из Мастер и Маргарита)
← →
O'ShinW © (2013-04-01 08:40) [25]:)
"Дружба - она ведь разная, березка.. Вот для меня собака - четвероногий друг, а для тебя - трехногий враг"
(беседа русского человека с березкой)
← →
icWasya © (2013-04-01 12:49) [26]>>а для тебя - трехногий враг
А почему враг? Для дерева, мо моему, как раз не враг - зверь вносит азотные удобрения. Вот для бетонного столба будет плохо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.02.02;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.002 c