Главная страница
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.061 c
2-1168209961
kingsoft
2007-01-08 01:46
2007.01.28
Время простоя программы


2-1168195004
Ламер 2.Х
2007-01-07 21:36
2007.01.28
Посылаем файл!!!!


15-1167991529
alexeis
2007-01-05 13:05
2007.01.28
Установить принтер, не подключая его


1-1165330455
GrayFace
2006-12-05 17:54
2007.01.28
Наткнулся в реестре на параметр "Add interface methods"


2-1168673944
vegarulez
2007-01-13 10:39
2007.01.28
Каким методом можно вывести список комба бокса?