Fórum Mensagens Personalizadas #293810

31/08/2005

0

Olá

Tava querendo criar um form que funcionasse/substituisse o
ShowMessage, MessageBox e similares...
Só que... Personalizado.

Tipo assim:

No form eu teria:

1 panel1 superior com 1 image1 e um label1
1 panel2 central com 1 label2
1 panel3 inferior com (3 buttons -> btn1, btn2, btn3)

Dai que eu queria chamar esse form passando os parametros:

cor do panel1 superior (ex: clred)
figura que seria exIbida no image1 (ex: bmp-1, bmp-2, bmp-3, etc)
texto para o label1 (ex: ATENÇÃO)

A mensagem propriamente dita iria para o label2
(ex: ´Tal campo não está preenchido´)

E os captions para os botões,
sendo que ´captions em branco´´,
determinariam que os botões não seriam visíveis.

A chamada seria mais ou menos assim:

mostra_mensagem(clred, ´ATENÇÃO´, ´bmp-1´, ´Tal campo não está preenchido´, ´Continua´, ´´, ´Corrige´);

no caso acima o botão do meio não ficaria visível.

e de quebra que me retornasse qual botão foi clicado.
se 1 para btn1, se 2 para btn2 ou 3 para btn3.

Sheeeeeeeeeee....
Não tenho ideia de como fazer algo assim.

Podem me dar uma boa dica?
Talvez um exemplo (um source) similar para que eu analise e adapte a minha necessidade.

valeu gente.
User-BA


Userba

Userba

Responder

Posts

31/08/2005

Motta

Se o form tem um padrão fixo , crie em tempo de desenho e o chame.

Se não crie os controles em tempo de execução, aqui no forum tem varios exemplos de como fazer isto.


Responder

Gostei + 0

31/08/2005

Userba

Se o form tem um padrão fixo , crie em tempo de desenho e o chame..


*** eu desenhei o form com os panels, images, labels, 3 buttons.
*** O que tá pegando é como chamar este form como se fosse uma função.
*** ou seja, já chamar ex: frm_mensagem.showmodal;
*** passando os parametros para os labels, buttons, etc,
*** e ao fechar que me retorne qual dos 3 botões foram fechados.

agradeço se me der uma força.


Responder

Gostei + 0

31/08/2005

Martins

Olá amigo!!

tenta assim e depois poste aqui se funcionou ou se apresentou algum erro!
   procedure Cria_msg(cor: TColor; tit:String; img: integer; msg: String; btn1, btn2, btn3: String);

var
  Form1: TForm1;

implementation
uses Unit2;
{$R *.dfm}

procedure Cria_msg(cor: TColor; tit:String; img: integer; msg: String; btn1, btn2, btn3: String);
begin
   with Form2 do
     try
       Form2.Panel1.Color := Cor;
       Form2.Label1.Caption := tit;
       Form2.ImageList1.Draw(Image1.Canvas, 0, 0, img);
       Form2.Label2.Caption := msg;
       if btn1 = ´´ then
         Form2.BitBtn1.Enabled := false
       else
         Form2.BitBtn1.Caption := btn1;
       if btn2 = ´´ then
         Form2.BitBtn2.Enabled := false
       else
         Form2.BitBtn2.Caption := btn2;
       if btn3 = ´´ then
         Form2.BitBtn3.Enabled := false
       else
         Form2.BitBtn3.Caption := btn3;
       ShowModal;
     finally

    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     Cria_msg(ClRed, ´Teste´, 0, ´Testando essa merda!!!´, ´&Ok´, ´´, ´´);
end;


Não é uma prática que adotária pois estarei recriando algo q o Delphi pode fazer pra mim, mas como vc quer personalizar tudo bem, só acho q se vc não instanciar adequadamente, vc pode ter dor de cabeça depois!!!!


Espero q possa lhe ajudar!!!

Martins


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar