![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |