OBS/Makros und Scripting/Anwendungsbereiche/Customize Listen: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Hello! My name is Dan. <br>It is a little about myself: I live in United States, my city of Little Rock. <br>It's called often [http://www.Wood-furniture.biz/s…“)
 
 
(17 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Hello! My name is Dan. <br>It is a little about myself: I live in United States, my city of Little Rock. <br>It's called often [http://www.Wood-furniture.biz/search/search.php?query=Northern&search=1 Northern] or cultural capital of AR. I've married 2 years ago.<br>I have 2 children - a son (Candra) and the daughter (Kandi). We all like Origami.<br><br>Here is my web-site :: graham and green discount code feb 2016 visa - [http://m.A.ge.Nta.angl.eninegirlsmanderdse@grahamgreenblog.wordpress.com/centroedilizia/accesso-utenti m.a.ge.nta.angl.eninegirlsmanderdse],
{{Makros und Scripting}}
 
==Methoden der Liste==
{| class="wikitable"
|-
!Interne Funktionen
|-
|OnListNew
|-
|OnResize
|-
|OnRefresh
|-
|OnShowColor(cFeld:String)
|-
| OnStable
|-
|OnCreate
|-
|OnClose
|-
|OnVisible
|}
{| class="wikitable"
|-
! Tastatur-Funktionen
|-
| OnF1
|-
| OnF2
|-
| OnF3
|-
| OnF4
|-
| OnF5
|-
| OnF6
|-
| OnF7
|-
| OnF8
|-
| OnF9
|-
| OnF10
|-
| OnF11
|-
| OnF12
|-
| OnReturn
|-
| OnInsert
|-
| OnDelete
|-
| OnESC
|}
 
==Beispiele Liste==
{{Vorlage:KlapptextFAQ
|liste_F12
|Button F12 anzeigen und mit Funktionalität versehen
|<syntaxhighlight lang="Delphi">
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; 
</syntaxhighlight>
}}
 
{{Vorlage:KlapptextFAQ
|liste_Disable
|Button F4 ausblenden
|<syntaxhighlight lang="Delphi">
function OnListNew():string;
begin
    frmListe.cmdF4.Enabled := False; 
end;             
</syntaxhighlight>
}}
 
{{Vorlage:KlapptextFAQ
|liste_buttons
|Andere Buttons Mit Funktion versehen
|<syntaxhighlight lang="Delphi">
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; 
</syntaxhighlight>
}}
 
{{Vorlage:KlapptextFAQ
|liste_F12_Auswahl
|Button F12 mit Auswahlfunktion
|<syntaxhighlight lang="Delphi">
 
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;
</syntaxhighlight>
}}
 
{{Vorlage:KlapptextFAQ
|OnShowColor
|Mit OnShowColor benutzerdefinierte Farben in Listenfeldern
|<syntaxhighlight lang="Delphi">
 
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;
   
    //Je nach Priorität das Feld einfärben
    if (Upper(cFeld) = 'T_PRIO') then begin
        //Folgende Farb Konstanten stehen zur Verfügung
        //*_Comp repräsentieren jeweils die Komplementärfarben
        //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
 
        //Wenn die gewünschte Farbe fehlt, kann dies per Hexadezimal wert dargestellt werden
 
        //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;
</syntaxhighlight>
}}{{Vorlage:KlapptextFAQ
|liste_Resturn|Button Return und Doppelklick deaktivieren
|<syntaxhighlight lang="Delphi">
function Before_OnReturn():string;
begin
    Meldung('nicht erlaubt');
    Result := 'Ready'
end;             
</syntaxhighlight>
}}
 
== Weitere Funktionen ==
[[Datei:Weitere Funktionen.png|rahmenlos]]
Um die Menüpunkte unter ''Weitere Funktionen'' zu bearbeiten, kann auf diese Liste mit STRG + {{MouseRight1}} geklickt werden, woraufhin sich ein Customize Menü öffnet. Hier können einzelne Funktionen deaktiviert werden.
 
==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.}}

Aktuelle Version vom 17. Mai 2023, 09:19 Uhr


Methoden der Liste

Interne Funktionen
OnListNew
OnResize
OnRefresh
OnShowColor(cFeld:String)
OnStable
OnCreate
OnClose
OnVisible
Tastatur-Funktionen
OnF1
OnF2
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;
Button F4 ausblenden
function OnListNew():string;
begin
    frmListe.cmdF4.Enabled := False;  
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;
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;
    
    //Je nach Priorität das Feld einfärben
    if (Upper(cFeld) = 'T_PRIO') then begin
        //Folgende Farb Konstanten stehen zur Verfügung
        //*_Comp repräsentieren jeweils die Komplementärfarben
        //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

        //Wenn die gewünschte Farbe fehlt, kann dies per Hexadezimal wert dargestellt werden

        //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;
Button Return und Doppelklick deaktivieren
function Before_OnReturn():string;
begin
    Meldung('nicht erlaubt');
    Result := 'Ready' 
end;

Weitere Funktionen

Weitere Funktionen.png Um die Menüpunkte unter Weitere Funktionen zu bearbeiten, kann auf diese Liste mit STRG + Key mouse5.gif geklickt werden, woraufhin sich ein Customize Menü öffnet. Hier können einzelne Funktionen deaktiviert werden.

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.