Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

Массив   Найти похожие ветки 

 
Kofey   (2003-02-28 00:42) [0]

Я тока-тока сел за Дельфю.

Глупый и чайниковый вопрос, но он меня волнует.
Имеется массив стринговый из 16 элементов. Можно ли создать массив из едитов и записать в каждый элемент текст из едита:
var s: array[1..16] of string;
Edit: array[1..16] of TEdit;
begin
for i:=1 to 16 do begin
S[i]:=Edit[i].Text

Как бы это сделать?


 
Makhanev A.S. ©   (2003-02-28 01:08) [1]

Если все Edit"ы на одной форме (Form1) , то есть такой вариант:

var
s: array[1..16] of string;
i:integer;
Edit: TEdit;
begin
for i:=1 to 16 do
begin
Edit := TEdit(Form1.FindComponent("Edit" + s(i)));
if Edit <> nil then Edit.Color := clBlack;
end;


 
jack128 ©   (2003-02-28 01:10) [2]

Для начало надо создать эти 16 едитов..

var s: array[1..16] of string;
Edit: array[1..16] of TEdit;
begin
for i:=1 to 16 do begin
Edit[i] := TEdit.Create(Self);
with Edit[i] do begin
Edit[i].Parent := Self;
Edit[i].Top := i*20+10;
Edit[i].Left := 20;
end;
end;


Только массив Edit нужно вынести за приделы этой функции, чтобы ,ты мог к ниму обратится(например в обработчике Button1OnClick )


 
Makhanev A.S. ©   (2003-02-28 01:13) [3]

Приведённый выше пример делает цвет каждого Edit"а чёрным (для примера).

Ваш вопрос мне не до конца понятен:

- есть edit"ы на форме - или их нужно создавать в run-time?
- что записывать в TEdit.text?

Чутьё мне подсказывает, что 16 edit"ов нужны для какой-то матрицы... но оно может подводить:)


 
TButton ©   (2003-02-28 08:02) [4]

а может ну их нафиг ети едиты? для вывода матрицы подойдет мемка. поставь в ней шрифт типа курьера или фикседсус и пиши туда ети стринги memo.lines.add(s);


 
Kofey   (2003-02-28 13:24) [5]

Едиты все на одной форме, в каждый из едитов заносится определенный текст. У каждого иэ едитов свое назначение, но нужно чтобы текст из едитов заносился именно в стринговый массив. А потом переменные из этого массива записываются в реестр. так что с мемкой тут номер не пройдет.


 
Kofey   (2003-02-28 23:54) [6]

Ну никто не поможет что ли?


 
uw ©   (2003-03-01 00:46) [7]

jack128 © (28.02.03 01:10) уже ответил.


 
jack128 ©   (2003-03-01 15:27) [8]

А я так понял Makhanev A.S. © (28.02.03 01:08) дал более правельныйй ответ
Если этот код нужно истользовать несколько раз, можно оптимизировать так :
TForm1 = class(TForm)
...
private
Edit : Array[1..16] of TEdit;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
for i:=1 to 16 do
Edit[i] := TEdit(Form1.FindComponent("Edit" + s(i)));
end;

procedure TForm1.Button1Click(Sender: TObject);
var s: array[1..16] of string;
i : integer;
begin
for i:= 1 to 16 do
s[i] := edit[i].text;
end;




Страницы: 1 вся ветка

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-39411
frizZ.
2003-03-01 20:26
2003.03.13
Посчитать строку


7-39602
SeF
2003-01-18 01:41
2003.03.13
Файловые потоки в NTFS


6-39433
Сергей
2003-01-21 13:40
2003.03.13
Автоматический просмотр ВЭБСтраниц


1-39381
Спрашивающий
2003-03-03 01:10
2003.03.13
Взаимодействие OpenDialog и функции DiskFree(0)


1-39399
crippler
2003-03-03 11:25
2003.03.13
Люди, помогите скачать курсовую по Delphi