Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Внизсоздание окна в runtime Найти похожие ветки
← →
Vlad Oshin (2003-10-31 12:07) [0]Пишу следующее(читаю с файла кнопочки и чекбоксы, ставлю на форму):
while not(eof(f)) do begin
readln(f,s); //what create?
case s[1] of
"c": begin
chNew:=Tcheckbox.Create(form1);
readln(f,s);
chNew.Name:=s;
readln(f,s);
chNew.Top:=strtoint(s);
readln(f,s);
chNew.Left:=strtoint(s);
chNew.OnClick:=OnClickButton;
chNew.Parent:=form1;
end;
"b":begin
New:=TButton.Create(form1);
readln(f,s);
New.Name:=s;
readln(f,s);
New.Top:=strtoint(s);
readln(f,s);
New.Left:=strtoint(s);
New.OnClick:=OnClickButton;
New.Parent:=form1;
end;
end;
в обоих случаях case"а все одинаково, кроме первой строки, думаю это(как у меня) неправильно, можно по другому?
← →
VAleksey (2003-10-31 12:21) [1]Можно.
Примерно так:
Сделай переменную типа
New:TWinControl;
Потом примерно так:
while not(eof(f)) do begin
readln(f,s); //what create?
case s[1] of
"c": begin
New:=Tcheckbox.Create(form1);
Tcheckbox(New).OnClick := OnClickButton;
end;
"b":begin
New:=TButton.Create(form1);
TButton(New).OnClick := OnClickButton;
end;
end;
readln(f,s);
New.Name:=s;
readln(f,s);
New.Top:=strtoint(s);
readln(f,s);
New.Left:=strtoint(s);
New.OnClick:=OnClickButton;
New.Parent:=form1;
← →
Vlad Oshin (2003-10-31 12:41) [2]нет,
New.OnClick - undeclared identifier
← →
VAleksey (2003-10-31 12:47) [3]
> New.OnClick:=OnClickButton;
Вот эта строка внизу не нужна :-)) Она с помощью Copy / Paste туда попала. Убери ее.
Вот так:
while not(eof(f)) do begin
readln(f,s); //what create?
case s[1] of
"c": begin
New:=Tcheckbox.Create(form1);
Tcheckbox(New).OnClick := OnClickButton;
end;
"b":begin
New:=TButton.Create(form1);
TButton(New).OnClick := OnClickButton;
end;
end;
readln(f,s);
New.Name:=s;
readln(f,s);
New.Top:=strtoint(s);
readln(f,s);
New.Left:=strtoint(s);
New.Parent:=form1;
← →
Vlad Oshin (2003-10-31 12:55) [4]ясно.
А я подумал что
TButton(New).OnClick := OnClickButton;
Tcheckbox(New).OnClick := OnClickButton;
можно и не писать, а сразу New.OnClick:=OnClickButton; в конце написать.
Спасибо!
← →
VAleksey (2003-10-31 13:02) [5]
> можно и не писать, а сразу New.OnClick:=OnClickButton; в
> конце написать.
Ну в принципе если надо можно и просто и так написать:
New.Top:=strtoint(s);
readln(f,s);
New.Left:=strtoint(s);
TButton(New).OnClick := OnClickButton;
Работать будет.
← →
Mystic (2003-10-31 14:02) [6]Замена условной логики полиморфизмом?
И просто интересно, почему не запись формы в поток?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c