imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 11.11.2005, 12:27     # 1
apoc
Junior Member
 
Аватар для apoc
 
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150

apoc Реально крут(а)apoc Реально крут(а)apoc Реально крут(а)apoc Реально крут(а)
Delphi: Создание динамического с record, который содержит AnsiString

Проблема в следующем.
Есть такая запись:
Код:
  TMyDBEvents = record
           Color: LongWord;
           ID: LongWord;
           Flags: LongWord;
           Title: AnsiString;
           Text: AnsiString;
           DateStart: TDateTime;
           DateType: LongWord;
           DateDays: LongWord;
           DateRemind: TDateTime;
  end;
  PMyDBEvents = ^TMyDBEvents;
  TMyDBase = class
  private
  ... ... ...
В результате вся проблемма в том что я не могу в динамический массив положить ни одной записи, т.к. длина AnsiString не фиксирована.
Как решить эту проблему, подскажите, срочно нужно.
Спасибо.
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'...
apoc вне форума  
Старый 11.11.2005, 12:38     # 2
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Можно просто динамически выделять в памяти обекты типа TMyDBEvents и класть указатели на них в TList.
ЕЖ вне форума  
Старый 11.11.2005, 12:51     # 3
apoc
Junior Member
 
Аватар для apoc
 
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150

apoc Реально крут(а)apoc Реально крут(а)apoc Реально крут(а)apoc Реально крут(а)
Спасибо...

Не поверишь была такая мысль.... тут с коллегой утро общались и он предложил именно такой вариант... Но как то геморно...

Пока ждал ответ... переписал в функции выделения памяти следующую строчку:
Код:
GetMem(NP, Index * sizeof(TMyDBEvents));
на
Код:
NP := AllocMem(Index * sizeof(TMyDBEvents));
И все заработало... незнаю как и почему но он стал нормально ложить данные... и все пока пашет... бредок...

Щас буду тестить с реальным массивом данных... понаблюдаю...
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'...
apoc вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:23.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.