Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вертикальный текст в popup меню. [D7, WinXP]


Thomas Brandon ©   (2004-08-29 17:49:00) 

Интересно, как делается сабж?


Thomas Brandon   (2004-08-30 12:08:00) [1]

Спасибо огромное, Endi :-)
Пойду пробовать...


Endi   (2004-08-29 19:49:00) [2]

PopupMenu1.OwnerDraw:=true;

procedure TForm1.Menu1DrawItem(Sender: TObject; ACanvas: TCanvas;
 ARect: TRect; Selected: Boolean);
var
  LF:TLogFont;
  F:TFont;

begin
  with ACanvas do begin
    Font.Name:='Arial';
    Font.Size:=25;
    F:=TFont.Create;
    try
      F.Assign(Font);
      GetObject(F.Handle,sizeof(LF),@LF);
      LF.lfEscapement:=900;
      LF.lfOrientation:=900;
      F.Handle:=CreateFontIndirect(LF);
      Font.Assign(F);
    finally
      F.Free;
    end;
    TextOut(5,TextWidth('Щелкнуть здесь!'),'Щелкнуть здесь!');
  end;
end;

procedure TForm1.Menu1MeasureItem(Sender: TObject; ACanvas: TCanvas;
 var Width, Height: Integer);
begin
 with ACanvas do begin
   Font.Name:='Arial';
   Font.Size:=25;
   Height:=ACanvas.TextWidth('Щелкнуть здесь!')+5;
   width:=ACanvas.TextHeight('Щелкнуть здесь!');
 end;
end;

Что-то типа этого.


Thomas Brandon   (2004-08-29 18:17:00) [3]

Неужели никто не делал этого? Понимаю, что саюж предназначен для "красивости", но уж очень хочется :-)


Новичек   (2004-08-29 18:10:00) [4]

Хм... Действительно, интересно... Думаю, что без помощи WinAPI здесь не обойтись.


Наверх

Титульная страница Поиск, карта сайта Написать письмо