Ver Mensaje Individual
  #4  
Antiguo 07-07-2021
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Reputación: 17
juank1971 Va por buen camino
ya lo logre hacer , explico como


Tengo dos formas una TFMain y la segunda donde tengo el rectangulo como quiero mostrar los mensajes TMmensajes.



En la FormMain tengo un LayoutMain que ocupa toda la forma alClient y contiene todo los componentes de la forma , con el siguiente procedimiento llamo de forma modal a la segunda forma. con un create en TMmensajes un poco diferente .


Código Delphi [-]
procedure TFMain.SpeedButton8Click(Sender: TObject);
var
  dlg: TMmensajes;
begin
   dlg := TMmensajes.Create(LayoutMain, nil,'ERROR', 'El Identificador de documento no es correcto','SI','ACEPTAR',false);
   dlg.ShowModal(procedure(ModalResult: TModalResult)
    begin
      case ModalResult of
        mrOk: ShowMessage('mrOK');
        mrCancel: ShowMessage('MrCancel');
      end;
    end);
end;


Ahora en TMmensajes (segunda forma) puse un Timage alClient ocupando toda la forma y arriba de este puse un Rectangle que ocupa todo ese Timage , negro con opacidad 0.5 .


y arriba de todo esta el rectangulo con los label y botones para los dialogos.


este es el create de esa segunda forma



Código Delphi [-]
constructor TMmensajes.Create( Layout1: TLayout;AOwner: TComponent;Titulo,Texto,TextoCancelar,TextoOk: string; Cancelar: boolean);
var b: TBitmap;
begin
  inherited create(AOwner);

   b := Layout1.MakeScreenshot;//aqui se crea una imagen de la forma que llama
   Image1.Bitmap.Assign((b));
   b.DisposeOf;

  lTitulo.text := Titulo;
  LbTexto.text:=Texto;
  rCancelar.Visible :=  Cancelar;
  lCancelar.text:= TextoCancelar;
  lAceptar.text:= TextoOk;
end;


En este create de la segunda forma le paso como parametro las caracteristicas del dialogo a mostrar y el Layout que contiene todo los componentes desde donde se realizo la llamada, entonces se hace una foto de ese Layout y se pone en el Timage de fondo , como arriba tiene un rectangulo negro opaco da el efecto oscuro y debajo realmente no esta la verdadera forma sino una imagen de ella.


No subo codigo porque jamas he podido subir codigo ni imagenes al foro, no se donde alojar codigo para comportirlo aqui y que perdure por los anos.


si alguien necesita mas aclaracion me lo comenta


saludos
Responder Con Cita