TMS TAdvOutlooklist (Teil 3)

Nachdem man eine Outlookliste (TAdvOutlookList), siehe Teil 1 und Teil 2 dieser Serie, mit Daten, z.B. aus einer Datenbank gefüllt hat, stellt ich nun die Frage, wie man einzelne Datenzeilen aktualisiert, z.B. wenn jede Zeile einen Datenbankeintrag entspricht und die einzelnen Spalten einzelnen Feldinhalten. Nun hat man diesen Datensatz bearbeitet und man möchte natürlich nicht die ganze Liste wieder einlesen, sondern nur die betreffende Zeile aktualisieren.

Dies ist relativ einfach:

IF ADVOutlookListe.FocusedItem<>Nil then
begin

// ermittelt das aktuelle Item vom Typ PoglItem;
pItem := ADVOutlookListe.FocusedItem;
// ermittelt die Gruppe des aktuellen Eintrags vom Typ TOutlookGroup;
og := AdvOutlookListe.ItemGroup(pItem);
// ermittelt den Index dieser Gruppe innerhlab der Liste vom Typ Integer
groupIndex := AdvOutlookListe.MaListe.GroupIndex(og);
// ermittelt den Indexeintrag des aktuellen Eintrags innerhalb dessen Gruppe, Rückgabewert vom Typ Integer
iIndex := AdvOutlookListe.MaListe.Groups[groupIndex].ItemIndex(pItem);

Nun haben wir alles zusammen um die einzelnen Spalten der aktuelle Zeile anzuprechen und
mit den geänderten Daten zu aktualisieren

AdvOutlookListe.Groups[groupIndex].ChildItem[iIndex].Strings[0] := ‚Mein aktualisierter Text Spalte 1‘;
AdvOutlookListe.Groups[groupIndex].ChildItem[iIndex].Strings[1] := ‚Mein aktualisierter Text Spalte 2‘;
AdvOutlookListe.Groups[groupIndex].ChildItem[iIndex].Strings[2] := ‚Mein aktualisierter Text Spalte 3‘;

usw.

Für das Beispiel müssen Sie folgende Variablen deklarieren:

pItem: PoglItem;
og: TOutlookGroup;
iIndex, groupIndex: Integer;

und benötigen folgende Units im Uses-Abschnitt:

OutLookGroupedList, advoutlooklist

Werbung & Infos:

avast sommer-angebote 2025

HP Deal Days Angebote im HP Store (Juli 2024)


Verwandte Themen: