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

Вниз

Переменная в переменной   Найти похожие ветки 

 
Lenka_per   (2006-01-31 15:33) [0]

Уважаемые Мастера, подскажите, возможно ли обратиться к переменной, имя которой находится в переменной. И как это правильно сделать, если возможно
Заранее спасибо

var
 a: string;
 Var_With_Data:integer;

a:="Var_With_Data";
Var_With_Data:=1234567;


и теперь получить через а числовое значение


 
wal ©   (2006-01-31 15:35) [1]

В таком виде никак невозможно


 
Плохиш ©   (2006-01-31 15:36) [2]

У переменных во время выполнения нет имён.


 
Gero ©   (2006-01-31 15:37) [3]

Возможно сделать через свойства компонентов.


 
begin...end ©   (2006-01-31 15:40) [4]

var
 MyVariable: Integer;

exports
 MyVariable;

var
 I: Integer;
begin
 MyVariable := 12345;
 I := PInteger(GetProcAddress(HInstance, "MyVariable"))^
end


 
Джо ©   (2006-01-31 15:42) [5]

> Lenka_per   (31.01.06 15:33)

Можно поступить так.
Завести класс наподобие такого, опубликовать свойства и обращаться к ним с помощью RTTI:

type
{$M+}
 TMyStore = class
 private
   FText: string;
 published
   property Text: string read FText write FText;
 end;
{$M-}


Теперь обрататиться к свойству экземпляра этого класса можно по имени свойства при помощи GetPropValue, SetPropValue (uses TypInfo).


 
Kolan ©   (2006-01-31 15:45) [6]

Мне кажется что проблемма не в этом...

Зачем вам это нужно?


 
Lenka_per   (2006-01-31 15:50) [7]

Класс!!! Вот это оперативность!
Попробовала ответ begin...end как самый простой
Все получилось!
Спасибо, теперь можно здорово укоротить код!


 
Digitman ©   (2006-01-31 16:05) [8]


> Попробовала ответ begin...end как самый простой


а, как оказывается, там и без вазелина а ля "бигин.. энд" не шибко сложней)..


 
evvcom ©   (2006-01-31 16:20) [9]

Lenka_per! Все делается гораздо проще! Для начала ответь на [6].


 
Lenka_per   (2006-01-31 16:41) [10]

Извините, не совсем корректно задала вопрос
В идеале хотела немножко не это

Старая проблема
Хотела в одной процедуре обрабатывать все клики на CheckListBox, ComboBox что есть на форме - добавлять/удалять/корретировать
Чтоб не пришлось писать такого

  case j of
   1: p:=@Form1.CheckListBox1;
   2: p:=@Form1.CheckListBox2;
   3: p:=@Form1.CheckListBox3;
......
  end;

хотелось покрасивей ...


 
Gero ©   (2006-01-31 16:51) [11]

> Чтоб не пришлось писать такого
>
>  case j of
>   1: p:=@Form1.CheckListBox1;
>   2: p:=@Form1.CheckListBox2;
>   3: p:=@Form1.CheckListBox3;
> ......
>  end;
>
> хотелось покрасивей ...

p := Form1.FindComponent("CheckListBox" + IntToStr(j));


 
evvcom ©   (2006-01-31 16:58) [12]


> Gero ©   (31.01.06 16:51) [11]

Не... Еще проще!

> Lenka_per   (31.01.06 16:41) [10]

В designtime:
Form1.CheckListBox1.OnClick := CheckListBoxClick;
Form1.CheckListBox2.OnClick := CheckListBoxClick;
Form1.CheckListBox3.OnClick := CheckListBoxClick;
В runtime:
procedure TForm1.CheckListBoxClick(Sender: TObject);
begin
 TCheckListBox(Sender).<Method or Property>;
end;


 
begin...end ©   (2006-01-31 17:17) [13]

> Digitman ©   (31.01.06 16:05) [8]

Можно пояснить? Про вазелин.


 
Lenka_per   (2006-02-01 08:41) [14]

Спасибо всем знатокам за ответы!

Просто очень я избалована Clipperом и VFP, где в строке можно сформировать любую команду в runtime

Хотелось что-то подобное повторить хоть и не в таком объеме ...


 
evvcom ©   (2006-02-01 08:43) [15]

Не надо путать интерпретаторы с компиляторами. :)



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

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

Наверх




Память: 0.47 MB
Время: 0.055 c
1-1137758963
jiurasdad
2006-01-20 15:09
2006.02.19
Как послать нажатие клавишь в другое приложение


2-1138774760
dabreezy
2006-02-01 09:19
2006.02.19
Вопрос по TabControl


15-1138717831
stone
2006-01-31 17:30
2006.02.19
С Днём рождения! 31 января


4-1133808278
solomon
2005-12-05 21:44
2006.02.19
Internet Explorer, фрейм и отлов нажатия кнопок в нем.


2-1138550381
Pit
2006-01-29 18:59
2006.02.19
Люди неужели ни кто не поможет





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский