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

Вниз

KOL: нужно ли освобождать память после VarArrayCreate...   Найти похожие ветки 

 
Сашик   (2008-07-21 23:42) [0]

Как правильно освободить переменную V типа Variant в деструкторе
после V:= VarArrayCreate([,], varVariant). Достаточно ли V:= Unassigned ?


 
Palladin ©   (2008-07-23 11:01) [1]

При уничтожении объекта оно само освободится. Особенных телодвижений не требуется.

А KOL здесь ни причем.


 
Dy1   (2008-07-23 14:38) [2]

пытаюсь уничтожить форму, а она мой дух не отпускает :(
часть кода убрал
procedure TForm1.KOLForm1FormCreate(Sender: PObj);
var Mouse: TMouseEventData;
begin
 LoadIni;
 DFind( TV.TVInsert( TV.TVRoot, 0, ExcludeTrailingPathDelimiter(PathStalk)), PathStalk);
end;

procedure TForm1.LoadIni;
var
 ini: PIniFile;
 OD: POpenDirDialog;
 x: integer;
begin
 if FileExists(GetStartDir + "settings.ini") Then
и т.п.

 if not DirectoryExists( PathStalk + "\gamedata\sounds\")then
 begin
   OD := NewOpenDirDialog("", [odEditBox, odNewDialogStyle]);
   OD.InitialPath := "C:\";
   Repeat
     if OD.Execute Then
       PathStalk := OD.Path
     Else
     begin
       Form.Close; // как правильно в этот момент закрыть программу?
     end;
   Until DirectoryExists( PathStalk + "\gamedata\sounds\");
   OD.Free;
 end;
end;

function TForm1.KOLForm1Message(var Msg: tagMSG; var Rslt: Integer): Boolean;
var
 Filename: array [0..259] of char;
 Count, i, n: Cardinal;
 fname, STpath: string;
 Mouse: TMouseEventData;
begin
 if msg.message = 563 Then
 begin
   Result := False;
   Count := DragQueryFile( msg.WParam, $FFFFFFFF, Filename, SizeOf(Filename));

   for i := 0 to Count - 1 do
   begin
     DragQueryFile( msg.WParam, i, Filename, SizeOf(Filename));
     fname := ExtractFileName(string(Filename));
     if LV.LVIndexOf(fname) >= 0 Then // если найдено
     begin
       STpath := IncludeTrailingPathDelimiter(TV.TVItemPath(TV.TVSelected, "\"));
       n := 0;
       While LV.LVIndexOf(fname + ".bak" + int2str(n) ) >= 0 Do
         n := n + 1;
       CopyMoveFiles( STpath + fname, STpath + fname + ".bak" + int2str(n), True);
       CopyMoveFiles( string(Filename), STpath + fname, False);
     end;
   end;
   DragFinish(Msg.WParam);
   Result := True;
 end;
end;


 
Dy1   (2008-07-23 14:39) [3]

извиняюсь, не сюда :(



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

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

Наверх




Память: 0.47 MB
Время: 0.047 c
4-1239166396
Человек
2009-04-08 08:53
2010.08.27
Не правильно работает WM_NCHITTEST на Vista x64


2-1267226371
Дима
2010-02-27 02:19
2010.08.27
Загрузка текст.файла по индексу ListBox.


15-1274119662
Masolin_gazin
2010-05-17 22:07
2010.08.27
Как удалить сообщения программы?


2-1273044743
SergaDe
2010-05-05 11:32
2010.08.27
BDE Paradox странное


9-1181152411
CMOS
2007-06-06 21:53
2010.08.27
Новый Asphyre 4.0