![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте уважаемые! Есть вопрос, который я не могу решить, замучился уже искать, если поможете буду очень рад:
Пользователь выбирает значение(предположим из listbox) и дальше мне нужно определить в каком значении это искать: Код:
MyRec = record Name: string[100]; property1: integer; property2: integer; property3: integer; end; var kurs: MyRec; Теперь мне надо достать значение из listbox : Код:
Listbox1.Items[Listbox1.ItemIndex] То есть мне надо выдернуть значение "10". Как это сделать?... |
#2
|
||||
|
||||
![]() Так можно попробовать:
Код:
Type TMystr = Packed Record Name: String; Property1: Integer; Property2: Integer; Property3: Integer; end; Var Mystr: Array [0..4] of TMystr; procedure TForm1.FormActivate(Sender: TObject); var i: Integer; begin Randomize; For i:=0 To 4 Do begin Mystr[i].Name:= IntToStr(i)+') Строка.'; Mystr[i].Property1:= Random(100); Mystr[i].Property2:= Random(200); Mystr[i].Property3:= Random(300); Listbox1.Items.Add(Mystr[i].Name); end; end; procedure TForm1.ListBox1Click(Sender: TObject); Var Property1, Property2, Property3: Integer; begin Property1:= Mystr[Listbox1.ItemIndex].Property1; Property2:= Mystr[Listbox1.ItemIndex].Property2; Property3:= Mystr[Listbox1.ItemIndex].Property3; end; |
#3
|
|||
|
|||
![]() нет, можно конечно вручную это сделать как вы предлагаете, но хотелось бы автоматизировать это(вдруг у меня свойств будет не 3, а 50), то бишь хочу чтобы было что-то вроде:
n:=kurs.Listbox1.Items[Listbox1.ItemIndex]; но так он собака не работает, ругается на ошибку... |
#4
|
|||
|
|||
![]() Читай про RTTI.
Только вот не помню, работает ли это с записями. С классами точно работает. |
#5
|
||||
|
||||
![]() Первое что пришло в голову при большом колличестве Property:
(Массив можно сохр и загружать из файла). Код:
Type TMystr = Packed Record Name: String; PropertyX: Array [1..50] of Integer; end; Var Mystr: Array [0..4] of TMystr; procedure TForm1.FormActivate(Sender: TObject); var i,j: Integer; begin Randomize; For i:=0 To 4 Do begin Mystr[i].Name:= IntToStr(i)+') Ñòðîêà.'; For j:=1 To 50 Do begin Mystr[i].PropertyX[j]:= Random(100); end; Listbox1.Items.Add(Mystr[i].Name); end; end; procedure TForm1.ListBox1Click(Sender: TObject); Var PropertyX: Array [1..50] of Integer; i: Integer; begin For i:= 1 To 50 Do begin PropertyX[i]:= Mystr[Listbox1.ItemIndex].PropertyX[i]; end; end; |
#6
|
|||
|
|||
![]() Спасибо большое, в особенности AND_Ray...
|