Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.02.02;
Скачать: CL | DM;

Вниз

Кнопка   Найти похожие ветки 

 
Максим   (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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.006 c
15-1376633325
БарЛог
2013-08-16 10:08
2014.02.02
Советы по организации почтового ящика


15-1376656788
Иксик
2013-08-16 16:39
2014.02.02
Размер обычной советской шахматной доски


15-1375869422
Dennis I. Komarov
2013-08-07 13:57
2014.02.02
Barcode Code128


15-1377203403
Юрий
2013-08-23 00:30
2014.02.02
С днем рождения ! 23 августа 2013 пятница


15-1376669029
Потапов А.В.
2013-08-16 20:03
2014.02.02
Посоветуйте планшет на андроид