předchozí lekce (3.04) | obsah kurzu | následující lekce (3.06) |
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) |