Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Componente para informar (https://www.clubdelphi.com/foros/showthread.php?t=86143)

Neg90 22-06-2014 09:41:28

Componente para informar
 
Una pregunta, hay alguna componente dentro de delphi, que sirva para mostrar un mensaje durante unos segundo, como para informar que una operación fue exitosa, la idea es que se muestre pero no moleste si la persona quiere seguir cargando informacion

newtron 22-06-2014 10:24:21

Yo no lo conozco pero no creo que sea complicado hacer algo como lo que pides.

Neg90 22-06-2014 10:31:49

Nono no es complicado, pero si hay alguno ya hecho conviene mas

Neftali [Germán.Estévez] 25-06-2014 11:06:54

En Torry puedes encontrar muchos si no puedes generar uno.
En algún caso he utilizado los TKmAlert y otro que no recuerdo que imitaba las ventanas de "MS Outlook" cuando tienes un nuevo mensaje. Si lo buscas, en torry lo encontrarás...

Neg90 26-06-2014 00:11:24

Hice uno así nomas, voy a fijarme a ver que encuentro, muchas gracias!

nlsgarcia 28-06-2014 05:47:59

Neg90,

Cita:

Empezado por Neg90
...hay algún componente dentro de Delphi, que sirva para mostrar un mensaje durante unos segundos...

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure DialogTimer(Sender: TObject);
    function  MsgDialog(const DlgCaption, DlgMsg: String;
                        DlgType: TMsgDlgType;
                        DlgButtons: TMsgDlgButtons;
                        DlgInterval : Integer ) : Boolean;

    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.DialogTimer(Sender: TObject);
begin

   if NOT (Sender is TTimer) then Exit;

   if (Sender as TTimer).Owner is TForm then
   with (Sender as TTimer).Owner as TForm do
   begin
      ModalResult := mrCancel
   end;

end;

function TForm1.MsgDialog(const DlgCaption, DlgMsg: String;
                          DlgType: TMsgDlgType;
                          DlgButtons: TMsgDlgButtons;
                          DlgInterval : Integer ) : Boolean;
var
   AMsgDialog : TForm;
   ATimer : TTimer;

begin

   try

      AMsgDialog := CreateMessageDialog(DlgMsg, DlgType, DlgButtons);
      ATimer := TTimer.Create(AMsgDialog);

      with AMsgDialog do
      try

         Caption := DlgCaption;
         Height := 100;

         with ATimer do
         begin
            Interval := DlgInterval;
            OnTimer := DialogTimer;
         end;

         Beep;
         ShowModal;

         Result := True;

      finally

         ATimer.OnTimer := nil;
         Free;

      end;

   except

      Result := False;

   end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
   Caption, Msg : String;
begin
   Caption := 'Información de Progreso';
   Msg := 'La Operación Fue Completada de Forma Satisfactoria';
   MsgDialog(Caption,Msg,mtInformation,[],2000); // El Msg se visualiza por 2 segundos.
end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, permite configurar los parámetros de visualización de un mensaje incluyendo su tiempo de exposición.

Nota: En lo personal pienso que este tipo de mensajes no es conveniente para los usuarios dado que tienden a ignorarlos o simplemente no los ven.

Espero sea útil :)

Nelson.

Neg90 28-06-2014 22:56:39

Te agradezco lo voy a revisar a ver como queda!
Si entiendo lo que me decís de los mensajes el tema es que tiene que ser algo que no moleste , es para dar de alta libros, son varios campos a completar, y son muchos libros, no puedo estar pidiendo que el tipo apreté ok o enter a cada libro, es medio molesto, pero le tengo que avisar que se agrego bien el libro.Te agradezco.

ecfisa 29-06-2014 00:55:11

Hola Neg90.

Otra opción que te puede servir es usar la función API indocumentada MessageBoxTimeout:
Código Delphi [-]
...  
    MessageBoxTimeout(Application.Handle,                   // HWND
                    'El libro fue agregado correctamente',  // text
                    'AVISO',                                // caption
                    MB_ICONINFORMATION + MB_SETFOREGROUND,  // icono
                    0,                                      // LangId (0)
                    700);                                   // milisegundos (a gusto)

Saludos :)

nlsgarcia 29-06-2014 01:32:28

Neg90,

Cita:

Empezado por ecfisa
...Otra opción... la función API indocumentada MessageBoxTimeout...

^\||/

Revisa esta información:
Espero sea útil :)

Nelson.


La franja horaria es GMT +2. Ahora son las 21:13:02.

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