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 03-05-2006
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Poder: 20
Choclito Va por buen camino
Exclamation iconos del mesagebox

hola amigos del foro, contarles q estoy haciendo un sistema en el cual gracias a la web y al foro hice mi propio mesagebox y todo iva bien hasta q no me di cuentas q los iconos q se muestran son muy pequeños y me exigen q se vea mas grandes pero la verdad nose como hacerlo ahi les muestro la unit es la siguiente:
Código Delphi [-]
unit UnitShowMessage;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, LMDControl, LMDBaseControl, LMDBaseGraphicButton,
  LMDCustomSpeedButton, LMDSpeedButton, Buttons, ExtCtrls,
  LMDCustomButton, LMDButton, ImgList;

type
  TFrmMessageBox = class(TForm)
    LTitulo: TLabel;
    LMensaje: TLabel;
    BAceptar: TLMDButton;
    BCancelar: TLMDButton;
    PBMovible: TPaintBox;
    BReintentar: TLMDButton;
    PBIcono: TPaintBox;
    ILIcono: TImageList;
    ImageList1: TImageList;
    procedure FormShow(Sender: TObject);
    procedure PBMovibleMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PBMovibleMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PBMovibleMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PBIconoPaint(Sender: TObject);


  private
    { Private declarations }
    RatonPulsado: Boolean;
    Punto: TPoint;

  public
    { Public declarations }
  end;
  function Maximo (a,b:integer):integer;
      FUNCTION MsgBox (Titulo, Mensaje: String; Flags: DWord):integer;
var
  FrmMessageBox: TFrmMessageBox;
  IndiceImagen:integer;
implementation

{$R *.dfm}


procedure TFrmMessageBox.FormShow(Sender: TObject);
begin
RatonPulsado := False;
end;

procedure TFrmMessageBox.PBMovibleMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 IF Button = mbLeft THEN
  BEGIN
    RatonPulsado := True;
    Punto.x := x;
    Punto.y := y;
  END;
end;
function Maximo(a,b:integer):integer;
begin
if a>b then
Maximo:=a
else
Maximo:=b;

end;

FUNCTION MsgBox (Titulo, Mensaje: String; Flags: DWord): Integer;
CONST
  PosLeft = 112;
  PosWidth = 320;
  LeftBotones = 25;
  SepBotones = 7;
VAR
  Botones, Icono: Word;
  AlineacionDerecha: Boolean;
  ResModal: TModalResult;
  IdBotonPulsado: Integer;

BEGIN
  { Comenzamos separando de la variable Flags los botones, el icono
    así como si el texto del mensaje está alineado o no a la derecha }

  Botones := Flags AND $F;
  Icono := Flags AND $F0;
  AlineacionDerecha := (Flags AND $F0000) = $80000;
 IndiceImagen := 0;  { Un valor inicial no perjudicial }

  WITH FrmMessageBox DO
  BEGIN
    Caption := Titulo;
    LTitulo.AutoSize := False;
    LMensaje.AutoSize := False;
    LTitulo.Caption := Titulo;
    LTitulo.Left := LeftBotones;
    LTitulo.Width := 2 *(PosWidth DIV 3);
    LTitulo.AutoSize := True;
    LMensaje.Caption := Mensaje;
    LMensaje.Left := PosLeft;
    LMensaje.Width := PosWidth;
    LMensaje.Alignment := taLeftJustify;
    LMensaje.AutoSize := True;
    LMensaje.Top := LTitulo.Top + LTitulo.Height + 15;
    BAceptar.Top := LMensaje.Top + Maximo(LMensaje.Height, PBIcono.Height);
    BCancelar.Top := BAceptar.Top;
    BReintentar.Top := BAceptar.Top;
    ClientHeight := BAceptar.Top + BAceptar.Height + 20;

    { Ahora pasamos a arreglar los botones en función del que nos han pedido }

    CASE Botones OF
      MB_OK:  { Sólo debe estar visible el de 'Aceptar' y centrado }
      BEGIN
        BAceptar.Visible := True;
        BCancelar.Visible := False;
       BReintentar.Visible := False;

        //BAceptar.Kind := bkOK;
        BAceptar.Caption := 'ACEPTAR';

        BAceptar.Left := Width DIV 2 - BAceptar.Width DIV 3;
        BAceptar.Width:=90;
      END;

      MB_OKCANCEL:  { Visibles 'Aceptar' y 'Cancelar', centrados }
      BEGIN
        BAceptar.Visible := True;
        BCancelar.Visible := True;
       BReintentar.Visible := False;

      //  BAceptar.Kind := bkOK;
        BAceptar.Caption := ' Aceptar';
       // BCancelar.Kind := bkCancel;
        BCancelar.Caption := ' Cancelar';

        BAceptar.Left := Width DIV 3 - BAceptar.Width DIV 3;
        BCancelar.Left := BAceptar.Left + BAceptar.Width + SepBotones;
      END;

      MB_RETRYCANCEL:  { Visibles 'Reintentar' y 'Cancelar', centrados }
      BEGIN
        BAceptar.Visible := False;
        BCancelar.Visible := True;
       BReintentar.Visible := True;

        //BCancelar.Kind := bkCancel;
        BCancelar.Caption := ' Cancelar';
       // BReintentar.Kind := bkRetry;
        BReintentar.Caption := ' Reintentar';

        BReintentar.Left := Width DIV 3 - BReintentar.Width DIV 3;
        BCancelar.Left := BReintentar.Left + BReintentar.Width + SepBotones;
      END;

      MB_YESNO:  { De nuevo visibles 'Aceptar' y 'Cancelar', centrados }
      BEGIN
        BAceptar.Visible := True;
        BCancelar.Visible := True;
       BReintentar.Visible := False;

       // BAceptar.Kind := bkYes;
        BAceptar.Caption := ' SI';
       // BCancelar.Kind := bkNo;
        BCancelar.Caption := ' NO';

        BAceptar.Left := 112;
        BAceptar.Width:=49;
        BCancelar.Left := 232;
      END;

      MB_YESNOCANCEL:  { Todos los botones deben ser visibles }
      BEGIN
        BAceptar.Visible := True;
        BCancelar.Visible := True;
       BReintentar.Visible := True;

       // BAceptar.Kind := bkYes;
        BAceptar.Caption := ' Sí';
      //  BCancelar.Kind := bkNo;
        BCancelar.Caption := ' No';
      //  BReintentar.Kind := bkCancel;
       BReintentar.Caption := ' Cancelar';

        BAceptar.Left := LeftBotones;
        BCancelar.Left := BAceptar.Left + BAceptar.Width + SepBotones;
        BReintentar.Left := BCancelar.Left + BCancelar.Width + SepBotones;
      END;

    END;

    { Ahora vamos a averiguar qué icono nos han pedido para dibujarlo }

   CASE Icono OF
      MB_ICONINFORMATION: { MB_ICONASTERISK }
        IndiceImagen := 1;

      MB_ICONERROR:       { MB_ICONHAND, MB_ICONSTOP}
        IndiceImagen := 2;

      MB_ICONEXCLAMATION:{MB_ICONWARNING}
        IndiceImagen := 3;

      MB_ICONQUESTION:
       IndiceImagen := 4;
    END;

    IF AlineacionDerecha THEN LMensaje.Alignment := taRightJustify;
  END;

  //MessageBeep(Icono);
  { Esto es un extra ;-) Llama a una función del
                         API que emite un sonido estándar de Windows,
                         con lo que lo hacemos más parecido al MessageBox
                         de verdad :-) }

  ResModal := FrmMessageBox.ShowModal;
  IdBotonPulsado := 0;

  { Por último, convertimos los valores de ModalResult a las constantes
    definidas por Windows como respuesta de MessageBox }

  CASE ResModal OF
    mrOk:     IdBotonPulsado := IDOK;
    mrCancel: IdBotonPulsado := IDCANCEL;
    mrAbort:  IdBotonPulsado := IDABORT;
    mrRetry:  IdBotonPulsado := IDRETRY;
    mrIgnore: IdBotonPulsado := IDIGNORE;
    mrYes:    IdBotonPulsado := IDYES;
    mrNo :    IdBotonPulsado := IDNO;
  END;

  MsgBox := IdBotonPulsado;
END;
procedure TFrmMessageBox.PBMovibleMouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
 IF RatonPulsado THEN
    SetBounds(x - Punto.x + Left, y - Punto.y + Top, Width, Height);
end;

procedure TFrmMessageBox.PBMovibleMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 IF Button = mbLeft THEN RatonPulsado := False;
end;

procedure TFrmMessageBox.PBIconoPaint(Sender: TObject);
begin
  ILIcono.Draw(PBIcono.Canvas, 0, 0, IndiceImagen);

end;

end.
y desde otras unidades lo llamo por ejemplo de la siguiente manera:
IF MsgBox ('SISTEMA DE ASISTENCIA MEDICA','¿QUIERE SALIR DEL SISTEMA ?',
MB_YESNO + MB_ICONQUESTION)=IDYES THEN

application.Terminate;

muchas gracias por sugerencias y la ayuda q me brinden
Responder Con Cita
  #2  
Antiguo 03-05-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En un ImageList, que creo que es lo que usas para almacenar las imágenes, puedes definir los iconos del tamaño que necesites. Borra las imágenes que tienes y añade imágenes/iconos más grandes.
__________________
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.
Responder Con Cita
  #3  
Antiguo 03-05-2006
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Poder: 20
Choclito Va por buen camino
Exclamation gracias por la respuesta

muchas gracias por la respuesta neftali comentarte q cambien el tamaño de iconos y bmps hata 48x48 pero me sigue saliendo la imagen pequeña, al parecer el problema es en el componente tpaintbox pero la verdad nose q mas hacer ,,,
Donde puedo estar errando?, comentarte q la unidad la baje de internet pero no me di cuenta sobre las imagenes hasta q me pidieron q sean mas grandes
Como siempre te estare muy agradecido por la ayuda
Tambien comentarte q cuando añado en el imagelist los .ico o .bmp dentro de las opciones se habilita la opcion strech pero cuando pulso ok y aply y vuelvo a abrir el imagelist todas las imagenes estan en la opcion crop
Sera por eso q muestra las imagenes pequeñas?
por mas q cambie el tamaño de las mismas
Nuevamente muchas gracias por ver este hilo
Responder Con Cita
  #4  
Antiguo 04-05-2006
Sinaloense Sinaloense is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
Sinaloense Va por buen camino
Si quieres mandame el fuente a mi correo y yo te puedo ayudar.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Iconos .bmp CarmaZone Varios 2 11-03-2005 00:46:41
Iconos xp ronimaxh Varios 1 11-11-2004 23:18:04
Iconos Sirkius Varios 8 11-06-2004 20:34:31
iconos aladelta Gráficos 1 09-09-2003 15:27:03
Iconos??? AbcXxx Varios 0 18-06-2003 17:49:19


La franja horaria es GMT +2. Ahora son las 15:12:17.


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