Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему-то происходит пересоздание формы


sinys ©   (2007-01-18 23:27:00) 

Вот такой код у меня есть:
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:50:00) [1]

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

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


sinys   (2007-01-18 23:46:00) [2]

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


Anatoly Podgoretsky   (2007-01-18 23:44:00) [3]

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

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

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


DiamondShark   (2007-01-18 23:43:00) [4]


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

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


Anatoly Podgoretsky   (2007-01-18 23:43:00) [5]

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

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


sinys   (2007-01-18 23:41:00) [6]

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

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


Kolan   (2007-01-18 23:39:00) [7]

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

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


TElem — форма?


DiamondShark   (2007-01-18 23:38:00) [8]

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


Kolan   (2007-01-18 23:37:00) [9]

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

[1]

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


sinys   (2007-01-18 23:37:00) [10]

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

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


Kostafey   (2007-01-18 23:36:00) [11]

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


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


sinys   (2007-01-18 23:35:00) [12]

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


DiamondShark   (2007-01-18 23:34:00) [13]


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

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


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

вот тут:

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


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


sinys   (2007-01-18 23:33:00) [14]

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


Kostafey   (2007-01-18 23:32:00) [15]

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


Anatoly Podgoretsky   (2007-01-18 23:31:00) [16]

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

Как это

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

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо