Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.19;
Скачать: CL | DM;

Вниз

Скопировать массив в массив   Найти похожие ветки 

 
Sarge   (2003-06-05 15:33) [0]

Есть эти стрктуры:
Type TSelectedRights=packed record
//Здесь много переменных с типом Boolean
F1,
F2,
..
F30: Boolean;
End;

Type PSelectedRights = ^TSelectedRights;

Есть массив MasRights: array of PSelectedRights

Затем я высвечиваю форму, на ней TCheckListBox, где отмечаю галочки.
После этого

Var Temp: array of Boolean;
t: Integer;
Begin
SetLength(MasRights,1);
SetLength(Temp,CheckListBox.Items.Count);
For t:=Low(Temp) to High(Temp) Do Temp[t]:=CheckListBox.Checked[t];

Теперь вопрос: Как скопировать Temp на элемент массива MasRights[0] ?? Чтобы вручную не назначать каждую переменную соответствующему Checked"у ?
Т.е. я думаю, что-то типа CopyMemory. Так не получается:

CopyMemory(Pointer(MasRights[0]),Pointer(Temp[1]),SizeOf(Temp));

End;

:( Подскажите плиз


 
Skier   (2003-06-05 15:42) [1]

Move(Temp[ 0], MasRights[ RequiredIndex]^.F1, ...)


 
evvcom   (2003-06-05 16:22) [2]

Судя по

> F1,
> F2,
> ..
> F30: Boolean;

гораздо удобнее использовать перечисляемый тип и множество. Тогда вся эта "беда" разместится не в 30*4=120 байтах, а всего в 4-х! А далее копирование будет вообще простым MasRights[RequiredIndex]^ := TempSet;


 
Skier   (2003-06-05 16:31) [3]

+ evvcom © (05.06.03 16:22)
-Пишешь три функции SetBit(...) ClearBit(...) CheckBit(...)
-и теперь... в типе Byte можно хранить 8 флажков
в типе Word - 16 и т.д.
Выигрываешь и во времени и в памяти.



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

Текущий архив: 2003.06.19;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.007 c
6-60301
PVOID
2003-04-16 14:27
2003.06.19
Помогите пожалуйста разобраться с RAS


3-60057
stkatch
2003-05-28 11:19
2003.06.19
Оператор BREAK в IB


14-60314
Neox
2003-05-31 13:56
2003.06.19
Delphi 6 и Service Pack


7-60428
YDV
2003-04-13 19:26
2003.06.19
запуск в определенный момент времени !?


8-60270
Карелин Артем
2003-03-07 06:49
2003.06.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский