![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
PopupMenu con imagen
Hola a todos. estoi intentando colocar en un popupmenu una imagen en el laterar. no una por boton sino una que recorra todo el popup y no tengo ni la menor idea de como hacerlo. agradeceria buestra ayuda
gracias |
|
#2
|
||||
|
||||
|
La tarea no en simple, ya que deberás redibujar todo el menú.
Revisa ésta dirección: http://www.bluecave.net/ A ver si es ésto lo que necesitas: http://www.bluecave.net/products/bar.../BarMenus1.gif http://www.bluecave.net/products/bar.../BarMenus2.gif http://www.bluecave.net/products/bar.../BarMenus3.gif http://www.bluecave.net/products/bar.../BarMenus5.gif
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#3
|
|||
|
|||
|
Gracias Neftali. Lo que tu me has mandado lo estoy mirando.
He estado mirando en los ejemplos que vienen con los RXLib y he conseguido poner un texto de la siguiente manera Código:
function CreateRotatedFont(Font: TFont; Angle: Integer): HFont;
var
LogFont: TLogFont;
begin
FillChar(LogFont, SizeOf(LogFont), 0);
with LogFont do begin
lfHeight := Font.Height;
lfWidth := 0;
lfEscapement := Angle * 10;
lfOrientation := 0;
if fsBold in Font.Style then lfWeight := FW_BOLD
else lfWeight := FW_NORMAL;
lfItalic := Ord(fsItalic in Font.Style);
lfUnderline := Ord(fsUnderline in Font.Style);
lfStrikeOut := Byte(fsStrikeOut in Font.Style);
{$IFDEF RX_D3}
lfCharSet := Byte(Font.Charset);
if AnsiCompareText(Font.Name, 'Default') = 0 then
StrPCopy(lfFaceName, DefFontData.Name)
else
StrPCopy(lfFaceName, Font.Name);
{$ELSE}
{$IFDEF VER93}
lfCharSet := Byte(Font.Charset);
{$ELSE}
lfCharSet := DEFAULT_CHARSET;
{$ENDIF}
StrPCopy(lfFaceName, Font.Name);
{$ENDIF}
lfQuality := DEFAULT_QUALITY;
lfOutPrecision := OUT_DEFAULT_PRECIS;
lfClipPrecision := CLIP_DEFAULT_PRECIS;
case Font.Pitch of
fpVariable: lfPitchAndFamily := VARIABLE_PITCH;
fpFixed: lfPitchAndFamily := FIXED_PITCH;
else lfPitchAndFamily := DEFAULT_PITCH;
end;
end;
Result := CreateFontIndirect(LogFont);
end;
En el evento OnDrawMargin Se añade Código:
procedure TfrmAlarma.PopupMenuDrawMargin(Sender: TMenu; Rect: TRect); const Txt = 'Texto'; begin With PopUpMenu.Canvas.Font do begin Name := 'Courier New'; Style := [fsBold]; Size := 20; Color := clWhite; Handle := CreateRotatedFont(PopUpMenu.Canvas.Font, 90); end; PopUpMenu.DefaultDrawMargin(Rect, clLime, RGB(GetRValue(clLime) div 4, GetGValue(clLime) div 4, GetBValue(clLime) div 4)); SetBkMode(PopUpMenu.Canvas.Handle, TRANSPARENT); ExtTextOut(PopUpMenu.Canvas.Handle, Rect.Left, Rect.Bottom - 5, ETO_CLIPPED, @Rect, Txt, Length(Txt), nil); End; Y bueno después se pueden cambiar los colores, tamaños, etc, etc. Pero sigo dándole Vueltas a como poder insertar una imagen. Yo seguiré mirando pero si alguien me puede dar alguna pista os lo agradecería. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|