Topic: определить форму
помогите !!
мне нужно получить имя формы на которой произошло действие (любое действие)
My Visual Database → Russian → определить форму
помогите !!
мне нужно получить имя формы на которой произошло действие (любое действие)
Привет Sibprogsistem,
Возможно, попробуйте так..
С уважением,
Derek.
Возможно, попробуйте так..
Супер, спасибо!!!
Процедура инициализирует переменную-параметр:
procedure CForm(AObject: TObject; var AForm: TAForm);
// определение формы компонента
begin
AForm := TAForm(TComponent(AObject).Owner);
end;
Подходит для любых событий, кроме событий формы
procedure frmImage_PreviewImage_OnClick (Sender: TObject);
var
tmpForm:TAForm;
begin
CForm(Sender,tmpForm);
ShowMessage(tmpForm.Name);
end;
Вторая полезная функция находит компонент на форме с проверкой или без:
procedure FindC(AForm: TAForm; AName: string; var AComponent: TComponent; ACheck: boolean = True);
// поиск компонента на форме с контролем
begin
AComponent := AForm.FindComponent(AName);
// если включен контроль, а компонент не найден
if ACheck and (AComponent = nil) then // возбуждаем исключение
RaiseException('На форме ' + AForm.Name + ' не найден компонент ' + AName);
end;
Это позволяет создавать универсальные обработчики, не привязанные к конкретной форме или компоненту:
procedure frmImage_panPreview_OnResize (Sender: TObject);
// изменение размера
var
tmpPanel: TdbPanel;
tmpForm:TAForm;
tmpScrollBox: TScrollBox;
begin
CForm(Sender,tmpForm);
tmpPanel := TdbPanel(Sender);
FindC(tmpForm,'scbPreview',tmpScrollBox,False);
...
end;
Это позволяет создавать универсальные обработчики, не привязанные к конкретной форме или компоненту:
Спасибо
My Visual Database → Russian → определить форму
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi