OBS/Makros und Scripting/Anwendungsbereiche/Customize Listen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen


Methoden der Liste

Interne Funktionen Tastatur-Funktionen
OnListNew OnF1
OnResize OnF2
OnRefresh OnF3
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;
Andere Buttons Mit Funktion versehen
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;

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.