Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: petrusic - Marzo 27, 2020, 06:21:19 pm

Titolo: message... a scelta [Risolto]
Inserito da: petrusic - Marzo 27, 2020, 06:21:19 pm
Non sapendo come approfondire lo studio sulle finestre di dialogo, perchè ho trovato pochissime guide d'aiuto, ho pensato a generalizzare la mia domanda.
Ho capito che esistono  4 generi di messaggi per interfaccare l'utente:
- ShowMessage è la più semplice e illustrata ampiamente;
- MessageBox, MessageDlg, QuestionDlg
   tutte illustrate, ma mancanti della descriziione dettagliata dei parametri che le compongono.

Citazione
Es.:
MessageDlg(const aCaption, aMsg:string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; const HelpKeyword: string); TModalResult;
const aCaption (titolo della finestra)
aMsg:string (testo del messaggio)
DlgType: TMsgDlgType (è l'icona simbolica come il ! o il ? ...)
               (ma dove si trova una lista completa dei termini?)
 Buttons: TMsgDlgButtons (pulsanti)
                  (ma che cosa è TMsgDlgButtons? il testo  di riempimento, il numero  di ritorno della funzione o altro?)
const HelpKeyword: string (penso che sia un testo d'aiuto)
TModalResult (forse è questo il codice di ritorno della funzione?)

Come potete capire,  a parte ShowMessage non sono riuscito a formulare una finestra di prova.
Dove posso trovare una risposta chiarificatrice (anche in inglese)
Titolo: Re:message... a scelta
Inserito da: nomorelogic - Marzo 27, 2020, 07:15:47 pm
dai un'occhiata a questi link

https://wiki.freepascal.org/Dialog_Examples (https://wiki.freepascal.org/Dialog_Examples)
https://lazarus-ccr.sourceforge.io/docs/lcl/dialogs/messagedlg.html (https://lazarus-ccr.sourceforge.io/docs/lcl/dialogs/messagedlg.html)

in alternativa, da dentro lazarus, se fai Ctrl+click (sx) su, ad esempio, "TMsgDlgType" raggiungi la definizione e vedi quali valori puo' assumere

nomorelogic
Titolo: Re:message... a scelta
Inserito da: petrusic - Marzo 27, 2020, 07:51:20 pm
da dentro lazarus, se fai Ctrl+click (sx) su, ad esempio, "TMsgDlgType" raggiungi la definizione e vedi quali valori puo' assumere
Si, ho trovato.
Mentre cercavo di vincere lo spauracchio di come richiamare correttamente una MessageDlg, mi sono buttato con questa prova
Codice: [Seleziona]
begin
  if MessageDlg (''Vuoi un saluto doppio?',
      mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    ShowMessage ('Ciao, Ciao') 
  else
    ShowMessage ('Ciao') 
end;
ho scoperto anche che mbYes, mbNo, mbClose si trovano nel file /.../lazarus/lcl/dialogs.pp,
 mentre mrYes si trova nel file  /.../lazarus/lcl/controls.pp
Sono stato un precipitoso nel chiedere?
Chiedo scusa. Sono un pò in difficoltà per ora.
Titolo: Re:message... a scelta
Inserito da: petrusic - Marzo 28, 2020, 11:16:42 am
Ho capito. Esercizio completato.
Grazie!  :D