Za zmínku stojí znak "&" před "S" ve slově ShowMessage; tento znak znamená, že "S" je zkratková klávesa, tzn. Alt+S vyvolá příslušnou akci.

Pro obě tlačítka se zapíší jednoduché obslužné procedury, například dle tohoto vzoru:

 

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Toto je moje zpráva'^M'(Blbý, co?!)');
ShowMessageFmt('%d děkovných %s', [1000, 'dopisů']);
ShowMessagePos('Tak dobře.',10,10);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
Vysledek : integer;
begin
Vysledek := MessageDlg('Zadej YES nebo NO', mtConfirmation, [mbYes, mbNo], 0);
if Vysledek=mrYes then
ShowMessage('Stisknul jsi YES')
else
ShowMessage('Stisknul jsi NO');
end;

Povšimněte si nejprve znaků "^M" v první ShowMessage. Mají význam CR/LF, tedy přechodu na novou řádku. Složitější formátování je možné s procedurou ShowMessageFmt, které se jako první parametr zadává formátovací řetězec. Formátovací řetězec je směs obyčejného textu, který se vytiskne tak jak je napsán, a formátových specifikací. Formátové specifikace začínají vždy znakem "%" a následuje písmeno udávající druh údaje. Například "d" znamená dekadické číslo, "s" string a podobně. Pro každou formátovou specifikaci musí existovat jeden datový údaj. Datové údaje mají formu pole konstant, proto jsou uzavřeny v hranaté závorce. První datový údaj patří k první formátové specifikaci, druhý ke druhé a podobně.

Procedura ShowMessagePos se od ShowMessage liší tím, že dovoluje zadat pozici (souřadnice horního levého okraje) svého okna na obrazovce.

MessageDlg je funkce, která vrací hodnoty, jejichž název se vytvoří předponou "mr-", za kterou následuje jméno tlačítka. Tedy například mrOK, mrYes, mrNo, mrCancel a podobně. Parametry této funkce jsou: text který se má zobrazit, druh okna, množina tlačítek a kontext nápovědy (helpu). Přitom druh okna může být mtError (okno s chybovým hlášením), mtInformation (informační okno), mtConfirmation (okno s potvrzením). Množina tlačítek je skutečně množina, do které se vyjmenují požadovaná tlačítka (např. mbOK, mbYes, mbNo, mbCancel, mbAll, mbAbort aj.), nebo to může být některá předdefinovaná množina (mbYesNoCancel, mbAbortRetryIgnore apod.). Posledním parametrem je kontext nápovědy, tzn. číslo stránky helpu která se vyvolá, když si uživatel při dialogu vyvolá nápovědu. Nemáme-li nápovědu, můžeme zatím zapsat nulu. Aby se k nápovědě dalo přistupovat, musíte ovšem u formuláře ve vlastnosti Border Icons zviditelnit ikonku Help.

Poznámka: U kontextu nápovědy se velmi doporučuje nepsat nulu jako číslo, ale zavést si vhodnou konstantu, např. DefaultHelpContext = 0. Až budete vytvářet nápovědu, snadno pomocí funkce hledání v editoru najdete všechny výskyty této konstanty, zatímco výskyty nuly byste hledali obtížně (je jich moc).

Celé řešení je v souboru zde.