Главная страница
    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.013 c
4-1156701339
AlexKRAM
2006-08-27 21:55
2007.01.07
Программно добавить пользователя Windows


15-1166431387
Чапаев
2006-12-18 11:43
2007.01.07
Про IE


6-1154691688
digger
2006-08-04 15:41
2007.01.07
TIdSimpleServer грузит процессор


15-1166395163
Nic (from home)
2006-12-18 01:39
2007.01.07
Ряды и дифференциальные уравнения


15-1166543799
oldman
2006-12-19 18:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский