Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 07-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 19
paldave Va por buen camino
Bueno, como veo que seguimos insistiendo en varios hilos con la colocación de imágenes en el menú trataré de explicarles como lo hago:

1) Si lo que quieren es insertar una imagen a la izquierda (o si quieren en el medio del menú), la cosa es simple: solo tienen que crear con el editor de menú un MenuItem con Caption='' (sin caption) y con Name='MiMenuItem' por ejemplo, en el lugar que quieran poner la imagen, y luego le asignan a su propiedad Bitmap el bitmap que deseen, o en su propiedad ImageIndex el índice de la imagen que quieran mostrar (que debe estar en el ImageList asociado, claro). Esto les mostrará su imagen en el espacio del MenuItem alineada a la izquierda.
Si quieren hacerlo un poquito más "vistoso" pueden hacer que la imagen ocupe todo el MenuItem. Para ello ponen la propiedad OwnerDraw de MainMenu a True y luego en el evento DrawItem del MenuItem dibujan la imagen utilizando el canvas que les proporciona la función, algo así:
Código Delphi [-]
procedure TForm1.MiMenuItemDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
  Selected: Boolean);
  var b:TBitmap;
begin
  b:=TBitmap.Create;
  b.LoadFromFile('d:\Seguridad\Imágenes\Chaplin.bmp');
  ACanvas.StretchDraw(ARect,b);
  b.free;
end;
claro que el bitmap pueden declararlo como público y cargarlo una sola vez cuando se cree el formulario .

2) Si quieren que la imágen se alinee a la derecha del menú, pues hacen lo mismo poniendo el MenuItem como el último item a la derecha y luego en el procedimiento Create del Form ponen este código:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
   mii: TMenuItemInfo;
   MainMenu: hMenu;
   Buffer: array[0..79] of Char;
begin
   MainMenu := Self.Menu.Handle;
   mii.cbSize := SizeOf(mii) ;
   mii.fMask := MIIM_TYPE;
   mii.dwTypeData := Buffer;
   mii.cch := SizeOf(Buffer) ;
   GetMenuItemInfo(MainMenu, MiMenuItem.Command, false, mii) ;
   mii.fType := mii.fType or MFT_RIGHTJUSTIFY;
   SetMenuItemInfo(MainMenu, MiMenuItem.Command, false, mii) ;
end;
y listo! queda alineado a la derecha del menú.

Si quieren cambiar el ancho del MenuItem pueden utilizar el evento OnMeasureItem:
Código Delphi [-]
procedure TForm1.MiMenuItemMeasureItem(Sender: TObject; ACanvas: TCanvas; var Width,
  Height: Integer);
begin
  Width:=40;
end;

Prueban y me cuentan que resultado les dió. Saludos a todos.

Última edición por paldave fecha: 07-09-2007 a las 00:35:30.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como incluir una imagen en la barra del menu?? Greco Varios 10 31-08-2011 01:10:09
Cambiar Letra en el Menu y conservar la Imagen ing_alsaac OOP 3 23-07-2008 06:11:37
Menu popup johurgi Varios 1 27-07-2007 13:55:49
XP Menu silviodp OOP 1 08-10-2004 15:41:44
Menu rezahe Varios 6 18-06-2003 17:14:56


La franja horaria es GMT +2. Ahora son las 03:37:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi