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

Come si fa a far uscire sulla dialog Si/No invece di Yes/No se si richiama:
MessageDlg('Stampare?', mtConfirmation, [mbYes, mbNo], 0);
Grazie
--- posted by geoForum on 
http://www.delphiedintorni.it

 MessageDlg('Stampare?', mtConfirmation, [mbYes, mbNo], 0);
Non si può (in modo semplice).  Ti consiglio Application.MessageBox, che è
"localizzata" automaticamente ;-)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 MessageDlg('Stampare?', mtConfirmation, [mbYes, mbNo], 0);
Oltre ad utilizzare la MessageBox, che è localizzata, se hai i sorgenti 
della VCL (penso dipenda dalla versione di Delphi), puoi procedere come 
segue:
- nella cartella dei sorgenti individui /consts.pas/ (con D6 sicuramente 
si chiama così)
- copi il file in una tua cartella
- tra le opzioni dell'ambiente metti la tua cartella in testa alle altre
In questo modo, quando compili, utilizzi il /consts.pas/ della tua 
cartella in luogo di quello standard ed a questo punto ti basta 
individuare le costanti:
   SOKButton = 'OK';
   SCancelButton = 'Cancel';
   SYesButton = '&Yes';
   SNoButton = '&No';
   SHelpButton = '&Help';
   SCloseButton = '&Close';
   SIgnoreButton = '&Ignore';
   SRetryButton = '&Retry';
   SAbortButton = 'Abort';
   SAllButton = '&All';
e variarle come desideri.
Lo stesso ovviamente può essere fatto per tutti i messaggi di sistema. 
Se poi vuoi un minimo di "elasticità", puoi gestire tutto con 
compilazione condizionale:
{$DEFINE LNG_ITA}
{$IFDEF LNG_ITA}
   SCancelButton = 'Annulla';
   SYesButton = '&Si';
{$ELSE}
   SCancelButton = 'Cancel';
   SYesButton = '&Yes';
{$ENDIF}
Ciao,
Gianluca.

frankyae ha scritto:

Potresti scrivere una funzione da utilizzare al posto della messageDlg 
tipo questa:
function MsgDlg(const Msg: string; DlgType: TMsgDlgType;Buttons: 
TMsgDlgButtons; HelpCtx: Longint): Integer;
var flag:Longint;
     title:string;
     btn:array[0..6] of boolean;// 0=ok, 1=cancel, 2=yes, 3=no, 4=retry, 
5=abort, 6=ignore
     i:word;
     icon:word;
     rst:word;
begin
   for i:=0 to 6 do btn[i]:=false;
   case dlgType of
     mtWarning:begin; title:='Attenzione';icon:=mb_iconwarning;end;
     mtError:begin; title:='Errore';icon:=mb_iconerror;end;
     mtInformation:begin; 
title:='Informazioni';icon:=mb_iconinformation;end;
     mtConfirmation:begin; title:='Domanda';icon:=mb_iconQuestion;end;
     mtCustom:title:=msg
     else title:=msg
   end;
   btn[0]:=(mbOk in buttons);
   btn[1]:=(mbCancel in buttons);
   btn[5]:=(mbAbort in buttons);
   btn[2]:=(mbYes in buttons);
   btn[3]:=(mbNo in buttons);
   btn[4]:=(mbRetry in buttons);
   btn[6]:=(mbIgnore in buttons);
   if btn[0] then flag:=MB_OK;
   if btn[0] and btn[1] then flag:=MB_OKCANCEL;
   if btn[4] and btn[1] then flag:=MB_RETRYCANCEL;
   if btn[2] and btn[3] then flag:=MB_YESNO;
   if btn[2] and btn[3] and btn[1] then flag:=MB_YESNOCANCEL;
   if btn[5] and btn[4] and btn[6] then flag:=MB_ABORTRETRYIGNORE;
 
rst:=application.messageBox(pchar(msg),pchar(title),icon+flag+MB_APPLMODAL+MB_TOPMOST);
   case rst of
       idOk:result:=mrOk;
       idYes:result:=mrYes;
       idCancel:result:=mrCancel;
       idIgnore:result:=mrIgnore;
       idRetry:result:=mrRetry;
       idNo:result:=mrNo;
       idAbort:result:=mrAbort;
   end; // Case
end;
Ciao,
Fabio

 MessageDlg('Stampare?', mtConfirmation, [mbYes, mbNo], 0);
Installati le gexperts (
http://www.gexperts.org/
) e usa il suo wizard,
innescabile anche con CTRL+D: rimarrai stupito, č potentissimo.
Ciao
-- 
Morde. 
FAQ di icld (beta-version): 
http://icld.altervista.org
 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

 ha scritto nel messaggio 
news:pmnde.267514$ms1....@tornado.fastwebnet.it...


 Grazie
Per questo, e molto altro vai su
dade2000.altervista.org
e scaricati MessageMasterForDelphi
Ciao Daniele