-
обнаружил неприятную вещь - утечка памяти метода Draw. Т.к. прогер из меня никакой :) , решил заменой на Canvas.CopyRect
-
забыл добавить, что рисую на форме в таймере бмпшку 80х80х32 250 раз в секунду (ну надо мне так).
-
Можно код где есть утечка? И чем обнаружил?
-
код обычный: битмап.Draw( Обнаружил FastMM4-кой.
И сейчас обнаружил утечку 20 байт при загрузке PNG из потока (KOLGraphicEx.pas)
-
Это баг KOLGraphicEx, там и надо смотреть видимо. Есть еще TinyPng из GrushControls.
Народ, я уезжаю на месяц, связи не будет, в сентябре приеду.
-
юзал tinyPNG и tinyJPGGIFBMP пока не надоели утечки по килобайту. FastMM место не показал, я в коде не разобрался. JpegObj работает отлично.
-
попался ещё один баг: PBitmap.Canvas.Arc вылетает с ошибкой где-то в памяти. Вызов напрямую windows.Arc работает.
-
Я про это уже писал (TCanvas.Arc). Привет, кстати. Пример на баг TBits есть? Первый жень после возвращения некогда было даже в инет выйти.
-
привет примера нет - опять потерял проект (или отложил или удалил), что делал не помню. Видимо использовал какой-то компонент, который использовал koladd
-
в Turbo Delphi не хочет компилироваться KOL.pas если установить UNICODE_CTRLS до тех пор пока не установим еще и FORCE_ALTERNATEFILENAME, ошибка в 23405: procedure TDirList.ScanDirectory(const DirPath, Filter: KOLString;
Attr: DWord);
var FindData : TFindFileData;
E : PFindFileData;
Action: TDirItemAction;
IsUnicode: AnsiString;
begin
Clear;
FPath := DirPath;
if (FPath = '') then Exit;
FPath := IncludeTrailingPathDelimiter( FPath );
if not Assigned(fFilters) then begin
>>> fFilters := NewWStrList NewStrList ;
if Filter = '*.*' then
fFilters.Add( '*' )
else
fFilters.Add( Filter );
end; ошибка: [Pascal Error] KOL.pas(23405): E2010 Incompatible types: 'TStrList' and 'TWStrList'
-
Еще такой баг, или я что-то не так делаю: делаю ListView1.Anchor(TRUE, TRUE, TRUE, TRUE); потом такой код: DefWindowProc(Form.Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
ShowWindow(Form.Handle, SW_HIDE);
ShowWindow(Form.Handle, SW_SHOW);
DefWindowProc(Form.Handle, WM_SYSCOMMAND, SC_RESTORE, 0); и после этого ListView1 по размерам уходит далеко-далеко вправо и вниз, это касается не только ListView1. если в Anchor установить только вертикальные(top, bottom) значения в true, то размер "уйдет" только вниз, соот-но для left/right Что посоветуете? Все таки Anchor довольно нужная штука, не всегда удобно align использовать.
-
2 RuzzzДобавка форс_алтнейм - это мое, но тока видимо D[u]fa добавил не правильно. Вот как должно быть: procedure TDirList.ScanDirectory(const DirPath, Filter: KOLString;
Attr: DWord);
var FindData : TFindFileData;
E : PFindFileData;
Action: TDirItemAction;
IsUnicode: AnsiString;
begin
Clear;
FPath := DirPath;
if (FPath = '') then Exit;
FPath := IncludeTrailingPathDelimiter( FPath );
if not Assigned(fFilters) then begin
fFilters := NewWStrList NewStrList ;
if Filter = '*.*' then
fFilters.Add( '*' )
else
fFilters.Add( Filter );
end;
-
> Пример на баг TBits есть? подключаю kolAdd, сразу 6 ошибок.
Символы {$DEFINE ASM_VERSION} {$DEFINE NO_DEFAULT_BUTTON_BOLD} {$DEFINE NOT_USE_RICHEDIT} {$DEFINE CRASH_DEBUG}{$DEFINE DEBUG_GDIOBJECTS}{$DEFINE CHK_BITBLT}
-
Тестовый проект?
-
FORCE_ALTERNATEFILENAME исправлено и залито. C kolAdd ошибок нет
-
www.dy.cdrrhq.ru/t2.rar весь тестовый проект - подключение koladd, как я и говорил.
-
2 Dy1 Странный Вы все-таки...или такой "уникальный", что находите себе на причинное место приключения там где их нет... На кой ляд Вы {$DEFINE ASM_VERSION} добавили? Она по умолчанию выставляется...
-
Гы. Чую, придется мне извиниться...{$DEFINE ASM_VERSION} не подхватывается в D2007 для KOLadd.pas...
А правки следующие: 1. Стр. 1136 MOV EAX, [EAX].TBitsList.fItems 2. Стр. 1309 MOV ECX, [ECX].TBitsList.fCapacity 3. Стр. 1330 MOV EAX, [EAX].TBitsList.fItems 4. Стр. 2275 CALL TObj.Final 5. Стр. 2343 CALL TObj.Final
-
Исправлено, 4 и 5 пункты под вопросом - заменены на TObj.Destroy
-
файл KOLadd, строка 2227, Заменил Path: AnsiString на KOLString, иначе при использовании UNICODE_CTRLS выдает ошибку что "не совпадает с предыдущим описанием" function NewDirChangeNotifier( const Path: AnsiString; Filter: TFileChangeFilter;
WatchSubtree: Boolean; ChangeProc: TOnDirChange )
: PDirChange;
и действительно: строка 459 function NewDirChangeNotifier( const Path: KOLString; Filter: TFileChangeFilter;
WatchSubtree: Boolean; ChangeProc: TOnDirChange ): PDirChange; Здесь Path: KOLString уже не AnsiString
|