Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2004
Avatar de dmassive
dmassive dmassive is offline
Miembro
 
Registrado: mar 2004
Ubicación: Paraná - Argentina
Posts: 60
Poder: 21
dmassive Va por buen camino
Question "Acerca de" en el Menu SystemControl (SystemMenu) del Formulario

Como introduciria el clasico "Acerca de" en el menu SystemControl (SystemMenu)(Es el menu que tiene toda ventana (formulario) arriba a la izquierda que contiene, restaurar, mover, tamaño, minimizar, maximizar y cerrar). Gracias.

Última edición por dmassive fecha: 11-03-2004 a las 14:03:24.
Responder Con Cita
  #2  
Antiguo 11-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Dicho un poco de memoria necesitas usar la función GetSystemMenu para obtener el identificador del menú de sistema, InsertMenuItem para insertar el item deseado e implementar un manejador para el mensaje WM_COMMAND de manera que puedas detectar cuándo se selecciona el nuevo ítem y desplegar entonces tu cuadro de diálogo.

// Saludos
Responder Con Cita
  #3  
Antiguo 11-03-2004
Avatar de dmassive
dmassive dmassive is offline
Miembro
 
Registrado: mar 2004
Ubicación: Paraná - Argentina
Posts: 60
Poder: 21
dmassive Va por buen camino
Cool

Gracias!! Aqui dejo el codigo fuente por si alguien mas lo necesita:

Código:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  inherited;
  if Message.CmdType = $F200 then form2.ShowModal
end;

procedure TForm1.FormCreate(Sender: TObject);
var s: string;
begin
  AppendMenu (GetSystemMenu (Handle, FALSE), MF_SEPARATOR, 0, '');
  s := '&Acerca De...';
  AppendMenu(GetSystemMenu(Handle, False), MF_STRING, $F200, PChar(s));
end;
end.

Última edición por dmassive fecha: 11-03-2004 a las 14:01:27.
Responder Con Cita
  #4  
Antiguo 12-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dmassive
Gracias!!
Gracias a tí. Es muy grato ver que pudiste solucionar el problema y lo compartiste con todos los demás.

// Saludos
Responder Con Cita
  #5  
Antiguo 13-03-2007
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Red face

está muy bien... esta chido... y agregue al menú los items que quiero...

pero no me está manejando el evento cuando hago un click sobre los items... conste que lo hice al pie de la letra.

Código Delphi [-]
procedure TFrmLogon.WMSysCommand(var Message: TWMSysCommand);
begin
  inherited;
  if Message.CmdType = $F200 then
    MessageDlg('Acreca de...', mtInformation, [mbOK], 0);
end;

What's wrong????
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #6  
Antiguo 13-03-2007
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
bueno encontre la solución a mi problem...

agregue a mi formulario un TApplicationEvents y en el manejador OnMessage he agregado las porciones de código de las que nos hablaba nuestro amigo dmassive:

Código Delphi [-]
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
begin
  if (Msg.message = WM_SYSCOMMAND) then
    case Msg.wParam of
      $F200: MessageDlg('Acerca de...', mtInformation, [mbOK], 0);
    end;
end;

ahora si... a bailar en serio.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 14:22:59.


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