Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.038 c
8-90005
Darlock
2003-07-23 14:20
2003.11.27
Проблемы с JPEG


14-90110
Yuri Btr
2003-11-04 11:32
2003.11.27
Дата компиляции в файле


1-89919
Sandman25
2003-11-18 11:07
2003.11.27
TListBox.AddItem( , TObject(-1))


1-89970
NetKnight
2003-11-17 16:27
2003.11.27
ehLib & ehGrid


8-90001
Trekk
2003-07-28 14:24
2003.11.27
Как сделать слои?