-
Там надо добавить лишь "EV."
-
3.00.D
-
D:\KOL>"d:\delphi2010\embarcadero\Rad Studio\7.0\bin\dcc32.exe" -b -dUSE_MHTOOLT
IP KOL.pas
Embarcadero Delphi for Win32 compiler version 21.0
Copyright (c) 1983,2009 Embarcadero Technologies, Inc.
KOLDEF.INC(253)
KOLDEF.INC(253)
delphidef.inc(48)
delphicommctrl.inc(1569)
KOL_ansi.inc(2317)
KOLMHToolTip.pas(944)
KOLMHToolTip.pas(944)
KOLMHToolTip.pas(944)
KOLMHToolTip.pas(944)
KOLMHToolTip.pas(944)
MCKfakeClasses200x.inc(51)
KOL_ansi.inc(2317)
KOLMHToolTip.pas(944)
KOLMHToolTip.pas(944)
KOL_ASM.inc(15344)
KOL.pas(63794)
92540 lines, 1.25 seconds, 233183 bytes code, 68512 bytes data.
-
> Event OnDropFiles not working too.
> Там надо добавить лишь "EV."
No, the event does not fire. Tested with v3.00d too.
-
Sorry Vladimir, v3.00d does not compile with UNICODE_CTRLS:
dcc32.exe -b -dUNICODE_CTRLS KOL.pas
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
KOLDEF.INC(253)
KOLDEF.INC(253)
delphidef.inc(48)
delphicommctrl.inc(1569)
KOL_unicode.inc(1185)
KOL_unicode.inc(1185)
KOL.pas(19674) Error: Incompatible types: 'WideChar' and 'Char'
KOL.pas(19896) Error: Incompatible types: 'WideChar' and 'Char'
KOL.pas(19899) Error: Incompatible types: 'WideChar' and 'Char'
KOL.pas(19902) Error: Incompatible types: 'WideChar' and 'Char'
KOL_ASM.inc(2158) Error: Declaration of 'TextArea' differs from previous declaration
KOL_ASM.inc(2164) Error: Undeclared identifier: 'TextExtent'
KOL_ASM.inc(2451) Error: Identifier redeclared: 'Int2Hex'
KOL_ASM.inc(2534) Error: Previous declaration of 'Hex2Int' was not marked with the 'overload' directive
KOL_ASM.inc(2586) Error: Identifier redeclared: 'Int2Str'
KOL_ASM.inc(15344)
KOL.pas(63794)
-
Which version of KOLMHToolTip.pas are you using? Here is the latest: http://zalil.ru/29788607Can you add the correct one to the KOL release package please.
-
Версия 3.00.DОШИБКИ ПРИ КОМПИЛЯЦИИ ПРОЕКТА mckCtrls.pas1. SL.Insert( IndexOfBeginLine, 'const ToolbarButtonsArray_' + Name + ': array[' +
'0..' + IntToStr(Buttons_Count-1) + '] of PKOLChar = (' +
Buttons_List + ');'); KOL_ASM.inc1. procedure TCanvas.TextArea(const Text: KOLString; var Sz: TSize;
var P0: TPoint); 2. function Int2Hex( Value : DWord; Digits : Integer ) : KOLString; 3. function Hex2Int( const Value : KOLString) : Integer; 4. function Int2Str( Value : Integer ) : KOLString; KOL.PAS1. function Int2Hex( Value : DWord; Digits : Integer ) : KOLString; 2. function Hex2Int( const Value : KOLString) : Integer; 3. function Int2Str( Value : Integer ) : KOLString; Другие ошибки1. procedure TForm1.KOLFormFormCreate(Sender: PObj);
begin
ListView1.Clear;
ComboBox1.Clear;
TreeView1.Clear;
Toolbar1.Clear;
RichEdit1.Clear;
Memo1.Clear;
EditBox1.Clear;
Label1.Clear;
ListBox1.Clear;
end; ВОПРОСЫ1. Зачем в StrReplace сделали KOLString? Для этих целей есть KOLStrReplace?
-
3.00.F
Зачем в StrReplace сделали KOLString? Для этих целей есть KOLStrReplace? Автоматически. Слишком много было предупреждений от D2010. Вернул.
По поводу MHToolTip. Новую версию я выложил. Просьба к авторам дальнейших версий учесть, что блок {$IFDEF interface} был изменен на {$IFDEF interface_part}.
-
Может v3.00.E? Владимир, внесите фикс для 32битных битмапов, чтоб не терялся альфа канал. Давно писал об этом, а фикса все нету...
function _GetDIBPixelsTrueColorWithAlpha( Bmp: PBitmap; X, Y: Integer ): TColor;
var
Pixel: DWORD;
RGB: TRGBQuad;
begin
Pixel := PDWORD( Integer(Bmp.fScanLine0) + Y * Bmp.fScanLineDelta +
X * Bmp.fBytesPerPixel )^ and $FFFFFFFF;
RGB := TRGBQuad(Pixel);
Swap(RGB.rgbBlue, RGB.rgbRed);
Result := TColor( RGB );
end;
...
function TBitmap.GetDIBPixels(X, Y: Integer): TColor;
...
pf32bit:
begin
fPixelsPerByteMask := 1;
fBytesPerPixel := 4;
fGetDIBPixels := _GetDIBPixelsTrueColorWithAlpha;
end;
...
procedure _SetDIBPixelsTrueColorWithAlpha(Bmp: PBitmap; X, Y: Integer; Value: TColor);
var RGB: TRGBQuad;
Pos: PDWord;
begin
RGB := TRGBQuad(Value);
Swap(RGB.rgbBlue, RGB.rgbRed);
Pos := PDWORD( Integer(Bmp.fScanLine0) + Y * Bmp.fScanLineDelta
+ X * Bmp.fBytesPerPixel );
Pos^ := Pos^ or DWORD(RGB);
end;
...
procedure TBitmap.SetDIBPixels(X, Y: Integer; const Value: TColor);
...
pf32bit:
begin
fPixelsPerByteMask := 1;
fBytesPerPixel := 4;
fSetDIBPixels := _SetDIBPixelsTrueColorWithAlpha;
end;
...
-
2 КладовВладимир, повторяю ошибки которые вылазят при UNICODE_CTRLS: Версия 3.00.FmckCtrls.pas1. SL.Insert( IndexOfBeginLine, 'const ToolbarButtonsArray_' + Name + ': array[' +
'0..' + IntToStr(Buttons_Count-1) + '] of PKOLChar = (' +
Buttons_List + ');'); KOL_ASM.inc1. procedure TCanvas.TextArea(const Text: KOLString; var Sz: TSize;
var P0: TPoint); 2. function Int2Hex( Value : DWord; Digits : Integer ) : KOLString; 3. function Hex2Int( const Value : KOLString) : Integer; 4. function Int2Str( Value : Integer ) : KOLString; KOL.PAS1. function Int2Hex( Value : DWord; Digits : Integer ) : KOLString; 2. function Hex2Int( const Value : KOLString) : Integer; 3. function Int2Str( Value : Integer ) : KOLString; Жирным выделено то, что надо исправить...либо объявление в KOL.PAS.
-
Ошибся чуток: KOL.PAS1. function Int2Hex( Value : DWord; Digits : Integer ) : KOLString; 2. function Hex2Int( const Value : KOLString) : Integer; 3. function Int2Str( Value : Integer ) : KOLString;
-
Владимир, а для чего поменяли этот участок кода?
function TThread.Execute: integer;
...
if F_AutoFree then
begin
H := FHandle;
FHandle := 0;
Free;
TerminateThread( H, 0 );
end;
старый вариант нормально работает
-
А зачем в Int2Str и прочих AnsiString заменено на KOLString?
-
Думаете там юникоде символы будут?
-
Где они вылазят? У меня ничего не вылазит на D2010 и D6. {$IFDEF ASM_VERSION}Надо именно ASM_UNICODE, если работа идет с KOLString. зачем в Int2Str и прочих AnsiString заменено на KOLStringДля D2010. Для чистого AnsiString в проекте с UNICODE_CTRLS и D2009+ осталась для Int2Str еще куча аналогов: Int2PChar, UInt2Str, Int2StrEx, ... а без UNICODE_CTRLS KOLString = AnsiString. Можно и вернуть, но только так, чтобы D2010 не возмущался. if F_AutoFree then
begin
H := FHandle;
FHandle := 0;
Free;
TerminateThread( H, 0 );
end;
Нет, не работал прежний вариант нормально. Потоки не удаляются, по крайней мере в Win7, и продолжают висеть. Особенно это заметно, если создавать и убивать по 100 раз в секунду.
-
Думаете там юникоде символы будут? Уверен, что будут. Они занимают 2 байта. Асм-код надо переделывать. В Windows не используется UTF-8.
-
> Нет, не работал прежний вариант нормально. Потоки не удаляются, > по крайней мере в Win7, и продолжают висеть. Особенно это > заметно, если создавать и убивать по 100 раз в секунду.
Вот мой тестовый проект program Project1;
uses
Windows, KOL;
function thread(dummy, Sender: PThread): Integer;
begin
Sleep(5000);
Result := 0;
end;
var
i: Integer;
begin
for I := 0 to 99 do
NewThreadAutoFree(TOnThreadExecute(MakeMethod(nil, @thread)));
readln;
end. Все нормально пашет. Покажите тот в котором прежний вариант не нормален
-
-
А вот почему у меня нет доступа к svn.
А чем Вы смотрите, что все нормально пашет? Я, например, process explorer'ом (SysInternals) смотрел.
-
> А вот почему у меня нет доступа к svn.
Дык сколько раз я предлагал сделать вам доступ и каждый раз вы отказывались ссылаясь на неработоспособность свн клиентов... Зарегтесь на sourceforge.net и сделаю права вам..
> А чем Вы смотрите, что все нормально пашет?
Им же и смотрю..
запустил.. смортю - 101 поток... жду примерно 5 сек.. и остается 1 поток
|