Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массив из компонентов для ввода, как делается? 
:(
    Опции темы
Негодяй
  Дата 19.3.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Порядочный
***


Профиль
Группа: Завсегдатай
Сообщений: 1513
Регистрация: 13.2.2005
Где: Kazakhstan, Almat y

Репутация: нет
Всего: 32



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    .....    
    Edit12: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
........
edit12.Text:='';

end;

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c:array [1..2,1..2] of integer;
i,j:integer;
begin
a[1,1]:=strtoint(edit1.text);
a[1,2]:=strtoint(edit2.text);
a[2,1]:=strtoint(edit3.text);
a[2,2]:=strtoint(edit4.text);

b[1,1]:=strtoint(edit5.text);
b[1,2]:=strtoint(edit6.text);
b[2,1]:=strtoint(edit7.text);
b[2,2]:=strtoint(edit8.text);

for i:=1 to 2 do
 for j:=1 to 2 do
 c[i,j]:=a[i,j]-b[i,j];

edit9.text:=inttostr(c[1,1]);
edit10.text:=inttostr(c[1,2]);
edit11.text:=inttostr(c[2,1]);
edit12.text:=inttostr(c[2,2]);
end;

end.

помогите, дельфи почти незнаю, как сделать так чтобы не писать в программе несколько раз обращений к этому компоненту Edit, как можно заменить на массив????
PM MAIL   Вверх
Pakshin A. S.
Дата 19.3.2005, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Это имеется виду?
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ComponentCount - 1 do
   begin
    if Components[i].ClassName = 'TEdit'
     then
      ShowMessage((Components[i] as TEdit).Text)
   end;
end;

Это - обход всех компонентов, выбор среди них Edit'ов и вывод их содержимого... smile

Это сообщение отредактировал(а) Pakshin A. S. - 19.3.2005, 13:38
PM   Вверх
p0s0l
Дата 19.3.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Можно использовать FindComponent, :
Код

type    
  TForm1 = class(TForm)    
    Edit1: TEdit;    
    Edit2: TEdit;    
    Edit3: TEdit;    
    .....     
    Edit12: TEdit;    
...
    Edits : array [1..12] of TEdit;
...
  end;

...

procedure TForm1.FormCreate(Sender: TObject);    
var i : integer;
begin    
  for i := Low(Edits) to High(Edits) do Edits[i] := TEdit(FindComponent('Edit' + IntToStr(i)));

  for i := Low(Edits) to High(Edits) do Edits[i].Text := '';
end;

...



--------------------
С уважением, г-н Посол.
PM   Вверх
<Spawn>
Дата 19.3.2005, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Я для такого случая использовал TObjectList из Contnrs(Хотя не совсем для такого случая - у меня контролы создавались динамически smile ). Хотя если не хочется много думать, то можно и обычным массивом обойтись, пример работы с которым приведен выше.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Негодяй
Дата 19.3.2005, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Порядочный
***


Профиль
Группа: Завсегдатай
Сообщений: 1513
Регистрация: 13.2.2005
Где: Kazakhstan, Almat y

Репутация: нет
Всего: 32



спасибо код уменьшился в длину smile)))



Это сообщение отредактировал(а) Негодяй - 19.3.2005, 18:55
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.