Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
15-1164874807
TohaNik
2006-11-30 11:20
2007.01.07
Вот, влетел на задачке для 5-го класса.


15-1166105883
ArtemESC
2006-12-14 17:18
2007.01.07
"Остров"


15-1166125050
xBaguMx
2006-12-14 22:37
2007.01.07
Требуется написать программу для фирмы


2-1163146202
inkvizitor
2006-11-10 11:10
2007.01.07
Массив из Мемо


2-1166300436
Defort
2006-12-16 23:20
2007.01.07
Последняя надежда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский