Форум: "Основная";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
ВнизPopupMenu Найти похожие ветки
← →
Handle © (2006-11-17 11:49) [0]Делаю собственную орисовку PopupMenu, возможно ли определить координаты ARect.Left глобально, то есть относительно экрана?
procedure TForm1.AdvancedDrawItems(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);
var
PTextRect: TRect;
begin
ARect.Left:= 20;
ACanvas.FillRect(ARect);
if odSelected in State then
begin
ACanvas.Pen.Color:= clHighlight;
ACanvas.Brush.Color:= clHighlight;
ACanvas.Rectangle(ARect);
// ShowToolTipHint( );
end else
begin
ACanvas.Font.Color:= clWhite;
end;
PTextRect:= Rect(ARect.Left + 3, ARect.Top + 2, ARect.Right - 22, ARect.Bottom);
DrawText(ACanvas.Handle,PChar((Sender as TMenuItem).Caption),
Length((Sender as TMenuItem).Caption), PTextRect, DT_LEFT);
ImageList1.Draw(ACanvas, 1, ARect.Top + 2,(Sender as TMenuItem).ImageIndex, true);
end;
← →
clickmaker © (2006-11-17 12:05) [1]ClientToScreen()
← →
Handle © (2006-11-17 12:15) [2]
> clickmaker © (17.11.06 12:05) [1]
А как насчет SubItems или если общая высота всех пунктов больше Screen.Height?
← →
clickmaker © (2006-11-17 12:32) [3]
> [2] Handle © (17.11.06 12:15)
а в чем проблема, собственно?
← →
Handle © (2006-11-17 12:39) [4]cl
> ickmaker © (17.11.06 12:32) [3]
Проблема собственно может показаться глупой, хочется показывать хинты используя TOOLTIPS_CLASS, сейчас делаюif odSelected in State then
ShowToolTipHint(Mouse.CursorPos);
но чего то мне это не очень нравиться, хочу позиционировать относительно ARect.
← →
clickmaker © (2006-11-17 12:42) [5]ну так, если пункт стал выделенным, значит, он уже на экране... Разве не получается взять его Rect, ClientToScreen его и показать хинт?
← →
Handle © (2006-11-17 13:27) [6]
> clickmaker © (17.11.06 12:42) [5]
Спасибо
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c