Вверх ↑
Ответов: 876
Рейтинг: 101
#1: 2010-10-17 01:14:59 ЛС | профиль | цитата
Спасибо nesco результат есть, но..

вот измененная функция

#pas
function GetGutterWidth(IsLine: Boolean): Integer;
begin
with PMenu(Sender){$ifndef F_P}^{$endif} do begin

GetCursorPos(pos);
h_menu := WindowFromPoint(pos);
region := CreateRectRgn(4,4,101,87);
GetClassName(h_menu, WinClass, SizeOf(WinClass));

if String(WinClass) = '#32768' then begin
SetWindowRgn(h_menu, region, true);
end;

{ if Pointer(Bitmap)<>nil then begin
Result := Max(BitmapSize.bmWidth + 4, Rect.Bottom - Rect.Top);
if IsLine then
Result := Max(Result, TextExtent(Caption).cy + 7);
end else
if IsLine then
Result := TextExtent(Caption).cy + 7
else
Result := Rect.Bottom - Rect.Top + 3;}
end;
Result := Max(Result, ItemHeight) + 1;
end;

но было бы еще лучше если бы сделать расчеты по обрезанию ведь можно узнать размер меню вот там и получить нужный регион
а потом можно будет оформить как отдельный property _prop_СropBorder: true/false
карма: 1

0