Главная страница
    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.48 MB
Время: 0.036 c
15-1138286565
Yegorchic
2006-01-26 17:42
2006.02.19
Конспект по теме "Решения треугольников"


2-1138887763
KorD
2006-02-02 16:42
2006.02.19
Ввод данных в поле Edit другой программы


2-1138783630
SDssss
2006-02-01 11:47
2006.02.19
перенести с С в Delphi5


15-1138447094
Piter
2006-01-28 14:18
2006.02.19
Как правильно: Тюнер или Тьюнер?


1-1137737999
Amentah
2006-01-20 09:19
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский