PDA

Ver la Versión Completa : Componente para informar


Neg90
22-06-2014, 09:41:28
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 (http://www.torry.net/pages.php?id=85) 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,


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


Revisa este código:

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:

...
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,


...Otra opción... la función API indocumentada MessageBoxTimeout...

^\||/

Revisa esta información:

1- Undocumented MessageBoxTimeOut function (http://edn.embarcadero.com/article/32736)

2- Timeout MessageBox (http://delphi.about.com/od/adptips2004/a/bltip1004_5.htm)
Espero sea útil :)

Nelson.