![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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...
|