Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
ВнизРазница в создании формы или почему я получаю AV Найти похожие ветки
← →
Andrey V. (2003-08-27 20:55) [0]Есть форма , допустим, FindForm.
На форме кнопка , которая делает FindForm.Height:=200;(до этого было 100)
Форму показываю так :
вариант 1
with TFindForm.Create(Application) do begin
try
ShowModal;
finally
Free;
end;
end;
вариант 2
Application.CreateForm(TFindForm, FindForm);
try
FindForm.ShowModal;
finally
FindForm.Free;
end;
ПОЧЕМУ во втором варианте FindForm.Height:=200 отрабатывает , а в первом - AV ?
← →
Pirat (2003-08-27 21:10) [1]имхо в первом ссылка теряется, хотя форма и принадлежит Application, а во втором примере она сохряняется в FindForm. Delphi ведь смотрит сама скока ссылок ссылается и если что уничтожает, так кажется :)
← →
Романов Р.В. (2003-08-27 21:24) [2]в первом случае надо писать Height:=200;
← →
Anatoly Podgoretsky (2003-08-27 21:32) [3]Романов Р.В. © (27.08.03 21:24) [2]
И во втором тоже, иначе злобный Буратино.
← →
Andrey V. (2003-08-27 21:35) [4]Да всяко пробовал .
Напоминаю , что FindForm.Height:=200 я писал в онклике кнопки расположенной на этой самой форме ...
← →
Романов Р.В. (2003-08-27 21:37) [5]напиши
Height:=200
← →
Дмитрий (2003-08-28 07:04) [6]Ещё помогает вот это:
Self.Height:=200;
Self.Width:=200;
← →
Дмитрий (2003-08-28 07:06) [7]Добавлю, что форма, размеры которой меняются, не должна иметь свойство AutoSize со значением True.
Иначе, хоть 200, хоть 20000 - одинаковый результат - AUTOSIZE.
← →
sniknik (2003-08-28 08:47) [8]Andrey V. (27.08.03 20:55)
вариант 3 (тоже рабочий)
FindForm:= TFindForm.Create(Application);
try
FindForm.ShowModal;
finally
FindForm.Free;
end;
а в первом у тебя переменная FindForm неопределена, вот и исключение. лутше не привязыватся к переменным (FindForm.Height) а а работать с локальным Height (как писали) тогда всегда свяжется правильно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c