Código Delphi
[-]
unit Unit2;
interface
uses Classes, Controls, StdCtrls,forms,graphics;
type
TMensaje = (minfo, mwarning, mcritical);
TForm2 = class(TForm)
Label1: TLabel;
private
procedure FormClose(Sender: TObject; var Action: TCloseAction);
public
constructor Create(TipoMensaje:TMensaje; Mensaje:string);
procedure CambiaMensaje(TipoMensaje:TMensaje; Mensaje:string);
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.CambiaMensaje(TipoMensaje: TMensaje; Mensaje: string);
begin
case TipoMensaje of
minfo: Color := clWhite;
mwarning: Color := clFuchsia;
else
Color := clred;
end;
Show;
end;
constructor TForm2.Create(TipoMensaje: TMensaje; Mensaje: string);
begin
inherited Create(nil);
CambiaMensaje(TipoMensaje,Mensaje);
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
Form2:= nil;
end;
end.
Esto solo cambia el color de fondo y pone el mensaje que quieras en un label. Para poner una imagen, pues más de lo mismo, poner un Timage, un ImageList con las imagenes que quieras para cada tipo de mensaje, y despues ponerlo en el Timage.
La forma de llamarlo sería:
Código Delphi
[-]
var Form2 :Tform2;
begin
form2 := Tform2.Create(mwarning, 'Quillo esto es una advertencia');
sleep(5000); form2.Close;
end;
Si la ventana ya la estas mostrando y quieres cambiar sobre la marcha el mensaje. usa CambiaMensaje para ello.
A esta ventana yo le pondría la propiedad FormStyle a fsStayOnTop para que ninguna otra ventana la oculte.
Un saludo