Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизКак мне присвоить текст сделанной строки... Найти похожие ветки
← →
RedDragon (2004-10-03 21:48) [0]На данном форуме мне сказали, как по ходу прогона программы создавать какие - нибудь компоненты...
Переделав некоторые детали у меня получился такой код:
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;
← →
Piter © (2004-10-03 22:12) [1]О боже... я тебя настоятельно рекомендую почитать книги, если ты вообще хочешь разобраться в чем-нибудь. Какие книги тебе нужны пожешь спросить в "Потрепаться" - 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;
Хотя это все ужасно... книги, книги и еще раз книги...
← →
GuAV © (2004-10-03 22:45) [2]
> with Prezidents[i-1]
> begin
> Prezidents[i-1] := TEdit.Create(Index);
это тоже плохо.
do пропустил.
и используешь несозданный объект. надо сначала сохдать а потом with
← →
jack128 © (2004-10-03 22:51) [3]RedDragon (03.10.04 21:48)
TIndex.NumberPrezidentokClick(
Ты президенток отдельно от президентов считаешь? ;-)
← →
Piter © (2004-10-04 17:12) [4]GuAV © (03.10.04 22:45) [2]
ну писал с руки... и не хотелось лишний begin...end ставить... все равно ведь работать будет (если do поставить, конечно)
← →
GuAV © (2004-10-04 19:34) [5]
> все равно ведь работать будет (если do поставить, конечно)
Нет.
← →
RedDragon (2004-10-04 21:32) [6]Здравствуй GuAV, а скажи как правильно сделать, ты говорил, что
он там ошибку допустил, напиши правильно, ладно??
← →
begin...end © (2004-10-04 21:35) [7]
> [4] Piter © (04.10.04 17:12)
> и не хотелось лишний begin...end ставить...
Так меня ещё никто не игнорировал 8-)
← →
Мастер © (2004-10-04 21:48) [8]>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;
← →
Piter © (2004-10-04 22:17) [9]Ладно, подумав, соглашусь, что работать не будет :)
Тогда так: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;
← →
Piter © (2004-10-04 22:18) [10]begin...end © (04.10.04 21:35) [7]
Так меня ещё никто не игнорировал 8-)
:)))
← →
RedDragon (2004-10-05 22:06) [11]Я никого не игнорирую, мне просто хорошее решение предложили, вот и всё, ты мне лучше помоги со следующим вопросом, который я задам в другом топике....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c