In dem Artikel Anzeigen verknüpfter Datensätze im RecView-Objekt bin ich auf die Möglichkeit eingegangen, sich verknüpfte Datensätze im RecView ausgeben zu lassen. Der folgende Artikel beschäftigt sich damit, die Eigenschaften eines RecViews zur Laufzeit zu verändern.
Es ist notwendig zu wissen, dass jede Zeile eines Views aus Gruppen aufgebaut ist. Diese werden zur Laufzeit für jeden angezeigten Datensatz angelegt. Die Gruppe ist der Container, welcher die Items und SubItems enthält.
Jede Column wird zur Laufzeit bei der Erstellung der Group als Item kopiert. Dieses Item erhält automatisch die Eigenschaften der Spalte.
Eine Spalte kann mehrere untergeordnete Spalten, sogenannte SubColumns, enthalten. Jede SubColumn wird zur Laufzeit als SubItem kopiert.
Im Ereignis EvtLstGroupInit
können die Eigenschaften des Items geändert werden. Um dies zu erreichen muss das Item mit der Eigenschaft wpSelectorItem
aus der Gruppe ausgewählt werden. Die Nummer, mit welcher ein Item angesprochen werden kann, ist identisch mit der Nummer aus der Definition der Spalten im RecView.
Um die Eigenschaften eines SubItems zu ändern, muss zusätzlich die Eigenschaft wpSelectorSubItem
der Gruppe auf die Nummer des SubItems gesetzt werden.
Ist das Item und das SubItem nun gesetzt, können zur Laufzeit die Eigenschaften nach Belieben verändert werden.
Sub EvtLstGroupInit
(
aEvt : event; // Ereignis
aRecBuf : handle; // Datensatzpuffer
aGroup : handle; // Gruppe
aViewId : int; // Nummer des View
)
: logic;
{
aGroup->wpGroupColBkg # ColorRgbMake(245,245,175);
aGroup->wpSelectorItem # 1;
aGroup->wpClmColFg # _WinColGreen;
aGroup->wpClmAlign # _WinClmAlignLeft;
aGroup->wpBorderType # _WinBorderTypeSolidTop;
aGroup->wpSelectorItem # 2;
aGroup->wpClmColBkg # ColorRgbMake(240,250,255);
aGroup->wpFont # FontMake('Tahoma',100,_WinFontAttrBold);
aGroup->wpClmAlign # _WinClmAlignCenter;
aGroup->wpBorderType # _WinBorderTypeSolidTop;
aGroup->wpSelectorItem # 3;
aGroup->wpFont # FontMake('Informal Roman',130,_WinFontAttrNormal);
aGroup->wpClmAlign # _WinClmAlignLeft;
aGroup->wpBorderType # _WinBorderTypeSolidTop;
aGroup->wpSelectorSubItem # 1;
aGroup->wpVisible # FALSE;
}
Somit können Sie das Aussehen des RecViews nach Ihrem Bestreben hin anpassen bzw. ändern.