![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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);