Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизКак с помощью цикла перевести из десятка edit в массив? Найти похожие ветки
← →
Bestden (2004-04-21 20:46) [0]Как с помощью цикла перевести из десятка edit в массив?
Например существует у меня 15 Tedit, назвал я их a1, a2, ... a15! Как мне циклом перевести из ai.text в arr[i]?
← →
Bestden (2004-04-21 20:46) [0]Как с помощью цикла перевести из десятка edit в массив?
Например существует у меня 15 Tedit, назвал я их a1, a2, ... a15! Как мне циклом перевести из ai.text в arr[i]?
← →
VMcL © (2004-04-21 20:47) [1]FindComponent
?
← →
VMcL © (2004-04-21 20:47) [1]FindComponent
?
← →
Yanis © (2004-04-21 20:56) [2]
var
ar:array[0..15] of string;
...
for i := 0 to Form1.ControlCount-1 do
if Form1.Components[i] is TEdit then
ar[i] := (Components[i] as TEdit).Text;
Но это учень "узкий" цикл - алгоритм. Если колво Edit"ов за ранее не известно, то ИМХО лучше динамический массив юзать.
← →
Yanis © (2004-04-21 20:56) [2]
var
ar:array[0..15] of string;
...
for i := 0 to Form1.ControlCount-1 do
if Form1.Components[i] is TEdit then
ar[i] := (Components[i] as TEdit).Text;
Но это учень "узкий" цикл - алгоритм. Если колво Edit"ов за ранее не известно, то ИМХО лучше динамический массив юзать.
← →
Bestden (2004-04-21 20:56) [3]Что то я не пойму...
ну на такое транслятор ругается A1[i]:=StrToInt(findcomponent(a1+inttostr(i)).Text);
По идее с помощью findcomponent можно сделать массив объектов...
← →
Bestden (2004-04-21 20:56) [3]Что то я не пойму...
ну на такое транслятор ругается A1[i]:=StrToInt(findcomponent(a1+inttostr(i)).Text);
По идее с помощью findcomponent можно сделать массив объектов...
← →
Bestden (2004-04-21 20:57) [4]yanis Спасибо!
← →
Bestden (2004-04-21 20:57) [4]yanis Спасибо!
← →
Piter © (2004-04-21 22:13) [5]Строчку
ar[i] := (Components[i] as TEdit).Text
можно заменить на
ar[i] := TEdit(Components[i]).Text
Так будет более оптимально :)
← →
Piter © (2004-04-21 22:13) [5]Строчку
ar[i] := (Components[i] as TEdit).Text
можно заменить на
ar[i] := TEdit(Components[i]).Text
Так будет более оптимально :)
← →
Leshiy © (2004-04-22 06:19) [6]Yanis © (21.04.04 20:56) [2]
А если на форме будут другие контролы (акромя TEdit"a)???
Bestden (21.04.04 20:56) [3]
a[i]:=TEdit(FindComponent("a"+IntToStr(1))).Text;
← →
Leshiy © (2004-04-22 06:19) [6]Yanis © (21.04.04 20:56) [2]
А если на форме будут другие контролы (акромя TEdit"a)???
Bestden (21.04.04 20:56) [3]
a[i]:=TEdit(FindComponent("a"+IntToStr(1))).Text;
← →
Yanis © (2004-04-22 07:38) [7]To [6]
>А если на форме будут другие контролы (акромя TEdit"a)???
И что тогда?
← →
Yanis © (2004-04-22 07:38) [7]To [6]
>А если на форме будут другие контролы (акромя TEdit"a)???
И что тогда?
← →
Leshiy © (2004-04-22 07:59) [8]Yanis © (22.04.04 07:38) [7]
ControlCount>16;
1.В массиве будут "дырки";
2.Out of Range;
3.Значения не всех Tedit"ов попадут в массив;
← →
Leshiy © (2004-04-22 07:59) [8]Yanis © (22.04.04 07:38) [7]
ControlCount>16;
1.В массиве будут "дырки";
2.Out of Range;
3.Значения не всех Tedit"ов попадут в массив;
← →
Kto © (2004-04-24 13:12) [9]Leshiy © (22.04.04 06:19) [6]
А если на форме будут другие контролы (акромя TEdit"a)???
var
ar:array {[0..15]}of string;
...
J:= 0;
for i := 0 to Form1.ControlCount-1 do
if Form1.Components[i] is TEdit then
begin
SetLength(Ar, J+1);
ar[J] := (Components[i] as TEdit).Text;
Inc(J)
end
И вот нам уже всё равно сколько на форме контролов и какие они там.
← →
Kto © (2004-04-24 13:12) [9]Leshiy © (22.04.04 06:19) [6]
А если на форме будут другие контролы (акромя TEdit"a)???
var
ar:array {[0..15]}of string;
...
J:= 0;
for i := 0 to Form1.ControlCount-1 do
if Form1.Components[i] is TEdit then
begin
SetLength(Ar, J+1);
ar[J] := (Components[i] as TEdit).Text;
Inc(J)
end
И вот нам уже всё равно сколько на форме контролов и какие они там.
← →
Kto © (2004-04-24 13:14) [10]Что-то у меня не везде жирный шрифт нарисовался, но я думаю разобраться и найти отличия не сложно ;)
← →
Kto © (2004-04-24 13:14) [10]Что-то у меня не везде жирный шрифт нарисовался, но я думаю разобраться и найти отличия не сложно ;)
← →
pavia (2004-04-24 14:10) [11]1 if Form1.Components[i] is TEdit then
2 (Components[i] as TEdit)
Это одно и тоже.
← →
pavia (2004-04-24 14:10) [11]1 if Form1.Components[i] is TEdit then
2 (Components[i] as TEdit)
Это одно и тоже.
← →
Kto © (2004-04-24 14:33) [12]pavia (24.04.04 14:10) [11]
Ага, сейчас, как же. Очень смешно. >:(
1 if Form1.Components[i] is TEdit then
проверка является ли i-тый компонент на форме экземпляром класса TEdit
(Components[i] as TEdit)
Обращение к компоненту как к TEdit"у (т.б. приведение типа). Если на самом деле Components[i] не TEdit, то будут траблы (логично не правда ли ?).
Components: array of TComponent;
← →
Kto © (2004-04-24 14:33) [12]pavia (24.04.04 14:10) [11]
Ага, сейчас, как же. Очень смешно. >:(
1 if Form1.Components[i] is TEdit then
проверка является ли i-тый компонент на форме экземпляром класса TEdit
(Components[i] as TEdit)
Обращение к компоненту как к TEdit"у (т.б. приведение типа). Если на самом деле Components[i] не TEdit, то будут траблы (логично не правда ли ?).
Components: array of TComponent;
← →
evvcom © (2004-04-24 16:30) [13]
> то будут траблы
Какие траблы?
> Если на самом деле Components[i] не TEdit
то
if Form1.Components[i] is TEdit
будет ложным.
← →
evvcom © (2004-04-24 16:30) [13]
> то будут траблы
Какие траблы?
> Если на самом деле Components[i] не TEdit
то
if Form1.Components[i] is TEdit
будет ложным.
← →
Kto © (2004-04-24 16:39) [14]pavia (24.04.04 14:10) [11]
1 if Form1.Components[i] is TEdit then
2 (Components[i] as TEdit)
Это одно и тоже.
Насколько я понял, из этого поста следует предложение один из пунктов убрать...
А траблы будут, если проверку не поставить. Согласись, будет возвращаться чёрт знает что, если попадётся неTEdit.
← →
Kto © (2004-04-24 16:39) [14]pavia (24.04.04 14:10) [11]
1 if Form1.Components[i] is TEdit then
2 (Components[i] as TEdit)
Это одно и тоже.
Насколько я понял, из этого поста следует предложение один из пунктов убрать...
А траблы будут, если проверку не поставить. Согласись, будет возвращаться чёрт знает что, если попадётся неTEdit.
← →
evvcom © (2004-04-24 16:44) [15]Потерял немного нить того, кто чего сказал. Это pavia (24.04.04 14:10) [11] не прав. Соглашаюсь...
← →
evvcom © (2004-04-24 16:44) [15]Потерял немного нить того, кто чего сказал. Это pavia (24.04.04 14:10) [11] не прав. Соглашаюсь...
← →
Piter © (2004-04-24 19:42) [16]Kto (24.04.04 14:33) [12]
Обращение к компоненту как к TEdit"у (т.б. приведение типа).
не правда. Никаких траблов не будет.as
проверяет возможно ли приведение типов, иначе гененирует исключение.
Обращение же как к edit"у будет таково:TEdit(componentname).
и вот если тут componentname не TEdit - то будут траблы
← →
Piter © (2004-04-24 19:42) [16]Kto (24.04.04 14:33) [12]
Обращение к компоненту как к TEdit"у (т.б. приведение типа).
не правда. Никаких траблов не будет.as
проверяет возможно ли приведение типов, иначе гененирует исключение.
Обращение же как к edit"у будет таково:TEdit(componentname).
и вот если тут componentname не TEdit - то будут траблы
← →
Kto © (2004-04-26 12:50) [17]Piter © (24.04.04 19:42) [16]
Не знал. Проверил - убедился ;). Спасибо.
← →
Kto © (2004-04-26 12:50) [17]Piter © (24.04.04 19:42) [16]
Не знал. Проверил - убедился ;). Спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.051 c