![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
правильное объявление процедур
FIL-23 © (2012-12-02 22:41:00)Объясните глупому. Есть две формы из первой формы хочу вызвать процедуру второй формы. А процедура второй формы содержит набор процедур. так вот, как правильно объявить процедур во второй форме, чтобы он могла создавать форму2 и другие процедуры выполнять.
примерно так:
форма1
вызвать форма2.супер_пупер_процедура
форма2.супер_пупер_процедура
begin
созадть форму2
нарисовать кнопочку
очистить поля
end;
Германн (2012-12-03 04:10:00) [1]
> примерно так:
>
> форма1
> вызвать форма2.супер_пупер_процедура
>
> форма2.супер_пупер_процедура
> begin
> созадть форму2
> нарисовать кнопочку
> очистить поля
> end;
А почему бы не так:
форма1
вызвать конструктор формы2
в конструкторе нарисовать кнопочку и очистить поля.
после использования формы2 - уничтожить её.
Или так:
"Автосоздать" форму2
в OnShow формы2 очистить поля и определить видимость кнопок и/или их названия.
P.S.
Давай задачу, а не вопрос.
Имхо понятие class procedureпока, имхо, не для тебя.
DVM (2012-12-02 23:56:00) [2]
> FIL-23 (02.12.12 22:41)
Если я тебя правильно понял, что то типа такого:
type
TfrmNewTemplate = class(TForm)
grpbxTemplateSize: TGroupBox;
btnOk: TButton;
btnCancel: TButton;
edtTemplateWidth: TEdit;
edtTemplateHeight: TEdit;
lblTemplateWidth: TLabel;
lblTemplateHeight: TLabel;
procedure btnOkClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
private
{ Private declarations }
public
class function ShowDialog(var AWidth, AHeight: integer): Boolean;
end;
implementation
{$R *.dfm}
//------------------------------------------------------------------------------
class function TfrmNewTemplate.ShowDialog(var AWidth, AHeight: integer): Boolean;
begin
with TfrmNewTemplate.Create(Application) do
try
edtTemplateWidth.text := IntToStr(AWidth);
edtTemplateHeight.text := IntToStr(AHeight);
case ShowModal of
mrOk:
begin
AWidth := StrToInt(edtTemplateWidth.text);
AHeight := StrToInt(edtTemplateHeight.text);
Result := True;
end;
else
Result := False;
end;
finally
Free;
end;
end;
Юрий Зотов (2012-12-02 23:48:00) [3]
> FIL-23 (02.12.12 22:44) [1]
> привильно ли будет описать процедура в классе формы2 ?
Или class procedure (как в [2]), или просто процедура (в модуле формы 2, но не в классе формы 2).
Игорь Шевченко (2012-12-02 22:54:00) [4]class procedure
FIL-23 (2012-12-02 22:44:00) [5]привильно ли будет описать процедура в классе формы2 ?