Array
(
)

Showmessage personalizado

Aprendiz_ce
   - 30 nov 2005

Colegas,

Como é que eu faço para criar um ´Showmessage´ personalizado? Tipo: com o icone que eu quizer, com ou sem um barra de progresso, com ou sem botões ou apenas mostrando algum aviso durante um determinado processo e quando esse processo acabasse ele se apagaria.

Obrigado e espero que alguem posso ajudar.

Ps. No momento só exibindo um mensagem durante um processo, já ajudaria.


Adriano Santos
   - 30 nov 2005

Comece por aqui, estas são minhas funções MessageDlg personalizadas, acho que vai ajudar bastante:

MessageDlg com CheckBox e com parâmetro pra receber outra function

#Código


function Dc_MessageDlgCheck(Msg: string; AType: TMsgDlgType; AButtons:
TMsgDlgButtons;
IndiceHelp: LongInt; DefButton: TMOdalResult; Portugues: Boolean; Checar:
Boolean; MsgCheck: string; Funcao: TProcedure): Word;
var
I: Integer;
Mensagem: TForm;
Check: TCheckBox;
begin
Check := nil;
Mensagem := CreateMessageDialog(Msg, AType, Abuttons);
Mensagem.HelpContext := IndiceHelp;
with Mensagem do
begin
for i := 0 to ComponentCount - 1 do
begin
if (Components[i] is TButton) then
begin
if (TButton(Components[i]).ModalResult = DefButton) then
begin
ActiveControl := TWincontrol(Components[i]);
end;
end;
end;
if Portugues then
begin
if Atype = mtConfirmation then
Caption := ´Confirmação´
else if AType = mtWarning then
Caption := ´Aviso´
else if AType = mtError then
Caption := ´Erro´
else if AType = mtInformation then
Caption := ´Informação´;
end;
end;
if Portugues then
begin
TButton(Mensagem.FindComponent(´YES´)).Caption := ´&Sim´;
TButton(Mensagem.FindComponent(´NO´)).Caption := ´&Não´;
TButton(Mensagem.FindComponent(´CANCEL´)).Caption := ´&Cancelar´;
TButton(Mensagem.FindComponent(´ABORT´)).Caption := ´&Abortar´;
TButton(Mensagem.FindComponent(´RETRY´)).Caption := ´&Repetir´;
TButton(Mensagem.FindComponent(´IGNORE´)).Caption := ´&Ignorar´;
TButton(Mensagem.FindComponent(´ALL´)).Caption := ´&Todos´;
TButton(Mensagem.FindComponent(´HELP´)).Caption := ´A&juda´;
end;
if Checar then
begin
Mensagem.ClientHeight := Mensagem.ClientHeight + 20;
Check := TCheckBox.Create(Mensagem);
Check.Parent := Mensagem;
Check.Left := 15;
Check.Top := Mensagem.ClientHeight - 20;
Check.Visible := True;
Check.Caption := MsgCheck;
Check.Width := Mensagem.ClientWidth - 10;
end;
Result := Mensagem.ShowModal;
if Check.Checked then
Funcao;
Mensagem.Free;
end;


MessageDlg com tradução

#Código

function Dc_MessageDlg(Msg: string; AType: TMsgDlgType; AButtons:
TMsgDlgButtons; IndiceHelp: LongInt; DefButton: TMOdalResult = mrNone;
Portugues: Boolean = True): Word;
var
I: Integer;
Mensagem: TForm;
begin
Mensagem := CreateMessageDialog(Msg, AType, Abuttons);
Mensagem.HelpContext := IndiceHelp;
with Mensagem do
begin
for i := 0 to ComponentCount - 1 do
begin
if (Components[i] is TButton) then
begin
if (TButton(Components[i]).ModalResult = DefButton) then
begin
ActiveControl := TWincontrol(Components[i]);
end;
end;
end;
if Portugues then
begin
if Atype = mtConfirmation then
Caption := ´Confirmação´
else if AType = mtWarning then
Caption := ´Aviso´
else if AType = mtError then
Caption := ´Erro´
else if AType = mtInformation then
Caption := ´Informação´;
end;
end;
if Portugues then
begin
TButton(Mensagem.FindComponent(´YES´)).Caption := ´&Sim´;
TButton(Mensagem.FindComponent(´NO´)).Caption := ´&Não´;
TButton(Mensagem.FindComponent(´CANCEL´)).Caption := ´&Cancelar´;
TButton(Mensagem.FindComponent(´ABORT´)).Caption := ´&Abortar´;
TButton(Mensagem.FindComponent(´RETRY´)).Caption := ´&Repetir´;
TButton(Mensagem.FindComponent(´IGNORE´)).Caption := ´&Ignorar´;
TButton(Mensagem.FindComponent(´ALL´)).Caption := ´&Todos´;
TButton(Mensagem.FindComponent(´HELP´)).Caption := ´A&juda´;
end;
Result := Mensagem.ShowModal;
Mensagem.Free;
end;