Club Delphi  
    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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
Imagen o texto sobre el menu / menu con align / menu movible

Hola a todos en el foro:

Estoy haciendo una aplicacion en Delphi 7 en que es necesario mostrar el logo y nombre de la empresa en la parte superior del Form principal en un espacio de 4 cm como minimo.(asi reza el contrato).

Mi problema es que aun no logro colocar una imagen o texto sobre el menu principal.

de la siguiente forma

__________________________________________
|_______________________________________X|
| |
| <Imagen > Nombre de la aplicacion |
|________________________________________|
|Archivo|Edicion|Ayuda |
| |
| |
| |
| |
| |
| |
| |
| |
|________________________________________|



Estuve viendo algunos hilos pero no encontre nada similar
Por favor ayudenme.

- claro que busqué menus principales que se puedan mover y no encontre nada.
- tb busqué menus con align para alienarlo top y que otro componente con align top se pusiese enciama pero nada.

Como curiosidad: se fijaron que cuando ponen un componente menu, en sus propiedades del menu no existe la propiedad top
pero cuando entran a las propiedades basicas del fichero DFM (o cuando ven el formulario como texto y no de manera visual). SI existe la propiedad top del menu, pero si se cambia el valor no afecta en nada al componente menu.

o estoy del todo equivocado...?

Ayuda porfa.

atte. Dajaji
Responder Con Cita
  #2  
Antiguo 06-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Mira este hilo
Responder Con Cita
  #3  
Antiguo 06-09-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
? :( ?

Antes gracias por la respuesta.

pero ya vi antes el hilo que pones.

habla del toolbar97 ya me lo baje y tb el toolbar2000 pero no logro hacer lo que quiero, (o es que no le doy al punto es que a veces no veo lo mas obvio).

Ademas que en la ultima seccion del hilo no daban la respuesta a la ultima pregunta de Greco

Grapcias
Responder Con Cita
  #4  
Antiguo 07-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
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 01:35:30.
Responder Con Cita
  #5  
Antiguo 07-09-2007
scriptors scriptors is offline
Registrado
 
Registrado: sep 2007
Posts: 5
Poder: 0
scriptors Va por buen camino
How i can call
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
from one Frame

Because I "unHidden" one MenuItem form one hidden form ... after this ... all menuitem are on the LEFT

i try TForm1.FormCreate.Execute ... but of course not work
Responder Con Cita
  #6  
Antiguo 08-09-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
Eso esta genial pero ....

Primero gracias por la respuesta.
Genial el codigo, lo hice y funciono a la perfeccion. Pero no es a lo que me referia, lo que busco es que la imagen este en un espacio entre la barra de titulo y la barra de menu(no a un lado del menú), como en la siguiente imagen:

http://www.imaxenes.com/imagenes/menuespl1kh03fl.jpg

Ojo que el formulario de la imagen lo hice copiado de otra imagenes. (obvio no? si no, no estaria haciendo esta preg. jeje )

Bueno pero en fin por si el link no funca :
----------------------------------
titulo
----------------------------------
imagen
----------------------------------
Menu
----------------------------------
.
.
.
.
-----------------------------------


Gracias de antemano.
Responder Con Cita
  #7  
Antiguo 08-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
El link que pusiste está mal, no se permiten imágenes de ese tamaño. Prueba subiéndola a www.imageshack.com o www.upload27.com
y colócanos el link, claro
Responder Con Cita
  #8  
Antiguo 08-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Bueno, tampoco está mal darse un poco de idea.
Para lo que quieres debes hacer esto:
1) Pones un MenuItem en blanco a la izquierda de tu menú, o sea, en primer lugar, antes del "Archivo", por ejemplo, llamado MiMenuItem, y en su propiedad Bitmap asignas tu mapa de bits.
2) Al MenuItem "Archivo" le pones la propiedad Break=mbBarBreak
3) Pones el MainMenú con la propiedad OwnerDraw=true
4) Pones este código en el evento OnAdvancedDrawItem del MiMenuItem.
Código Delphi [-]
procedure TForm1.MiMenuItemAdvancedDrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; State: TOwnerDrawState);
begin
  ACanvas.StretchDraw(Rect(ARect.Left,ARect.top,ClientWidth,ARect.Bottom),MiMenuItem.Bitmap);
end;
5) Listo!!!!
Espero sea eso lo que querías, ya que no pude ver tu imágen.

Última edición por paldave fecha: 08-09-2007 a las 18:36:33.
Responder Con Cita
  #9  
Antiguo 11-09-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
Precisamente

Gracias, justamente a eso es que me refiero:

estes el link (bajo sujerencia), que espero funcione:

http://www1.upload27.com/viewimage.p...50-menuesp.JPG

gracias paldave, solo falta un pequeño detalle a la aplicacion.

ya que todo se hizo con un solo MainMenu, como puedo hacer que solo el primer "MiMenuItem" sea de un Alto como de 2 cm y el resto del menu conserve su Alto de 1cm.

Gracias.



PD.- ¿De donde sacais tanta sabiduria. ???

Me respondo a mi mismo: Obvio del esfuerzo, constancia, experiencia y pasion por la programación.

Última edición por dajaji fecha: 12-09-2007 a las 16:02:56. Razón: Aclaración
Responder Con Cita
  #10  
Antiguo 12-09-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
Encontre algo pero....

Buscando buscando en torry encontre el componente
Pie-Menu, y en la pagina del autor

http://www.pie-tools.de/

encontre el grupo completo de componentes muy variados por cierto
hay que leer las instrucciones de instalacion para instalarlo

Su componente TPieMainMenu tiene la opcion de cambiar el alto de los menus, pero lamentablemente, si cambia el alto del menu en la aplicación, tambien cambia el alto de todos los menues de Windows.

Alguien sabe como cambiar el alto del menu solo en la alicacion sin afectar a todo windows.

PD.- claro que haceptaria otras alterenativas para el problema que origino este hilo.

Gracias.
Responder Con Cita
  #11  
Antiguo 13-09-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
a ver que les parece mi solucion improvisada

Mi objetivo es poner una imagen por encima del menú principal de la aplicacion.

Uso dos Form

Form1
con un label y una imagen cualquiera ubicada en la parte superior del form

y un Form2
con su propiedad

BorderStyle:=bsNone;

Ademas en este Form2 pongo un MainMenu con los items que se quiera.

En el Form1 que sera el principal (o el primero que se construya)

en su evento OnActivate:
Código Delphi [-]
form2.top:=top+80;
form2.left:=left+4;
form2.Width:=width-8;
form2.Height:=Height-80-4;
form2.showmodal;
application.Terminate;

y es todo.

Claro que tiene muchos inconvenientes como que no puedo mover la aplcacion, no puedo cerrar la aplicacion si no es por un boton o ALTT+F4
y me imagino que tambien tiene otros incovenientes

Que les parece la ilusion????



Bueno Espero alguien me ayude sin tanto artificio a poner una simple imagen por
Responder Con Cita
  #12  
Antiguo 13-09-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
me olvide subir el codigo jeje
porsiacaso aunque es simple lo hice en delphi7
Archivos Adjuntos
Tipo de Archivo: zip menuAbajo.zip (7,6 KB, 21 visitas)
Responder Con Cita
  #13  
Antiguo 21-09-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
la enterior solucion trae muchos problemas,

Alguien tiene otra solucion?
Responder Con Cita
Respuesta


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 02:10:09
Cambiar Letra en el Menu y conservar la Imagen ing_alsaac OOP 3 23-07-2008 07:11:37
Menu popup johurgi Varios 1 27-07-2007 14:55:49
XP Menu silviodp OOP 1 08-10-2004 16:41:44
Menu rezahe Varios 6 18-06-2003 18:14:56


La franja horaria es GMT +2. Ahora son las 02:43:58.


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