Текущий архив: 2003.11.27;
Скачать: CL | DM;
ВнизСоздание объектов Найти похожие ветки
← →
WCM (2003-11-16 18:51) [0]Господа. Есть такая проблемка. Я создаю объект от TCustonControl
и добавляю поле FSomeForm: TForm;
При событии OnClick эта заранее подготовленная форма должна высвечиваться с отображением свойств этого объекта.
constructor MyObject.Create;
begin
inherited;
FSomeForm := TForm.Create(self);
...
end;
procedure MyObject.Click;
begin
FSomeObject.ShowModal;
end;
А вместо моей подготовленной формы появляется форма абсолютно других размеров, без Caption и т.д.
В чем ошибка? Заранее спасибо.
← →
Vlad (2003-11-16 19:08) [1]Ты создал FSomeForm a ShowModal вызываешь у некого FSomeObject
← →
Zacho (2003-11-16 19:10) [2]Подозрения вызывает следущее:
1. FSomeForm := TForm.Create(self);
и
FSomeObject.ShowModal
2. FSomeForm := TForm.Create(self); А может, надо FSomeForm := TSomeForm.Create(self) ?
← →
WCM (2003-11-16 19:16) [3]Да, ведь FSomeForm является полем объекта FSomeObject
← →
Vlad (2003-11-16 19:16) [4]
> Zacho © (16.11.03 19:10) [2]
> 2. FSomeForm := TForm.Create(self); А может, надо FSomeForm
> := TSomeForm.Create(self) ?
Вроде он сказал что FSomeForm - это поле класса, а не отдельный объект, тогда вроде все сходится. Но что такое FSomeObject - неясно.
← →
Vlad (2003-11-16 19:21) [5]
> WCM (16.11.03 19:16) [3]
А метод ShowModal для объекта FSomeObject(который наследник TCustomControl) ты сам написал или как ?
← →
Anatoly Podgoretsky (2003-11-16 19:25) [6]Все правильно, ты создал объект TForm его ты и видишь.
← →
Zacho (2003-11-16 19:26) [7]Очень сильно подозреваю, что дело именно в FSomeForm := TForm.Create(self);
А вместо моей подготовленной формы появляется форма абсолютно других размеров, без Caption и т.д.
Естественно, появляется экземляр TForm, а не формы которую ты "подготовил"
Вобщем, автору - читать учебники по Object Pascal.
← →
WCM (2003-11-16 19:29) [8]Господа, прошу простить - я не то написал.
_FSomeForm.ShowModal;_
FSomeObject.ShowModal - НЕ ЧИСЛИТЬ!
Структура MyObject и все остальное:
type
MyObject = class (TCustomControl)
private
...
FSomeForm: TForm;
FOnClick : TNotifyEvent;
...
protected
...
procedure Click; override;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
...
public
...
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
constructor TSomeObject.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{ Настройка формы свойств }
FSomeForm := TForm.Create(self);
...
end;
procedure TSomeObject.Click;
begin
inherited;
FSomeForm.ShowModal;
end;
← →
Zacho (2003-11-16 19:48) [9]
> WCM (16.11.03 19:29) [8]
И что ты хочешь ? Ты создал экземпляр TForm вот и получай именно TForm, а не некую твою форму.
← →
WCM (2003-11-16 20:30) [10]Спасибо - решил.
Страницы: 1 вся ветка
Текущий архив: 2003.11.27;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c