Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как мне присвоить текст сделанной строки... [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;

Хотя это все ужасно... книги, книги и еще раз книги...


Наверх

Титульная страница Поиск, карта сайта Написать письмо