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

Вниз

Почему-то происходит пересоздание формы   Найти похожие ветки 

 
sinys ©   (2007-01-18 23:27) [0]

Вот такой код у меня есть:
procedure TMainForm.Button5Click(Sender: TObject);
var el : TElem;
begin
 el.create(count,"cool",1);
 inc(count);
end;

Почему-то после нажатия кнопки у меня срабатывает
procedure TMainForm.FormCreate(Sender: TObject);
Хотя в конструкторе класса нет команды пересоздать форму:
constructor TElem.create(place : integer; text : string; vid : byte);
 var
   myPanel : TPanel;
   myImage : TImage;
   myLabel : TLabel;
begin
 myPanel := TPanel.Create(nil);
 myPanel.Name            :=  "Panel_MY";
 myPanel.Parent          :=  MainForm.Panel_main;
 myPanel.Left            :=  0;
 myPanel.top             :=  place * 30;
 myPanel.Height          :=  30;
 myPanel.Width           :=  MainForm.Panel_main.Width;
...


Как лечиться и где собака зарыта расскажите пожалуйста?!


 
Anatoly Podgoretsky ©   (2007-01-18 23:31) [1]

> sinys  (18.01.2007 23:27:00)  [0]

Как это

el.create(count,"cool",1);

прикажешь понимать?

el := TElem.create(count,"cool",1);


 
Kostafey ©   (2007-01-18 23:32) [2]

Возможно происходит не пересоздание, а перерисовка формы ?


 
sinys ©   (2007-01-18 23:33) [3]

А как по правельному? научи


 
DiamondShark ©   (2007-01-18 23:34) [4]


> Как лечиться

Электричеством.


> и где собака зарыта

вот тут:

>  el.create(count,"cool",1);


Для создания экземпляра конструктор вызывается как классовый метод.


 
sinys ©   (2007-01-18 23:35) [5]

>Возможно происходит не пересоздание, а перерисовка формы ?
Перерисовка это само собой.
Я ставлю брэк-поинт на создание формы и он срабатывает


 
Kostafey ©   (2007-01-18 23:36) [6]

сказано было как правильно:
> el := TElem.create(count,"cool",1);


Но при чем здесь пересоздание окна ?
Как ты определяешь что оно пересоздается ?


 
Kolan ©   (2007-01-18 23:37) [7]

«[3] sinys ©   (18.01.07 23:33)
А как по правельному? научи»

[1]

el := TElem.create(count,"cool",1);


 
sinys ©   (2007-01-18 23:37) [8]

А тьфу ты, точно блин. el := TElem.create(count,"cool",1);

Так объясните пжста почему в том случае происходит пересоздание формы?


 
DiamondShark ©   (2007-01-18 23:38) [9]

Да ни при чём тут пересоздание.
Просто его выкидывает в метод FormCreate.
Что и не мудрено: после вызова метода с мусорным указателем ещё и не такие чудеса бывают. Тут, считай, что повезло.


 
Kolan ©   (2007-01-18 23:39) [10]

«[8] sinys ©   (18.01.07 23:37)
А тьфу ты, точно блин. el := TElem.create(count,"cool",1)
;

Так объясните пжста почему в том случае происходит пересоздание
формы?»


TElem — форма?


 
sinys ©   (2007-01-18 23:41) [11]

>TElem — форма?
Нет конечно, а что из конструктора это не следует?

>после вызова метода с мусорным указателем ещё и не такие чудеса бывают
А что ещё бывает? - ну так на будущее, интересен чужой опыт


 
DiamondShark ©   (2007-01-18 23:43) [12]


> А что ещё бывает?

Акцесс виолейшн бывает.
Под 95 даже синие экраны бывали.
Это так... по чужому опыту.


 
Anatoly Podgoretsky ©   (2007-01-18 23:43) [13]

> Kolan  (18.01.2007 23:39:10)  [10]

Какая разница, el во первых не инициализирован. Во вторых непонятно использование классового метода.


 
Anatoly Podgoretsky ©   (2007-01-18 23:44) [14]

> sinys  (18.01.2007 23:41:11)  [11]

>после вызова метода с мусорным указателем ещё и не такие чудеса бывают
А что ещё бывает? - ну так на будущее, интересен чужой опыт

Теоритически можно и систему испортить.


 
sinys ©   (2007-01-18 23:46) [15]

>Теоритически можно и систему испортить.
XP настолько не устойчива? А vista как?


 
Anatoly Podgoretsky ©   (2007-01-18 23:50) [16]

> sinys  (18.01.2007 23:46:15)  [15]

При чем тут устойчивость, что файлы запрещено удалять?



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

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

Наверх




Память: 0.5 MB
Время: 0.774 c
15-1168464147
GanibalLector
2007-01-11 00:22
2007.02.04
Порты в дистанц. управлении рабочим столом(mstsc.exe)


2-1169293784
afro
2007-01-20 14:49
2007.02.04
Помогите проверить на идентичность два tmemorystream


3-1163410504
Gyrus
2006-11-13 12:35
2007.02.04
Скопировать таблицы


3-1163647680
petvv
2006-11-16 06:28
2007.02.04
Непонятный глюк при запросе и выводе в отчёт


15-1168867695
IMHO
2007-01-15 16:28
2007.02.04
Бумер vs. Антибумер