Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Вниз

Создание объектов   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
7-90144
Term
2003-09-17 09:51
2003.11.27
Мне нужно написать номеронабератель, установил


1-89958
AndreySoft
2003-11-17 17:26
2003.11.27
Как заблокировать комбинации клавиш


1-89909
UDS
2003-11-13 21:08
2003.11.27
Вызов процедуры из другого окна.


1-89879
Agent[007]
2003-11-12 18:57
2003.11.27
RichEdit


14-90070
aVast
2003-11-05 14:32
2003.11.27
а знаете ли вы что такое DELPHI?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский