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

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

edit


jop ©   (2004-12-05 14:12:00) 

Здраствуйте.
Имеется ситуация(на форме 150 edits).
Скажите,как заполнить edits значениями, увелич. на 1
через for, не прибегая к заполения каждого edit.
напрмер, for i:=1 to 150 do
edit[i]:=inttostr(i);//не получается, чтобы edit компонент передавал упарвлению
другому эдиту и так до 150, не редактируя каждый.
Спaсибо.


SergP   (2004-12-06 07:30:00) [1]


>  [13] jop (он же Maxim_S~~)  (06.12.04 07:02)


Ну если нашел инфу, то молодец. Судя по УРЛу инфа как раз для тебя. Сиди и читай ее. А ссылки на всякое дерьмо нечего постить на форум.


jop   (2004-12-06 07:02:00) [2]

Вобщем нашел инфу по теме.
http://www.amateurmonster.com/tgp/amateurs/homeporn3/hottable4781.html


SergP   (2004-12-06 06:33:00) [3]


> абсолитно согласен. но все-таки. edit[n] для меня экземпляр
> класса, не поворачивается язык его указателем назвать. хотя
> по сути оно конечно так и есть.


Тогда называй его указателем на экземпляр класса. :-)))


TButton   (2004-12-05 17:41:00) [4]


> А зря, вот array of TEdit состоит как раз из указателей,
> можешь посмотреть размер каждого элемента, как раз 4 байта.

абсолитно согласен. но все-таки. edit[n] для меня экземпляр класса, не поворачивается язык его указателем назвать. хотя по сути оно конечно так и есть.


begin...end   (2004-12-05 17:27:00) [5]

> [8] TButton ©   (05.12.04 17:21)

> не знаю как вы воспринимаете слово указатель, я лично, мсключительно
> как Pointer

А зря, вот array of TEdit состоит как раз из указателей, можешь посмотреть размер каждого элемента, как раз 4 байта.


TButton   (2004-12-05 17:22:00) [6]


> Если у тебя указатели єдитов в массиве edit[1..150] of TEdit,
> то

оп. пардоньте, господа. слона то я и не приметил.


TButton   (2004-12-05 17:21:00) [7]

повторяю
> Если у тебя указателиєдитов в массиве edit[1..150] of TEdit,
> то

то
TEdit(^edit[i]).text...

не знаю как вы воспринимаете слово указатель, я лично, мсключительно как Pointer


begin...end   (2004-12-05 15:21:00) [8]

> jop   (05.12.04 14:12)

> чтобы edit компонент передавал упарвлению
> другому эдиту и так до 150, не редактируя каждый.

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   ...
   Edit150: TEdit;
   Button1: TButton;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   I: Integer;
   procedure Change(Sender: TObject);
 end;

procedure TForm1.Change(Sender: TObject);
begin
 if I < 150 then
 begin
   Inc(I);
   (FindComponent(Format('Edit%d', [I])) as TEdit).Text := IntToStr(I)
 end
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 J: Integer;
begin
 I := 0;
 for J := 0 to ControlCount - 1 do
   if Controls[J] is TEdit then
     (Controls[J] as TEdit).OnChange := Change;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Edit1.Text := IntToStr(I);
end.


:-)


SergP   (2004-12-05 15:01:00) [9]


>  [4] TButton ©   (05.12.04 14:49)


Хм... Но ведь и так работает:


unit Unit1;

interface

uses
 Windows, SysUtils,  Classes,  Controls, Forms, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 edit:array[1..5] of Tedit;
implementation

{$R *.dfm}

// Создаем эдиты
procedure TForm1.Button1Click(Sender: TObject);
var
 i:byte;
begin
for i:=1 to 5 do
 begin
   edit[i]:=Tedit.Create(self);
   edit[i].Parent:=self;
   edit[i].Top:=i*20+10;
   edit[i].Left:=5;
   edit[i].Visible:=true;
 end;
end;

// Заполняем эдиты
procedure TForm1.Button2Click(Sender: TObject);
var
 i:byte;
begin
 for i:=1 to 5 do
   edit[i].Text:=inttostr(i);
end;

end.


begin...end   (2004-12-05 14:59:00) [10]

> [4] TButton ©   (05.12.04 14:49)

> TEdit(^edit[i]).text...

Чаво-чаво?


TButton   (2004-12-05 14:49:00) [11]


> Если у тебя указатели єдитов в массиве edit[1..150] of TEdit,
> то

то
TEdit(^edit[i]).text...


SergP   (2004-12-05 14:48:00) [12]


> for i:=1 to 150 do
> edit[i]:=inttostr(i);//


Если у тебя указатели єдитов в массиве edit[1..150] of TEdit, то
for i:=1 to 150 do
edit[i] .text:=inttostr(i);

иначе [1]


Anatoly Podgoretsky   (2004-12-05 14:16:00) [13]

Должно получаться


TButton   (2004-12-05 14:15:00) [14]

for i:=1 to 150 do
 TEdit(Form1.FindComponent('Edit'+IntToStr(i))).Text:=IntToStr(i);


Наверх

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