OBS/Makros und Scripting/Anwendungsbereiche/Customize Listen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
(13 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Interne | !Interne Funktionen | ||
|- | |- | ||
|OnListNew | |OnListNew | ||
|- | |- | ||
|OnResize | |OnResize | ||
|- | |- | ||
|OnRefresh | |OnRefresh | ||
|- | |- | ||
| | |OnShowColor(cFeld:String) | ||
|- | |- | ||
| | | OnStable | ||
|- | |- | ||
| | |OnCreate | ||
|- | |- | ||
| | |OnClose | ||
|- | |- | ||
| || | |OnVisible | ||
|} | |||
{| class="wikitable" | |||
|- | |- | ||
! Tastatur-Funktionen | |||
|- | |- | ||
| | | OnF1 | ||
|- | |- | ||
| | | OnF2 | ||
|- | |- | ||
| | | OnF3 | ||
|- | |- | ||
| | | OnF4 | ||
|- | |- | ||
| | | OnF5 | ||
|- | |- | ||
| | | OnF6 | ||
|- | |- | ||
| || OnESC | | OnF7 | ||
|- | |||
| OnF8 | |||
|- | |||
| OnF9 | |||
|- | |||
| OnF10 | |||
|- | |||
| OnF11 | |||
|- | |||
| OnF12 | |||
|- | |||
| OnReturn | |||
|- | |||
| OnInsert | |||
|- | |||
| OnDelete | |||
|- | |||
| OnESC | |||
|} | |} | ||
Zeile 56: | Zeile 76: | ||
Meldung('Test'); | Meldung('Test'); | ||
end; | end; | ||
</syntaxhighlight> | |||
}} | |||
{{Vorlage:KlapptextFAQ | |||
|liste_Disable | |||
|Button F4 ausblenden | |||
|<syntaxhighlight lang="Delphi"> | |||
function OnListNew():string; | |||
begin | |||
frmListe.cmdF4.Enabled := False; | |||
end; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
Zeile 88: | Zeile 119: | ||
}} | }} | ||
{{Vorlage:KlapptextFAQ | {{Vorlage:KlapptextFAQ | ||
|liste_F12_Auswahl | |liste_F12_Auswahl | ||
Zeile 139: | Zeile 169: | ||
</syntaxhighlight> | </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== | ==Besonderheiten== |
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;
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
Um die Menüpunkte unter Weitere Funktionen zu bearbeiten, kann auf diese Liste mit STRG + 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.