![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему-то происходит пересоздание формы
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);