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

Вниз

Как обартится к элементу с порядковым номером в виде переменной?   Найти похожие ветки 

 
vegarulez ©   (2007-01-06 20:08) [0]

Доброго времени суток мастерам.
Подскажите ответ на такой вопрос
есть
Edit1 Edit2
и
i:integer

Так вот вопрос по синтаксису как правильно обратится к Edit`ам?

типа Edit[i] или Edit+[i] или как?...


 
Sleepeer   (2007-01-06 20:11) [1]

function FindComponent(const Name: string) - тебе поможет


 
vegarulez ©   (2007-01-06 20:19) [2]

А напрямую никак нельзя???
вроде
Edit +(i)
или ещё как нить?


 
Джо ©   (2007-01-06 20:21) [3]

> [2] vegarulez ©   (06.01.07 20:19)
> А напрямую никак нельзя???

Делфи — не скриптовый язык и имена переменных в нем ничего не значат и даже не хранятся в готовой программе.


 
MsGuns ©   (2007-01-06 20:21) [4]

Представь выстроенную дивизию, перед которой стоит наш Чапаев:
- Солдат[i], [i+1] и [i+2] выйти из строя !


 
vegarulez ©   (2007-01-06 20:47) [5]

2: MsGuns ©
 Ну да собственно в скриптовых языках я атк и делал....
2: Sleepeer
 Ахха пасип... вроде понял....


 
MsGuns ©   (2007-01-06 20:50) [6]

В [1]-м к солдатам обращаются по фамилиям, не так ли ?


 
Sleepeer   (2007-01-06 22:01) [7]

Если ещё не разобрался, то вот :

procedure TForm1.Button1Click(Sender: TObject);
var
i     : byte;
Ed : TComponent;
begin
for i := 1 to 5 do begin
  Ed := FindComponent("Edit" + IntToStr(i));
  (Ed as TEdit).Text := "найден";
end;
end;


 
MsGuns ©   (2007-01-06 22:35) [8]

>Sleepeer   (06.01.07 22:01) [7]

Плохо самому ТАК делать, но вовсе преступно советовать ЭТО другим


 
MetalFan ©   (2007-01-06 23:09) [9]


> Sleepeer   (06.01.07 22:01) [7]


а что будет, если не окажется компонента с таким именем? ;)


 
MsGuns ©   (2007-01-06 23:36) [10]

>MetalFan ©   (06.01.07 23:09) [9]
>а что будет, если не окажется компонента с таким именем? ;)

Ничего не будет ;)
В смысле AV ;))


 
Anatoly Podgoretsky ©   (2007-01-06 23:52) [11]

> MsGuns  (06.01.2007 23:36:10)  [10]

Отсюда вывод - не надо так делать.


 
koha ©   (2007-01-07 02:49) [12]

> Sleepeer   (06.01.07 22:01) [7]

> for i := 1 to 5 do begin
>   Ed := FindComponent("Edit" + IntToStr(i));
>   (Ed as TEdit).Text := "найден";
> end;

В подобный код проверочку можно вставить, чтобы было "Not Ничего не будет"

if FindComponent("Edit" + IntToStr(i)) <> Nil then begin
 ShowMessage("Найден")
 Ed:=TEdit(FindComponent("Edit" + IntToStr(i)));
end    
else ShowMessage("Не найден");


 
vegarulez ©   (2007-01-07 09:59) [13]

2: Sleepeer
 Пасип... но уже разобрался...  ;)

2: koha  
Очень полезная проверка на Nil...
если её не делать то при обращении к свойству несуществующего компонента - на эксэпшн выпадает...


 
Anatoly Podgoretsky ©   (2007-01-07 13:31) [14]

> koha  (07.01.2007 02:49:12)  [12]

Плохой код.


 
MsGuns ©   (2007-01-07 14:37) [15]

Дело даже не в коде, а .. в полных потемках в головах


 
ors_archangel ©   (2007-01-07 18:01) [16]

Вопрос [0], я так понял, появляется не реже, чем раз в месяц :) Пора делфи переписывать



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

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

Наверх




Память: 0.5 MB
Время: 0.062 c
15-1168264739
brrrr
2007-01-08 16:58
2007.01.28
Нас всех прослушивают! Ужас! Мы беззащитны :(


6-1156437318
i-s-v
2006-08-24 20:35
2007.01.28
Прослушка сети


4-1157980175
Polevi
2006-09-11 17:09
2007.01.28
Named Pipes


2-1168508786
Shuttle
2007-01-11 12:46
2007.01.28
плиз


15-1168330882
zdm
2007-01-09 11:21
2007.01.28
office 2007 vs bds2006 в vista