Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 05:01 19.05.24 
Клубове/ Компютри и Интернет / Delphi Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Проблем със "set of ..." Delphi 5
Автор SAGE_BS (познавам го)
Публикувано22.11.06 15:47  



Вече няколко часа се чудя къде ми е проблема. :?
Накратко проблеме е с променлива от тип "set of...." с повече от 30 елемента и като искам да я инициализирам чрез ":=[]", то вместо да стане [] става [elm24..elem30]
Направих и следния тест:
[code]
type
Test=(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32);
TTestSet= set of Test;
TTestSet2= set of 1..32;
var
TestSet:TTestSet;
TestSet:TTestSet2;
begin
TestSet:=[];//тук се получава все едно съм задал TestSet:=[t24..t30];
TestSet2:=[];//тук всичко е нормално
....................
end;
[/code]

Нулиране на TestSet получавам само така:
Fillchar(TestSet,SizeOf(TestSet),0);
Лошото е, че на много места използвам такъв тип променливи и ако трябва да променям всички или да ги проверявам за проблеми ще ми отнеме много време. Въпросната грешка я открих случайно при Debug на част от кода.
Моля за помощ и благодаря предварително на тези, които ще помогнат.

//Edit:
След още тестове установих следното:
TTestSet2= set of 1..15;//дължина(SizeOf) 2 байта -> няма проблеми
TTestSet3= set of 1..16;//дължина(SizeOf) 4???? байта -> ИМА проблеми
TTestSet4= set of 1..31;//дължина(SizeOf) 4 байта -> ИМА проблеми
TTestSet5= set of 1..39;//дължина(SizeOf) 5 байта -> няма проблеми
TTestSet6= set of 1..47;//дължина(SizeOf) 6 байта -> няма проблеми
TTestSet7= set of 1..55;//дължина(SizeOf) 7 байта -> няма проблеми
TTestSet32= set of 1..255;//дължина(SizeOf) 32 байта -> няма проблеми

ShowMessage('ts3='+IntToStr(Longint(TestSet3))+';' +'ts4='+IntToStr(Longint(TestSet4)));
ми връща: "ts3=1065353216;ts4=1065353216"

=>проблема е само при 4 байтовите set-ове. ?

Редактирано от SAGE_BS на 22.11.06 17:03.



Цялата тема
ТемаАвторПубликувано
* Проблем със "set of ..." Delphi 5 SAGE_BS   22.11.06 15:47
. * Проблем със "set of ..." Delphi 5 SAGE_BS   23.11.06 01:12
. * Re: Проблем със "set of ..." Delphi 5 Dark Dirk   24.11.06 13:26
. * Често ползвам set-ове с Delphi 5 - не съм имал ... NikB   25.11.06 09:17
. * Re: Често ползвам set-ове с Delphi 5 - не съм имал ... SAGE_BS   25.11.06 22:44
. * Re: set-ове --> ASM Йopдaн   26.11.06 16:15
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.