Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.042 c
15-1168195292
Real
2007-01-07 21:41
2007.01.28
Пожелание относительно форума


3-1162813086
Ольга
2006-11-06 14:38
2007.01.28
Возможности Query


9-1142843534
Lambda
2006-03-20 11:32
2007.01.28
Файлы в GLMaterialLibrary из потока


15-1167887748
Decease
2007-01-04 08:15
2007.01.28
Монтирование образов на Windows Vista


15-1168014485
vidiv
2007-01-05 19:28
2007.01.28
Купил себе стиральную машину...




   Наверх