Fórum Mensagens Personalizadas #293810
31/08/2005
0
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
Curtir tópico
+ 0Posts
31/08/2005
Motta
Se não crie os controles em tempo de execução, aqui no forum tem varios exemplos de como fazer isto.
Gostei + 0
31/08/2005
Userba
*** 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.
Gostei + 0
31/08/2005
Martins
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)