Форум: "KOL";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Внизутечки памяти. Помогите, пожалуйста Найти похожие ветки
← →
Dy1 (2008-07-23 14:40) [0]пытаюсь уничтожить форму, а она мой дух не отпускает :(
часть кода убрал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;
← →
exero © (2008-07-23 14:54) [1]Перед Form.Close добавь OD.Free;
В обработчике сообщений для необрабатываемых сообщений Result := False;
← →
Dy1 (2008-07-23 15:00) [2]Result := False стоИт, перед Form.Close добавлял OD.Free - глючит, лучше как есть.
У меня такое ощущение, что после вызова Form.Close создание формы продолжается дальше. Кстати Form.Destroy вообще непонятно когда вызывается, даже от фазы Луны не зависит.
← →
exero © (2008-07-23 15:20) [3]В упор не вижу что Result := False в KOLForm1Message, для сообщений отличных от 563
← →
MTsv DN (2008-07-23 16:23) [4]
if msg.message = 563 Then
begin
Result := False;
->Result := False;
if msg.message = 563 Then
begin
← →
Dy1 (2008-07-24 13:23) [5]там исправил.
запускаю прогу, жму отмену. Окно исчезает, процесс висит в памяти
← →
MTsv DN (2008-07-24 14:04) [6]
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;
Странно, я мож че не понимаю, а при чем тут KOL. Элементарно неправильный код...
Варианты:
1.Form.Close; // как правильно в этот момент закрыть программу
->OD.Free;
Form.Close;
exit;
2.Form.Close; // как правильно в этот момент закрыть программу
->OD.Free;
SendMessage(Form.Handle, WM_CLOSE, 0, 0);
exit;
3.Form.Close; // как правильно в этот момент закрыть программу
->OD.Free;
halt;
← →
Boguslaw (2008-08-15 19:10) [7]Maybe someone is willing to help me convert MemCheck to KOL ? I have a compilable version but it seems to not working as should. Vladimir ?
← →
exero (2008-08-15 21:31) [8]FastMM4 - наш выбор ))
← →
Dy1 (2008-08-21 22:48) [9]exero, как будто FastMM4 сам всё правильно сделает и заменит программиста :/ :)
← →
exero (2008-08-22 06:23) [10]
> FastMM4 сам всё правильно сделает и заменит
> программиста :/ :)
неужели я где-то подобное мог написать? Просто если не использовать FastMM4 и FastMove то Delphi (до определенных версий) - унылое говно в плане производительности. И что такое может MemCheck (насколько я помню - тупо показывает утечки) чего не может FastMM4?
А для новых разработок .Net или Java (первый для той ниши которую занимал delphi, предпочтительнее), только обязательно хотя бы рихтера прочтите - и кроме необходимости таскать framework и простого дизассемблирования минусов вроде не замечено.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.07 c