Newsgroup: it.comp.lang.delphi
Titolo: messagebox

scusate sono agli inizi,cmq volevo sapere come funziona il comando
messagebox in delphi grazie.

messagebox in delphi grazie.
Con Delphi hai, essenzialmente, 3 modi per visualizzare
messaggi modali per l'utente:
1. Usare l'API di Windows MessageBox:
-----------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
  if (MessageBox(0,
      'Il file non e'' stato salvato, si vuol salvare ?',
      'Attenzione',
      MB_YESNO + MB_ICONWARNING) = IDYES) then
  begin
    ShowMessage('Ok, uscita con salvataggio');
  end
  else
  begin
    ShowMessage('Ok, uscita senza salvataggio');
  end;
end;
-----------------------------------------------
 
2. Usare il metodo MessageBox di TApplication:
-----------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
  if (Application.MessageBox(
        'Il file non e'' stato salvato, si vuol salvare ?',
        'Attenzione',
        MB_YESNO + MB_ICONWARNING) = IDYES) then
  begin
    ShowMessage('Ok, uscita con salvataggio');
  end
  else
  begin
    ShowMessage('Ok, uscita senza salvataggio');
  end;
end;
-----------------------------------------------
3. Usare la funzione MessageDlg:
-----------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
  if (MessageDlg(
        'Il file non e'' stato salvato, si vuol salvare ?',
        mtWarning, [mbYes, mbNo], 0) = mrYes) then
  begin
    ShowMessage('Ok, uscita con salvataggio');
  end
  else
  begin
    ShowMessage('Ok, uscita senza salvataggio');
  end;
end; 
-----------------------------------------------
Con quest'ultimo metodo, hai lo svantaggio di avere i
messaggi dei bottoni in inglese, ma e' una questione
facilmente sorpassabile.  Basta, difatti, come ho fatto io,
impostare la propria traduzione del testo in consts.pas (da
copiare nella cartella del proprio progetto).
Con Delphi hai anche la possibilita' di creare delle tue
finestre di dialogo modali, senza appoggiarti a routine di
sistema.
-- 
The Follet

Hai due modi a disposizione:
1) il semplice:
    ShowMessage(const Msg: string);
    compare un message box con un tasto ok
2) il più completo
    MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons:
TMsgDlgButtons; HelpCtx: Longint)
    esempio:
    if MessageDlg ('Uscire dall''applicazione?',  mtConfirmation, [mbYes,
mbNo], 0) = mrYes then
      begin
        MessageDlg('Chiusura dell''applicazione.', mtInformation, [mbOk],
0);
       ChiudiApplicazione
     end;
L'esempio ti fa capire il duplice utilizzo che se ne può fare.
Fai riferimento all'ottimo help di Delphi per i tipi TMsgDlgType (il tipo di
messaggio: conferma, errore, informazione ecc.) e TMsgDlgButtons (per i
bottoni: Yes, No, Ok, Abort ecc.)
Spero di esserti stato utile!!! :)))
--
Massimiliano Etere
maxe...@infinito.it
www.sendai.it/encom
ICQ#: 129227562

 messagebox in delphi grazie.
Hai ricevuto risposte con molte possibilità, io te ne dò un'altra un pò meno
comoda ma molto + potente.
Creati una tua form, poi ci metti dentro tutti i controlli che ti servono(
un label ad esempio per visualizzare il messaggio ) e poi la mostri.
E' un sistema un pò + complicato dei precedenti, ma se per esempio hai dei
messaggi custom e vuoi una gestione un'attimino più completa oppure vuoi
metterci dentro cose particolari, è la soluzione migliore :D)
Ciao,
Andrea

 metterci dentro cose particolari, è la soluzione migliore :D)
Ottima soluzione, io aggiungerei che ti permette di inserire i tasti con il
testo in italiano! :)
--
Max Etere
maxe...@infinito.it
www.sendai.it/encom
ICQ#: 129227562

testo in italiano! :)
In realta' sono poche le circostanze che ti portano a
crearti delle dialog box di messaggio in modo
personalizzato.  Nella maggior parte dei casi, bastano le
opzioni predefinite, che sono poi in numero abbastanza
grande.  Tra l'altro, per i messaggi in italiano, usando
MessageBox ce l'hai gia'.
-- 
The Follet

 MessageBox ce l'hai gia'.
Acc... non c'avevo pensato :)
