OBS/Makros und Scripting/Anwendungsbereiche/Customize Listen
Zur Navigation springen
Zur Suche springen
Methoden der Liste
Interne Funktionen | Tastatur-Funktionen |
---|---|
OnListNew | OnF1 |
OnResize | OnF2 |
OnRefresh | OnF3 |
OnShowColor(cFeld:String) | OnF4 |
OnF5 | |
OnF6 | |
OnF7 | |
OnF8 | |
OnF9 | |
OnF10 | |
OnF11 | |
OnF12 | |
OnReturn | |
OnInsert | |
OnDelete | |
OnESC |
Beispiele Liste
Button F12 anzeigen und mit Funktionalität versehen
function OnListNew():string;
begin
frmListe.cmdF12.Enabled := True;
frmListe.cmdF12.Caption := 'F12 Test';
frmListe.InitButtons(frmListe);
frmListe.PaintButtons(frmListe);
end;
procedure OnF12();
begin
Meldung('Test');
end;
Var cMyF8 : String;
function OnListNew():String;
begin
cMyF8 := 'Init';
Result := '';
end;
function OnF8():string;
begin
Meldung('Hallo '+cMyF8);
Result := 'OK';
end;
function Before_OnF8():String;
begin
Meldung('Before Hallo '+cMyF8);
//Dann wird Standard F8 nicht ausgeführt
Result := 'READY';
cMyF8 := Result;
end;
Button F12 mit Auswahlfunktion
function OnListNew():string;
begin
frmListe.cmdF12.Enabled := True;
frmListe.cmdF12.Caption := 'F12 Test';
frmListe.InitButtons(frmListe);
frmListe.PaintButtons(frmListe);
end;
procedure OnF12();
var oLines : TStringList;
oResult : TStringList;
lEsc : Boolean;
cSelect : String;
begin
oLines := TStringList.Create();
oLines.Add('A - Test 1');
oLines.Add('B - Test 2');
oLines.Add('C - Test 3');
oResult := GetSelectionExt(oLines, //Auswahl
'Test', //Caption
lEsc, //Abruch? (var)
Nil, //uInit : DefGetSelection;
Nil, //uOnChange : DefGetSelection;
False, //Sort
-1, //Width
False, //MultiSel
False //AllLines
);
cSelect := LeftStr(oResult.Text, 1);
if (cSelect = 'A') then begin
Meldung('A');
end else if (cSelect = 'B') then begin
Meldung('B');
end else if (cSelect = 'C') then begin
Meldung('C');
end;
MyFreeAndNil(oLines);
MyFreeAndNil(oResult);
end;
Mit OnShowColor benutzerdefinierte Farben in Listenfeldern
procedure OnShowColor(cFeld: String);
begin
//Farbe des gesamten Textes setzt
//Je nach Status der Zeile im Grid eine andere Textfarbe nutzen:
//gdSelected, gdFocused, gdFixed, gdRowSelected, gdHotTrack, gdPressed
if (gdSelected in frmListe.CurState) then begin
//die aktuelle selektierte Zeile in Gelb
frmListe.DBGrid.Canvas.Font.Color := TObsColor.Yellow;
end else begin
frmListe.DBGrid.Canvas.Font.Color := TObsColor.Inactive;
end;
if (Upper(cFeld) = 'T_PRIO') then begin
//Über Color Constanten oder Hex Werte
//TObsColor.White
//TObsColor.White_Comp
//TObsColor.Red
//TObsColor.Red_Comp
//TObsColor.Red_Text
//TObsColor.Red_Text_Hi
//TObsColor.Green
//TObsColor.Green_Comp
//TObsColor.Green_Text
//TObsColor.Green_Text_Hi
//TObsColor.Yellow
//TObsColor.Yellow_Comp
//TObsColor.Alert
//TObsColor.Alert_Comp
//TObsColor.Inactive
//TObsColor.Inactive_Comp
//TObsColor.Inactive_Hi
//TObsColor.Black
//TObsColor.Blue
//TObsColor.Blue_Comp
//TObsColor.Dark_Blue
//TObsColor.Dark_Blue_Comp
//TObsColor.Light_Text
//TObsColor.InfoBlock
//Hoch
if frmListe.Query.A2C('t_prio') = '1' then begin
frmListe.DBGrid.Canvas.Brush.Color := TObsColor.red;
//Komplementärfarbe
frmListe.DBGrid.Canvas.Font.Color := TOBSColor.red_Comp;
//Normal
end else if frmListe.Query.A2C('t_prio') = '2' then begin
frmListe.DBGrid.Canvas.Brush.Color := $73f601;
frmListe.DBGrid.Canvas.Font.Color := $000000;
//Niedrig
end else begin
frmListe.DBGrid.Canvas.Brush.Color := TObsColor.Inactive_Comp;
frmListe.DBGrid.Canvas.Font.Color := TObsColor.Inactive;
end;
frmListe.DBGrid.Canvas.Fillrect(frmListe.CurRect);
end;
end;
Besonderheiten
HINWEIS: Sämtliche Tastatur-Funktionen haben noch eine Variante mit dem Präfix Before_.
ACHTUNG: Wird bei den Before_-Funktionen "READY" zurückgegeben, so werden die internen Funktionen nicht mehr ausgeführt. Damit kann der natürliche Ablauf des Programmes verändert werden. Dies kann schwere Programmfehler verursachen!
ACHTUNG: Das Überschreiben von nicht zugewiesenen Funktionstasten (F1 - F11) sollte vermieden werden, da diese von uns jederzeit mit Funktionen belegt werden können. F12 steht immer zur Verfügung.