Сейчас на форуме: hgdagon, asfa, bartolomeo (+5 невидимых) |
eXeL@B —› Программирование —› Проблемы с памятью в Дельфи. |
Посл.ответ | Сообщение |
|
Создано: 07 октября 2006 05:48 · Поправил: Satanael · Личное сообщение · #1 Блин думал умею в Дельфи программировать оказывается что нет … В общем есть у меня такой тип: TSVar3=record min:string; //указываю размер (string[100]) всё равно глюки max:string; !Вот с этими двумя строковыми переменными проблема! emitter:integer; end; И есть Класс: TPar01=class(TObject) public EmCfSourceXY:PSVar3; EmCfInitAngle:PSVar3; EmCfInitTrans:PSVar3; … procedure SaveToFile(const f:string;bBitmap,bAlpha:boolean); Procedure LoadFromFile(const f:string); Procedure SetDefaultParams; … End; Так когда я пользуюсь методом LoadFromFile то значения, переменных EmCfSourceXY, EmCfInitAngle, EmCfInitTrans и других, искожаются, портятся, глючат, особенно раздражает когда значения одной налезают на другую. Как мне избавится от этих проблем с динамической памятью! Подкиньте хоть какую-нибудь идею! Заранее благодарен. ----- Никто не знает столько, сколько не знаю я |
|
Создано: 07 октября 2006 06:06 · Личное сообщение · #2 У меня чет похожее было. Псмотри ето - можь пригодитси... type TMAPSaver = class(TComponent) public procedure SaveToStream(aStream : TStream); procedure LoadFromStream(aStream : TStream); procedure SaveToFile(const fileName : String); procedure LoadFromFile(const fileName : String); end; procedure TMAPSaver.SaveToStream(aStream : TStream); begin aStream.WriteComponent(Form1); end; procedure TMAPSaver.LoadFromStream(aStream : TStream); begin aStream.ReadComponent(Form1); end; procedure TMAPSaver.SaveToFile(const fileName : String); var stream : TStream; begin stream := CreateFileStream(fileName, fmCreate); try SaveToStream(Stream); finally Stream.Free; end; end; procedure TMAPSaver.LoadFromFile(const fileName : String); procedure CheckResFileStream(Stream : TStream); var N : Integer; B : Byte; begin N := Stream.Position; Stream.Read(B, SizeOf(B)); Stream.Position := N; if B = $FF then Stream.ReadResHeader; end; var stream : TStream; begin stream := CreateFileStream(fileName, fmOpenRead); try CheckResFileStream(stream); LoadFromStream(stream); finally Stream.Free; end; end; |
|
Создано: 07 октября 2006 07:20 · Личное сообщение · #3 |
|
Создано: 07 октября 2006 07:23 · Личное сообщение · #4 koderr если ты здесь хранишь имена файлов, то размер следует указывать MAX_PATH = 260. Не а не храню, я там храню различные данные которые читаются из файла, обычно из длина от 1 до 10 символов. Я также пробовал max_path не помогает. Пробовал: SetLength() тоже не помагает, все равно память портится. ----- Никто не знает столько, сколько не знаю я |
eXeL@B —› Программирование —› Проблемы с памятью в Дельфи. |