Lekce 1.14
Zadßnφ vstupnφch hodnot


p°edchozφ lekce (1.13) obsah kurzu nßsledujφcφ lekce (1.15)

U program∙ v p°edchozφch lekcφch jsme v₧dy poΦφtali s tφm, ₧e jsou vÜechna data pro v²poΦty zadßna p°φmo v programu. Aby jsme ale m∞li mo₧nost ovlivnit pr∙b∞h v²poΦtu, bylo by vhodnΘ zadßvat po₧adovanΘ hodnoty p°φmo dotazem od u₧ivatele. To je mo₧nΘ dv∞ma zp∙soby. NejjednoduÜÜφ je pou₧φt p°φkaz InputBox. Ve druhΘ polovin∞ kurzu se dßle seznßmφme s mo₧nostφ definice vstupnφch formulß°∙.

Pro zadßnφ vstupnφ hodnoty prom∞nnΘ z klßvesnice od u₧ivatele je mo₧nΘ pou₧φt p°φkaz InputBox. Hodnotu potom m∙₧eme pou₧φt dßle v programu k dalÜφm v²poΦt∙m. Prom∞nnß musφ b²t p°itom nejprve definovßna. Mo₧nΘ je pou₧φt pouze ΦφselnΘ a °et∞zcovΘ prom∞nnΘ. P°φkaz InputBox vyvolß jednoduch² formulß° pro mo₧nost zadßnφ hodnoty prom∞nnΘ. JmΘno formulß°e se zadßvß prvnφm parametrem, popis ·daje obsahuje druh² parametr a ve t°etφm parametru se zadßvß poΦßteΦnφ p°edvolenß vstupnφ hodnota. Vstupnφ hodnota m∙₧e b²t p°itom Φφselnß i numerickß.

Pro v²pis libovolnΘho hlßÜenφ u₧ivatele s po₧adavkem potvrzenφ je mo₧nΘ pou₧φt p°φkaz ShowMessage, kter² obsahuje pouze jedin² parametr, ve kterΘm se zadßvß vypisovanß zprßva. Zprßvu pro v²pis je mo₧nΘ zadat jako Φφslo, nebo °et∞zec. V²sledkem je, ₧e program zobrazφ u₧ivateli dialogovΘ okno se zadanou zprßvou a Φekß na potvrzenφ od u₧ivatele.


Unit InputBox;
interface
implementation

var vstup : Variant;

begin
   vstup:= InputBox('Nadpis okna','Popis vstupu:', 'hodnota');
   ShowMessage('Zadal jste: '+vstup);

   vstup:= InputBox('DalÜφ vstup','Zadejte hodnotu:', vstup);
   ShowMessage('Zadal jste:'+Chr(13)+vstup);

   vstup:= Random(100)/Random(100);
   vstup:= InputBox('Zadßnφ Φφsla','Zadejte Φφslo:', vstup);
   vstup:=StrToReal(vstup);
   ShowMessage('Zadal jste Φφslo:'
               +Chr(13)+RealToStr(vstup,10,3));
end;
end.
Je nutnΘ si uv∞domit, ₧e zadanß hodnota od u₧ivatele je typu Variant. To znamenß, ₧e m∙₧e b²t dßle pou₧ita jako Φφslo nebo °et∞zec. Pokud proto po₧adujete zadßnφ Φφsla, musφte si pro p°φpadnΘ dalÜφ v²poΦty zajistit, ₧e byla zadßna opravdu numerickß hodnota. To se provede p°evedenφm zadanΘ hodnoty na typ Real nebo Integer. Viz uveden² p°φklad.

Pokud byste pot°ebovali rozd∞lit vypisovanou zprßvu u₧ivateli p°φkazem ShowMessage na vφce °ßdk∙, mßte mo₧nost pou₧φt jednoduchΘho triku. Na mφst∞ po₧adovanΘho od°ßdkovßnφ vlo₧te do vypisovanΘho °et∞zce znak pro nov² °ßdek. ╚ili znak s dekadickou hodnotou 13. To zajistφte zadßnφm funkce Chr(13) do °et∞zce. Pou₧itφ by m∞lo b²t jasnΘ z uvedenΘho p°φkladu.

Tak₧e jak zadßvat obsah prom∞nnΘ od u₧ivatele ji₧ znßme. Vφme takΘ, jak vypsat jejich obsah s p°φpadnou dalÜφ ·pravou do textovΘho v²stupnφho okna. Zatφm jsme se ale nic nedozv∞d∞li o tom, jak je mo₧nΘ provΘst v²stup informacφ na tiskßrnu. Pokud nebudeme poΦφtat s tiskov²m v²stupem databßzφ a tabulek, neobsahuje systΘm ₧ßdnΘ p°φkazy pro p°φm² tisk na tiskßrnu. Dovoluje vßm ale vytisknout kompletnφ obsah textovΘho v²stupnφho okna. Musφte proto nejprve provΘst v²stup po₧adovan²ch informacφ a text∙ do v²stupnφho okna a potom p°φkazem ConsolePrint vytisknout jeho obsah. M∙₧ete takΘ po ukonΦenφ programu, kdy se zobrazφ po₧adovanΘ v²sledky ve v²stupnφm okn∞ provΘst jeho tisk pomocφ ikony s obrßzkem tiskßrny, umφst∞nΘ v hornφ liÜt∞ textovΘho v²stupnφho okna.

Se slo₧it∞jÜφm, ale efektn∞jÜφm zp∙sobem zadßvßnφ vstupnφch hodnot se seznßmφme p°i probφrßnφ tvorby formulß°∙.


p°edchozφ lekce (1.13) obsah kurzu nßsledujφcφ lekce (1.15)

OZOGAN, 1 Mßje 97, 460 01 Liberec
tel.,fax: (048) 52 28 338, e-mail: info@ozogan.cz