![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как мне присвоить текст сделанной строки... [D5, WinXP]
RedDragon © (2004-10-03 21:48:00)На данном форуме мне сказали, как по ходу прогона программы создавать какие - нибудь компоненты...
Переделав некоторые детали у меня получился такой код:
procedure TIndex.numberprezidentokClick(Sender: TObject);
var
Prezidents:TEdit;
i:Integer;
begin
numberprezidents:=0;
numberprezidents:=StrToInt(numberprezidentedit.text);
for i:=1 to numberprezidents do
begin
Prezidents:=TEdit.Create(Index);
Prezidents.Parent:=PrezidentsPanel;
Prezidents.Top:=I*16+26;
Prezidents.Left:=15;
Prezidents.Name:='prezidentedit'+InttoStr(I);
Prezidents.Text:=Кандидат №'+InttoStr(I);
Prezidents.Width:=170;
Createprezidentsvote.Visible:=True;
PrezidentsLabel.Visible:=True;
end;
end;
Всё получилось, но никто не сказал, как мне присвоить какой -нибудь, например, переменной президент текст, например, 6 строки(при условии, что кандидатов 6 или более).
Сразу говорю, попробуйте сделать это у себя на компьютере и
вот такой вариант не проходит:
prezident1:=prezidentedit1.text;
RedDragon (2004-10-05 22:06:00) [1]Я никого не игнорирую, мне просто хорошее решение предложили, вот и всё, ты мне лучше помоги со следующим вопросом, который я задам в другом топике....
Piter (2004-10-04 22:18:00) [2]begin...end © (04.10.04 21:35) [7]
Так меня ещё никто не игнорировал 8-)
:)))
Piter (2004-10-04 22:17:00) [3]Ладно, подумав, соглашусь, что работать не будет :)
Тогда так:
for i:=1 to numberprezidents do
begin
Prezidents[i-1] := TEdit.Create(Index);
with Prezidents[i-1]
begin
Parent := PrezidentsPanel;
Top := I*16+26;
Left := 15;
Name := 'prezidentedit'+InttoStr(I);
Text := Кандидат №'+InttoStr(I);
Width := 170;
Createprezidentsvote.Visible := True;
PrezidentsLabel.Visible := True;
end;
Мастер (2004-10-04 21:48:00) [4]>RedDragon (04.10.04 21:32)
Вот тебе 2 варианта, выбирай, какой больше нравится:
1.
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i := 1 to 6 do
begin
with TEdit.Create(Form1) do
begin
Width := 80;
Left := I*(Width+10)+10;
Height := 20;
Name := 'Prezident'+IntToStr(i);
Text := 'Кандидат № '+IntToStr(i);
Parent := Form1;
Visible := True;
end;
end;
Label1.Caption := (FindComponent('Prezident1') as TEdit).Text;
end;
2.
procedure TForm1.Button1Click(Sender: TObject);
var
Ed: TEdit;
i: Integer;
begin
for i := 1 to 6 do
begin
Ed := TEdit.Create(Form1);
Ed.Width := 80;
Ed.Left := I*(Ed.Width+10)+10;
Ed.Height := 20;
Ed.Name := 'Prezident'+IntToStr(i);
Ed.Text := 'Кандидат № '+IntToStr(i);
Ed.Parent := Form1;
Ed.Visible := True;
end;
Label1.Caption := (FindComponent('Prezident1') as TEdit).Text;
end;
begin...end (2004-10-04 21:35:00) [5]
> [4] Piter © (04.10.04 17:12)
> и не хотелось лишний begin...end ставить...
Так меня ещё никто не игнорировал 8-)
RedDragon (2004-10-04 21:32:00) [6]Здравствуй GuAV, а скажи как правильно сделать, ты говорил, что
он там ошибку допустил, напиши правильно, ладно??
GuAV (2004-10-04 19:34:00) [7]
> все равно ведь работать будет (если do поставить, конечно)
Нет.
Piter (2004-10-04 17:12:00) [8]GuAV © (03.10.04 22:45) [2]
ну писал с руки... и не хотелось лишний begin...end ставить... все равно ведь работать будет (если do поставить, конечно)
jack128 (2004-10-03 22:51:00) [9]RedDragon (03.10.04 21:48)
TIndex. NumberPrezidentokClick(
Ты президенток отдельно от президентов считаешь? ;-)
GuAV (2004-10-03 22:45:00) [10]
> with Prezidents[i-1]
> begin
> Prezidents[i-1] := TEdit.Create(Index);
это тоже плохо.
do пропустил.
и используешь несозданный объект. надо сначала сохдать а потом with
Piter (2004-10-03 22:12:00) [11]О боже... я тебя настоятельно рекомендую почитать книги, если ты вообще хочешь разобраться в чем-нибудь. Какие книги тебе нужны пожешь спросить в "Потрепаться" - http://www.delphimaster.ru/cgi-bin/forum.pl?n=3- только укажи ссылку на эту ветку.
По сабжу - ну сделай хотя бы через динамические массивы:
var
Prezidents: array of TEdit;
i:Integer;
begin
numberprezidents:=StrToInt(numberprezidentedit.text);
SetLength(Prezidents, numberprezidents);
for i:=1 to numberprezidents do
with Prezidents[i-1]
begin
Prezidents[i-1] := TEdit.Create(Index);
Parent := PrezidentsPanel;
Top := I*16+26;
Left := 15;
Name := 'prezidentedit'+InttoStr(I);
Text := Кандидат №'+InttoStr(I);
Width := 170;
Createprezidentsvote.Visible := True;
PrezidentsLabel.Visible := True;
end;
RedDragon (03.10.04 21:48)
Всё получилось, но никто не сказал, как мне присвоить какой -нибудь, например, переменной президент текст, например, 6 строки(при условии, что кандидатов 6 или более).
prezident1:=Prezidents[5].text;
Хотя это все ужасно... книги, книги и еще раз книги...