Текущий архив: 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.48 MB
Время: 0.047 c