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

Вниз

Можно ли присваивать значения полей неинициализированной формы?   Найти похожие ветки 

 
DROWSY   (2010-10-04 06:58) [0]

Обычная неавтоинкрементная форма:
type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

Если её не инициировать (Form1:=nil), то
почему присвоение Form1.Caption := "  ";  не вызывает какого-нибудь исключения, типа AcessViolation?


 
brother ©   (2010-10-04 07:27) [1]

> Можно ли присваивать значения полей неинициализированной
> формы

нет

> Если её не инициировать (Form1:=nil),

это где ты смотрел?


 
DROWSY   (2010-10-04 07:40) [2]

В отладчике перед присвоением, например.
Кроме того, ставил точку останова на TForm1.onCreate - не вызывается.


 
DROWSY   (2010-10-04 07:44) [3]

Исключение появляется только при вызове Form1.Show или Form1.ShowModal.


 
brother ©   (2010-10-04 07:48) [4]

я не знаю, где и что у тебя но:
program Project1;

uses
 Forms,
 Unit1 in "Unit1.pas" {Form1};

{$R *.res}

begin
{  Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;}

 Form1.Caption:= "234"; // нет AV но и нет присвоения
 form1.AlphaBlend:= true; // AV
end.


 
DROWSY   (2010-10-04 07:56) [5]

А, например,

Pan := TPanel.Create(Form1);
не вызывает исключения.
И вопрос:
память под эту панель где-то выделилась, а если
деструстор формы не вызывается (так как форма не создана),
то как освободить память от этой панели?


 
Palladin ©   (2010-10-04 08:04) [6]


> Pan := TPanel.Create(Form1);не вызывает исключения.

по встречке тоже можно ездить


 
DROWSY   (2010-10-04 08:06) [7]


> по встречке тоже можно ездить


> Pan := TPanel.Create(Form1);

Этим ПДД нарушаю?


 
DROWSY   (2010-10-04 08:10) [8]

А как ещё создать динамически создать на форме компонент?


 
brother ©   (2010-10-04 08:11) [9]

Одна ветка - один вопрос ;)


 
RWolf ©   (2010-10-04 09:31) [10]


> DROWSY   (04.10.10 07:40) [2]
> Кроме того, ставил точку останова на TForm1.onCreate - не вызывается.

как же она вызовется, если форму не создавали?

> Pan := TPanel.Create(Form1);
> память под эту панель где-то выделилась,

да, это полноценная панель, можно пользоваться.

то как освободить
> память от этой панели?

Pan.Free, как всегда.


 
Amoeba_   (2010-10-04 10:31) [11]


> DROWSY   (04.10.10 08:10) [8]
> А как ещё создать динамически создать на форме компонент?
>

Читать это:
Жизнь и смерть в режиме run-time
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342


 
Anatoly Podgoretsky ©   (2010-10-04 11:50) [12]

> DROWSY  (04.10.2010 06:58:00)  [0]

А что тогда Обычная автоинкрементная форма?


 
12 ©   (2010-10-04 12:15) [13]

такой код еще смешнее - и мало что нет AV, так еще и не та кнопка меняет название

procedure TForm1.btn1Click(Sender: TObject);
var
  b:Tbutton;
begin
  b.Caption := "as";
  ShowMessage( b.Caption );
end;


 
бумбум   (2010-10-04 12:34) [14]

А вот так форма меняет название

procedure TForm1.btn1Click(Sender: TObject);
var
 b:Tbutton;
begin
 b.Caption := "as";
end;


 
Anatoly Podgoretsky ©   (2010-10-04 13:03) [15]

> 12  (04.10.2010 12:15:13)  [13]

Потому и нет исключения, поскольку адрес верный.


 
Anatoly Podgoretsky ©   (2010-10-04 13:15) [16]

> бумбум  (04.10.2010 12:34:14)  [14]

С огнем играешь


 
Правильный$Вася   (2010-10-05 14:18) [17]


> Обычная неавтоинкрементная форма

а что это?
у тебя они что, много одинаковых под разными последовательными номерами?

мож, я отстал от жизни и такие формы действительно появились?


 
Юрий Зотов ©   (2010-10-05 16:51) [18]

Видимо, имелась в виду неавтосоздаваемая форма.


 
Плохиш ©   (2010-10-06 00:01) [19]


> DROWSY   (04.10.10 06:58)  


> Если её не инициировать (Form1:=nil)

Form1 - это не форма.


 
Игорь Шевченко ©   (2010-10-06 00:14) [20]

Сколько ж дивных открытий можно сделать, не счесть их. А если о каждом писать, форума не хватит.



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

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

Наверх




Память: 0.51 MB
Время: 0.007 c
2-1286343206
картман
2010-10-06 09:33
2011.01.02
dataset->file


15-1285119505
0x00FF00
2010-09-22 05:38
2011.01.02
Очень старая реклама МТС


6-1232800121
DmitryG.
2009-01-24 15:28
2011.01.02
Проверка существования ресурса через TIdHTTP


2-1286282763
TRSteep
2010-10-05 16:46
2011.01.02
Форма для печати


8-1208839462
doKi
2008-04-22 08:44
2011.01.02
шейдары