Форум: "Начинающим";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
ВнизКак обартится к элементу с порядковым номером в виде переменной? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c