|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Использование формы со стандартынми компонентами
есть форма, со стандартными компонентами Edit, Label, Box'ы и т.д.
форма должна вызываться примерно раз 30, поэтому есть желание сделать её компонентой, но вот только не знаю как |
#2
|
|||
|
|||
Зачем? У тебя есть форма. Сделай в модуле просто функцию вызова этой формы, еоторая вернет тебе введенные пользователем данный. Типа:
Код:
unit MySuperPuperFrm; interface uses ...; type TMySuperPuperForm = class(TForm) Edit1 : TEdit; Edit2 : TEdit; CheckBox1 : TCheckBox; ... end; function ShowMySuperPuperForm(var E1, E2 : Stirng; var CB1 : Boolean) : Boolean; implementation function ShowMySuperPuperForm(var E1, E2 : Stirng; var CB1 : Boolean) : Boolean; begin With TMySuperPuperForm.Create(Application) Do Begin Result := ShowModal = mrOK; If Result Then Begin E1 := Edit1.Text; E2 := Edit2.Text; CB1 := CheckBox1.Checked; ... End; Free; End; end; ... end. Теперь в любом модуле подключаешь этот свой моуль и вызываешь эту функцию, передав ей набор переменных, типа: Код:
uses MySuperPuperFrm; ... function BoolToStr(B : Boolean) : String; begin If B Then Result := 'Да' Else Result := 'Нет'; end; procedure TForm1.Buttin1Click(Sender : TObject); var E1, E2 : String; CB1 : Boolean; begin if ShowMySuperPuperForm(E1,E2,CB1) Then ShowMessage('User select:'#13#10'E1 = '+E1+#13#10'E2 = '+E2+#13#10'CB1 = '+BoolToStr(CB1)) Else ShowMessage('User cancel the dialog'); end; |
#3
|
|||
|
|||
а всё таки, как сделать комопненту
|
#4
|
|||
|
|||
Для этого надо открыть специальный визард и создать новый класс, потомок от одного из наследников TComponent или его самого. Ну а дальше, внутри, будет ровно то, что я тебе написал, только оформленное в виде метода этого нового класса.
|
#5
|
||||
|
||||
а, не, все не так понял
Последний раз редактировалось NumLock, 09.07.2010 в 23:21. |