Lekce 3.05
Pou₧itφ komponenty DataSource


p°edchozφ lekce (3.04) obsah kurzu nßsledujφcφ lekce (3.06)

Komponenta DataSource zprost°edkovßvß spojenφ mezi nevizußlnφ komponentou DataTable a ostatnφmi vizußlnφmi komponentami. Jak ji₧ vφme, komponenta DataTable obsahuje vlastnφ data a dokß₧e s nimi pracovat. Je to vlastn∞ ukazatel na aktußlnφ data. Prost°ednictvφm DataSource m∙₧eme tato aktußlnφ data pomocφ dalÜφch vizußlnφch komponent data zobrazovat.

Nejd∙le₧it∞jÜφ vlastnostφ je DataSet, to je spojenφ na data obsa₧enß v komponent∞ DataTable. Zadßvß se v₧dy komponenta DataTable umφst∞nß na formulß°i.

Vlastnost AutoEdit umo₧≥uje zabrßnit editaci polo₧ek. P°i nastavenφ DataSource.AutoEdit:=True je mo₧nΘ polo₧ky databßze v komponent∞ DataEdit b∞₧n∞ editovat. Pokud vÜak zadßme DataSource.AutoEdit:= False, je zabrßn∞no editaci polo₧ek. Pro p°epnutφ do editaΦnφho re₧imu budete muset bu∩ kliknout na editaΦnφ ikonu komponenty DataNavigator, nebo volat metodu DataTable.Edit.

Pokud budete zpracovßvat v∞tÜφ mno₧stvφ dat z p°ipojenΘ databßze z rozsahu celΘho souboru, m∙₧ete vyu₧φt vlastnost Enabled. Umo₧nφ vßm doΦasn∞ odpojit komponenty p°ipojenΘ k DataSource zprost°edkovßvajφcφ zobrazenφ dat. Tφm dosßhnete toho, ₧e se p°i prochßzenφ databßze nebudou data zobrazovat a zpracovßnφ bude dφky tomu mnohem rychlejÜφ.

Komponenta DataSource mß t°i velmi d∙le₧itΘ udßlosti. Udßlost OnDataChange se vyskytne p°i ka₧dΘ zm∞n∞ v databßzi. To znamenß nejen p°i zm∞n∞ dat, ale takΘ p°i zm∞n∞ pozice databßzovΘho ukazatele. Udßlost OnUpdateData je volßna v₧dy, kdy₧ je zßznam po editaci aktualizovßn (zapisovßn fyzicky do databßze). V∞tÜφ mo₧nosti poskytuje udßlost OnStateChange, kterß je volßna v₧dy p°i zm∞n∞ stavu databßze. To znamenß, ₧e dokß₧e rozpoznat p°epnutφ do editaΦnφho re₧imu, re₧imu prohlφ₧enφ, vlo₧enφ novΘho zßznamu a deaktivaci tabulky. Stav tabulky zjistφte testovßnφm vlastnosti State.

Udßlost OnDataChange je mo₧nΘ pou₧φt nap°φklad pro zobrazenφ Φφsla aktußlnφho zßznamu databßze nßsledujφcφm zp∙sobem:


Jazyk KLONDAIK: procedure TForm.DataSourceDataChange(Sender: TObject; Field: TField); begin Label.Caption := IntToStr(DataTable.RecNo)+'/' +IntToStr(DataTable.RecCount); end;

Jazyk BONANZA: Sub DataSourceDataChange(Sender, Field) Label.Caption = IntToStr(DataTable.RecNo) _ +"/"+IntToStr(DataTable.RecCount) End Sub

Jazyk JUKON: function DataSourceDataChange(Sender, Field) { Label1.Caption = IntToStr(DataTable1.RecNo)+'/' +IntToStr(DataTable1.RecCount); }


p°edchozφ lekce (3.04) obsah kurzu nßsledujφcφ lekce (3.06)

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