Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обратиться к объекту? [D7, WinXP]


Страницы:   1 2

iterator ©   (2009-06-19 17:13:00) 

Возможно, вопрос может показаться уж слишком простым, но что то никак не могу решить следующую задачу:

var
a:string;
b:integer;

a:='Button'+IntToStr(b);{имя объекта кнопка Button0}

а как теперь этой кнопке например заменить свойство caption?
(т.е. есть 10 кнопок, нужно для всех кнопок без лишней писанины заменить значения свойства)

Спасибо.


Andy BitOff   (2009-06-20 13:44:00) [1]

> Anatoly Podgoretsky ©   (20.06.09 10:38) [20]

Анатолий, говоря они, я, конечно же, подразумевал решение задачи [3], а не непосредственно переменные. Кстати, я о них не сказал ни слова. Это ясно только по смыслу.
Но в целом согласен. Неудачная формулировка получилась.


Медвежонок Пятачок   (2009-06-20 11:42:00) [2]

в автошколе массивы не проходят


Strate   (2009-06-20 11:37:00) [3]

Я тут одного не пойму ) А массивы уже отменили?


Anatoly Podgoretsky   (2009-06-20 10:38:00) [4]


> Andy BitOff ©   (19.06.09 19:12) [8]

Если они являются свойством, то они не являются переменной и по большому счету могут не иметь физического значения в виде хранения.


Германн   (2009-06-20 01:48:00) [5]


> iterator ©   (20.06.09 01:32) [18]
>
>
> > Скорее всего автору лень писать 10 IF'ов.
>
> все верно лень!!! и прокручивать текст на 600 строк тоже
> лень, когда все легко уместится в 50!!
>

Поживёшь - увидишь!


iterator   (2009-06-20 01:32:00) [6]


> Скорее всего автору лень писать 10 IF'ов.

все верно лень!!! и прокручивать текст на 600 строк тоже лень, когда все легко уместится в 50!!


Медвежонок Пятачок   (2009-06-20 01:05:00) [7]

десять их может понадобиться только если паскаль в автошколе досааф изучал.


Германн   (2009-06-20 00:19:00) [8]


> iterator ©   (19.06.09 20:50) [12]
>
> конечно в runtime переменные то не создаются, просто хочется
> упростить процедуру, которая работает с 10 переменными типа
> string, отличающуюся только цифрой в конце.
>

Весьма странное и не менее весьма противоречивое заявление. Скорее всего автору лень писать 10 IF'ов.


Andy BitOff   (2009-06-19 22:44:00) [9]

> Сергей М. ©   (19.06.09 22:06) [14]

Сэр формалист?


Сергей М.   (2009-06-19 22:06:00) [10]


> Andy BitOff ©   (19.06.09 20:33) [11]


Вижу только одну переменную:
MyStrings: TMyStrings;

И какое отношение к ней имеет published - не понятно


turbouser   (2009-06-19 20:58:00) [11]


> iterator ©   (19.06.09 20:50) [12]

Oo нда...
TStrings спасут отца русской демократии...


iterator   (2009-06-19 20:50:00) [12]

конечно в runtime переменные то не создаются, просто хочется упростить процедуру, которая работает с 10 переменными типа string, отличающуюся только цифрой в конце.

например
var
ab0,ab1,ab2,ab3:string;

ab0:='строка0';
ab1:='строка1';
ab2:='строка2';
ab3:='строка3'; и т.д.

нужно проверить каждая ли строка равна некой другой строке, ну, примерно
for i:=0 to 3 do
 begin
 if (ab+inttostr(i))='ab'+IntToStr(i) then
     Showmessage('OK');
 end;

то, что выделено жирным  меня и интересует, как написать правильно, т.е. если название переменной совпадает cо значением этой переменной, то показать сообщение.... надеюсь вы меня поняли... если уж такое невозможно, то тогда сделаю все на массиве.


Andy BitOff   (2009-06-19 20:33:00) [13]

> Сергей М. ©   (19.06.09 20:19) [10]

type
 TMyStrings = class
   private
     FOpenError: string;
   published          
     property sOpenError: string read FOpenError write FOpenError;
 end;

var
 MyStrings: TMyStrings;

implementation

SetPropValue(MyStrings, 'sOpenError', 'не найден файл или еще чего');

if not FileExists('SomeFile.sf') then
 ShowMassege(MyStrings.sOpenError);


Как-то так. Разве нет?


Сергей М.   (2009-06-19 20:19:00) [14]


> Andy BitOff ©   (19.06.09 19:12) [8]


Чегоо ?


Медвежонок Пятачок   (2009-06-19 19:31:00) [15]

а что за извращение иметь в коде переменную, иметь переменную или литерал с именем первой переменой и искать ее по имени (что само по себе невозможно)?

или он хочет сказать, что делает много раз StrAlloc и не сохраняет ссылки?
но тогда и имени никакого не будет ни в рантайме ни в дизайнтайме.

так что же он собрался искать по имени?


Andy BitOff   (2009-06-19 19:12:00) [16]

> Styx_   (19.06.09 18:38) [7]

Если они не являются раблишед свойством класса.
В некоторый программах на этом основана локализация. Все строковые переменные забиваются в класс и при локализации ищутся именно по имени.


Styx_   (2009-06-19 18:38:00) [17]

Медвежонок Пятачок
Видимо, обратиться надо по заданному в runtime имени. А в runtime у переменных имён нетуть.


Медвежонок Пятачок   (2009-06-19 18:25:00) [18]

как также обратиться к переменной

То есть переменная у тебя есть, если к ней хочется "обратиться"?
Тогда какие вообще проблемы?


Styx_   (2009-06-19 18:15:00) [19]


> может тогда заодно подскажите как также обратиться к переменной
> (тип string)

Никак


Медвежонок Пятачок   (2009-06-19 18:12:00) [20]

Чего?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо