p°edchozφ lekce (2.12) | obsah kurzu |
Pokud budete pot°ebovat pou₧φvat externφ programy, ve kter²ch mßte vφcekrßt se opakujφcφ procedury a funkce, je jejich pou₧itφ stejnΘ, jako kdy₧ je pou₧φvßte z programu bez formulß°e. Nejprve si proto po₧adovan² program naΦt∞te do projektu. To se provede volbou z menu Soubor/P°idat do projektu. Dßle musφte do hlavnφho programu, ze kterΘho budete volat procedury umφst∞nΘ v externφm programu doplnit definici pou₧φvanΘho externφho programu. P°esv∞Φte se, ₧e mßte v editoru aktivovßn hlavnφ program a zvolte z menu volbu Soubor/Definovat modul a vyberte v zobrazenΘm dialogu program, se kter²m mß hlavnφ program spolupracovat (bude mφt mo₧nost pou₧φvat jeho procedury a funkce). Uveden²m postupem bude do seznamu pou₧φvan²ch modul∙ dopln∞n zadan² externφ program. V jazyce KLONDAIK je to v sekci Implementation, v jazyce BONANZA a JUKON je to na zaΦßtku programu za oznaΦenφm //USEUNIT.
Pou₧itφ dalÜφho formulß°e v programu je obdobnΘ, jako pou₧itφ externφho programu. DalÜφ formulß° doplnφte do aplikace (projektu) volbou z menu Soubor/Nov², kdy vyberete na zßlo₧ce Formulß° ikonu s formulß°em v pou₧φvanΘm jazyku. Vytvo°φ se prßzdn² formulß° vΦetn∞ odpovφdajφcφho programu. DoporuΦuje se ihned p°ejmenovat formulß° podle jeho obsahu. Pokud byste m∞li toti₧ v aplikaci formulß°e se stejn²m jmΘnem, nedokßzal by systΘm rozhodnout, se kter²m formulß°em chcete pracovat. Stejn∞ tak se doporuΦuje program ihned ulo₧it a zadat mu tφm jeho jmΘno.
Pokud aplikaci s n∞kolika formulß°i spustφte, zobrazφ se pouze prvnφ (hlavnφ) formulß°. Aby mohly b²t zobrazeny i dalÜφ formulß°e, je nutnΘ je zadat jako externφ moduly. To provede stejn∞, jako se zadßvajφ externφ programy. Aktivujte proto v editoru hlavnφ program a zvolte z menu akci Soubor/Definovat modul. Vyberte v dialogovΘm okn∞ po₧adovan² program, kter² se tφm doplnφ mezi seznam pou₧φvan²ch modul∙. V jazyce KLONDAIK je to v sekci Implementation, v jazyce BONANZA a JUKON je to na zaΦßtku programu za oznaΦenφm //USEUNIT.
Standardn∞ se po spuÜt∞nφ aplikace zobrazuje pouze hlavnφ formulß°. Ostatnφ formulß°e je mo₧nΘ zobrazit volßnφm metody Show, p°φpadn∞ ShowModal. Pokud po₧adujete zobrazit okam₧it∞ p°i spuÜt∞nφ aplikace i externφ formulß°, musφte pro n∞j nastavit bu∩ v okn∞ nastavenφ objektu zm∞nit vlastnost na True, p°φpadn∞ nastavit uvedenou vlastnost v oÜet°enφ udßlosti OnCreate.
Pro zobrazenφ formulß°e, kter² mßte definovßn jako externφ modul a po₧adujete jeho
nemodßlnφ zobrazenφ, musφte pou₧φt z hlavnφho programu metodu Show. Nemodßlnφ
zobrazenφ znamenß, ₧e je mo₧nΘ se mezi formulß°i p°epφnat. Pro modßlnφ zobrazenφ musφte
vyvolat metodu ShowModal, p°i kterΘm nenφ mo₧nΘ se p°epnout na jin² formulß° bez jeho
ukonΦenφ. Modßlnφ zobrazenφ pou₧φvajφ nap°φklad dialogovΘ boxy. Nßsledujφcφ ukßzka
zobrazφ po kliknutφ na tlaΦφtko modßln∞ externφ formulß°. V takovΘm p°φpad∞ je vhodnΘ si
kontrolovat, zda nenφ formulß° ji₧ zobrazen. Pokud ano, doÜlo by p°i pokusu o modßlnφ
zobrazenφ k chyb∞.
Jazyk KLONDAIK:
procedure TForm1.Button2Click(Sender: TObject);
begin
if Form2.Visible = False then Form2.ShowModal;
end;
Jazyk BONANZA:
sub Button2Click(Sender)
if Form2.Visible = False then Form2.ShowModal
end sub
Jazyk JUKON:
function Button2Click(Sender)
{
if (Form2.Visible == False) Form2.ShowModal;
}
Ukßzku pou₧itφ prßce s externφm formulß°em naleznete v projektu ExtForm, kter² je
sestaven pro vÜechny podporovanΘ jazyky. S extern∞ definovan²m formulß°em je mo₧nΘ
provßd∞t spoustu akcφ. P°i po₧adavku na zm∞nu vlastnosti formulß°e musφte uvΘst p°ed
jmΘnem vlastnosti jmΘno formulß°e odd∞lenΘ teΦkou. Stejn∞ tak je mo₧nΘ nastavit i
vlastnosti dalÜφch objekt∙ umφst∞n²ch na formulß°i. Vlastnosti objekt∙ je samoz°ejm∞ mo₧nΘ
i uveden²m zp∙sobem i Φφst. P°i uvedenφ jmΘna formulß°e a objektu je mo₧nΘ takΘ aktivovat
metodu objektu na jinΘm formulß°i. N∞kterΘ ukßzky mo₧nΘ prßce s externφmi formulß°i jsou
uvedeny v nßsledujφcφch p°φkladech:
Jazyk KLONDAIK:
Form2.Button1.Caption := 'XXXXXXX';
ShowMessage('Width 2:='+IntToStr(Form2.Width));
Form2.Button1.Click;
Form2.Close;
Jazyk BONANZA:
Form2.Button1.Caption = "XXXXXXX"
ShowMessage("Width:="+IntToStr(Form2.Width))
Form2.Button1.Click
Form2.Close
Jazyk JUKON:
Form2.Button1.Caption = "XXXXXXX"
ShowMessage("Width :="+IntToStr(Form2.Width));
Form2.Button1.Click;
Form2.Close;
Pokud pou₧φvßte v aplikaci vφce formulß°∙, je nutnΘ se seznßmit s tφm, kdy jsou kterΘ
udßlosti formulß°e vyvolßny. InicializaΦnφ Φßst programu formulß°e je uvedena v oÜet°enφ
udßlosti OnCreate. Ta se proto provede pouze jednou a to ihned po spuÜt∞nφ
naprogramovanΘ aplikace bez ohledu na to, zda je formulß° souΦasn∞ zobrazen (vlastnost
Form.Visible). Pokud proto po₧adujete provΘst n∞kterΘ akce a₧ v okam₧iku zobrazenφ
formulß°e, je nutnΘ pou₧φt jinΘ udßlosti. Udßlost OnShow je provedena p°i prvnφm vykreslenφ
formulß°e, pokud nebyl p°edtφm viditeln². Udßlost OnActivate je vÜak provßd∞na v₧dy p°i
p°epnutφ na formulß°, kter² nebyl p°itom aktivnφ, aΦkoliv mohl b²t viditeln². Proto nenφ pro
zva₧ovanΘ pou₧itφ tato udßlost vhodnß.
p°edchozφ lekce (2.12) | obsah kurzu |