Вниз
Скачать: CL | DM;

Структурированый масив, и выборка из него   Найти похожие ветки 

← →
MicroWorld ©   (2004-04-27 11:55) [0]

есть несколько масивов с одинаковой структурой. и мне надо на обработчик RadioGroup кинуть какой из масивов будет в StringGrid (имена разные а структура одна, количество строчек не имеет значение).
Столбики в масивах name1, name2 ... и по выборке из Combobox.itemindex я хотел бы прочитать определенный столбик из определенного масива.

как мне эти две вищи организовать с наименьшим кодом.


← →
Erik ©   (2004-04-27 13:27) [1]

Используй один масив с дополнительным полем.


← →
Юрий Зотов ©   (2004-04-27 13:49) [2]

Почему бы не сделать ОДИН двумерный массив, в котором индекс строки будет выбираться в RadioGroup, а индекс столбца - в Combobox?


← →
evvcom ©   (2004-04-27 14:59) [3]

В StringGrid уже надо записать двумерный массив. Причем я так понимаю у автора эти несколько массивов могут иметь разное количество строк?
Тогда что-то типа:

type
 TRecordForArrayForStringGrid = record
   Field1, Field2, ... FieldN: MyType;
 end;
 PRecordForArrayForStringGrid = ^TRecordForArrayForStringGrid;
const
 Arr0: array[0..10] of TRecordForArrayForStringGrid = (...);
 Arr1: array[0..20] of TRecordForArrayForStringGrid = (...);
 Arr2: array[0..30] of TRecordForArrayForStringGrid = (...);
 Arr3: array[0..40] of TRecordForArrayForStringGrid = (...);
type
 TRefRecord = record
   pArr: PRecordForArrayForStringGrid;
   iLastIndex: Integer;
 end;
const
 RefArray: array[0..3] of TRefRecord = (
   (pArr: @Arr0[0]; iLastIndex: High(Arr0)),
   (pArr: @Arr1[0]; iLastIndex: High(Arr1)),
   (pArr: @Arr2[0]; iLastIndex: High(Arr2)),
   (pArr: @Arr3[0]; iLastIndex: High(Arr3)));

...
procedure ...;
var
 l_pArr: PRecordForArrayForStringGrid;
 l_iIndex: Integer;
begin
 l_pArr := RefArray[RadioGroup.ItemIndex].pArr
 for l_iIndex := 0 to RefArray[RadioGroup.ItemIndex].iLastIndex do begin
   StringGrid... := l_pArr^.Field;
   Inc(l_pArr);
 end;
end;

Писал без проверки, так что возможны глюки. Так сойдет?



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
6-1079870219
csr
2004-03-21 14:56
2004.05.16
Коннект через proxy используя TclientSocket или винапи сокеты


3-1082634420
Frozzen
2004-04-22 15:47
2004.05.16
Позиция курсора в DBGrid


14-1082892916
Dimedrol
2004-04-25 15:35
2004.05.16
Хочу украсить прогу... :-)


14-1082838560
Thor
2004-04-25 00:29
2004.05.16
металлоискатели все стран....


1-1083011006
MadSliMX
2004-04-27 00:23
2004.05.16
RxRichEdit. Глюки с кодировкой.




   Наверх