Форум: "Основная";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
ВнизМассив Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c