Форум: "Основная";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизОбращение к объекту Найти похожие ветки
← →
SergeyAKM © (2006-08-18 21:51) [0]В Delphi работаю недавно. До этого был Omnis. Так вот там был интересных ход.
На форме два Edit"та : Edit1 и Edit2
И код, где i: integeri:=1;
Edit(i).Text:="";
i:=2;
Edit(i).Text:="";
исполнялся.
Есть ли такая возможность на Delphi.
← →
Джо © (2006-08-18 21:54) [1]> Есть ли такая возможность на Delphi.
Такой нету.
← →
Джо © (2006-08-18 21:56) [2]> [1] Джо © (18.08.06 21:54)
Но вполне можно искать по имени, используя метод FindComponent.
← →
SergeyAKM © (2006-08-18 21:58) [3]Благодарю за ответ и оперативность.
← →
Германн © (2006-08-19 00:25) [4]
> Но вполне можно искать по имени, используя метод FindComponent.
Или при создании этих компонент заполнять массив Edits = array of TEdit, если они создаются в рантайме. Или заполнять сей массив в обработчике формы OnCreate, OnShow, если они созданы в дизайнтайме.
← →
Ketmar © (2006-08-19 00:26) [5]> [4] Германн © (19.08.06 00:25)
или не делать новый велосипед и использовать Controls[]. %-)
← →
Германн © (2006-08-19 00:42) [6]
> Ketmar © (19.08.06 00:26) [5]
>
> > [4] Германн © (19.08.06 00:25)
> или не делать новый велосипед и использовать Controls[].
> %-)
>
Ну так, "осторожно говоря" (не дай бог опять дать тебе повод "размазать" меня "по полной"), а ты учёл сколько может быть на форме контроллов? С учётом наличия на вышеописанной TTabControl, TPageControl, TTabSet, TTabbedNotebook?
Не проще ли в данной ситуации "скляпать велосипед"?
← →
Германн © (2006-08-19 00:44) [7]Да, "и не лучше ли в данной ситуации его скляпать?
← →
Ketmar © (2006-08-19 00:44) [8]> [6] Германн © (19.08.06 00:42)
дык как раз всё от ситуации зависит. я же сказал "или", а не "только так". %-)
← →
palva © (2006-08-19 00:44) [9]
> Есть ли такая возможность на Delphi.
Есть. Только скобки должны быть квадратными.
← →
Германн © (2006-08-19 00:48) [10]
> Ketmar © (19.08.06 00:44) [8]
А palva © (19.08.06 00:44) [9] нас всех обскакал. :-)
← →
Джо © (2006-08-19 01:04) [11]> [9] palva © (19.08.06 00:44)
> Есть. Только скобки должны быть квадратными.
И получится уродливая конструкция, ломающая здравое naming convention: называть массив Edit"ов — Edits. :)
← →
Германн © (2006-08-19 01:16) [12]
> Джо © (19.08.06 01:04) [11]
>
> И получится уродливая конструкция, ломающая здравое naming
> convention: называть массив Edit"ов — Edits. :)
Серёга. А чем она "уродлива"?
← →
Джо © (2006-08-19 01:24) [13]> [12] Германн © (19.08.06 01:16)
> Серёга. А чем она "уродлива"?
Конструкцияvar
Edit: array of TEdit;
мне кажется уродливой в сравнении сvar
Edits: array of TEdit;
из-за потенциальной путаницы, которую она может привнести.
← →
Германн © (2006-08-19 02:09) [14]Понял суть. Согласен в некоторых деталях.
Токмо и ты разберись с
> Джо © (19.08.06 01:04) [11]
>
> > [9] palva © (19.08.06 00:44)
> > Есть. Только скобки должны быть квадратными.
>
> И получится уродливая конструкция, ломающая здравое naming
> convention: называть массив Edit"ов — Edits. :)
>
← →
Джо © (2006-08-19 02:12) [15]> [14] Германн © (19.08.06 02:09)
> Токмо и ты разберись с
Ну, опечатался я, опечатался. :) Точнее, неуклюже выразился и не прочитал свой пост перед отправкой...
← →
Джо © (2006-08-19 02:21) [16]Впрочем, в порядке шутки, такой синтаксис как в [0] вполне можно воссоздать на Delphi:
TForm1 = class(TForm)
...
private
function Edit (Number: Integer): TEdit;
...
end;
implementation
function TForm1.Edit(Number: Integer): TEdit;
var
Cmp: TComponent;
begin
Cmp := FindComponent(Format("Edit%d",[Number]));
if Cmp is TEdit then
Result := TEdit(Cmp)
else
Result := nil
end;
Теперь воспроизводим синтаксис языка Omnis (что бы это ни было):i:=1;
Edit(i).Text:="";
i:=2;
Edit(i).Text:="";
:)
← →
Германн © (2006-08-19 02:23) [17]
> Джо © (19.08.06 02:12) [15]
Бывает. А уж у меня - так вообще вылазит за все разумные рамки :-)
← →
Германн © (2006-08-19 02:30) [18]
> Джо © (19.08.06 02:21) [16]
5-ть с плюсом!
Не, ну кто-бы сомневался в твоих способностях! Только не
я!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.013 c