Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];

Вниз

Как обратиться к объекту?   Найти похожие ветки 

 
iterator ©   (2009-06-19 17:13) [0]

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

var
a:string;
b:integer;

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

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

Спасибо.


 
Сергей М. ©   (2009-06-19 17:22) [1]

TButton(FindComponent(a)).Caption := ..


 
iterator ©   (2009-06-19 17:32) [2]

Благодарствую!!!


 
iterator ©   (2009-06-19 18:09) [3]

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


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

Чего?


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


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

Никак


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

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

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


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

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


 
Andy BitOff ©   (2009-06-19 19:12) [8]

> Styx_   (19.06.09 18:38) [7]

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


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

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

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

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


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


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


Чегоо ?


 
Andy BitOff ©   (2009-06-19 20:33) [11]

> Сергей М. ©   (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);


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


 
iterator ©   (2009-06-19 20:50) [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о значением этой переменной, то показать сообщение.... надеюсь вы меня поняли... если уж такое невозможно, то тогда сделаю все на массиве.


 
turbouser ©   (2009-06-19 20:58) [13]


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

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


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


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


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

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


 
Andy BitOff ©   (2009-06-19 22:44) [15]

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

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


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


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

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


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

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


 
iterator ©   (2009-06-20 01:32) [18]


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

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


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


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

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


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


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

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


 
Strate ©   (2009-06-20 11:37) [21]

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


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

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


 
Andy BitOff ©   (2009-06-20 13:44) [23]

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

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



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

Форум: "Начинающим";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.007 c
15-1244884195
Kerk
2009-06-13 13:09
2009.08.16
Как переводится chode?


6-1205445645
ifrau Randt
2008-03-14 01:00
2009.08.16
NMHTTP


15-1242118246
Германн
2009-05-12 12:50
2009.08.16
ООО Кредитэкспресс


2-1245319637
lewka
2009-06-18 14:07
2009.08.16
Word.application


15-1245270610
Юрий
2009-06-18 00:30
2009.08.16
С днем рождения ! 18 июня 2009 четверг





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский