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

Вниз

Открытие диалога из формы наследника   Найти похожие ветки 

 
DiamondeX ©   (2010-06-18 00:09) [0]

Есть такая форма:
unit MainBaseFU;
...
type
 TMainBaseF = class(TBasicF)
   LoadImgBtn: TButton;
   LoadPictureDlg: TOpenPictureDialog;
   ...
 end;

В ней у кнопки LoadImgBtn нет обработчика нажатия на кнопку, но он есть в форме-наследнице, что показано ниже:
unit CaptureLrFU;
...
type
 TCaptureLrF = class(TMainBaseF)
   procedure LoadImgBtnClick(Sender: TObject); override;
   ...
 end;

implementation

procedure TCaptureLrF.LoadImgBtnClick(Sender: TObject);
begin
 ShowMessage("before open picture");
 if not LoadPictureDlg.Execute then Exit;
 ShowMessage("after open picture");
end;



По непонятной причине открытие окна диалога не происходит, и после сообщения "before open picture" сразу появляется "after open picture". Кто знает в чем тут дело?


 
DiamondeX ©   (2010-06-18 00:54) [1]

Кстати, директива override тут никакой роли не играет. До ее добавления тоже диалог не открывался.


 
Германн ©   (2010-06-18 01:36) [2]

truth is out there


 
DiamondeX ©   (2010-06-18 02:15) [3]

Ошибку нашел: причина вовсе не в наследовании, как оказалось. Просто в свойство FileName диалога до вызова LoadImgBtnClick было занесено некорректное имя файла (фактически это оказалось именем папки, так как заканчивалось слэшем), что почему-то не вызывало возмущения у контрола-диалога. Очевидно именно по этой причине диалог совсем не открывался.

Тему, думаю, можно закрыть.



Страницы: 1 вся ветка

Текущий архив: 2010.09.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
2-1276357423
DROWSY
2010-06-12 19:43
2010.09.12
2 запроса в Firebird 1.5


15-1276860797
SD Software
2010-06-18 15:33
2010.09.12
Как скомпилировать драйвер


2-1276588631
_REA
2010-06-15 11:57
2010.09.12
AnsiChar constant


2-1275858326
HRustBB
2010-06-07 01:05
2010.09.12
Как залить TImage TBitmap-ом


15-1274256143
12
2010-05-19 12:02
2010.09.12
Помогите пропатчить dll. Обход ошибочного кода. Не взлом!