OBS/Makros und Scripting/Allgemeines/Übersicht Prozeduren: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 38: Zeile 38:
</syntaxhighlight>
</syntaxhighlight>
Zeigt nacheinander folgende Meldungen:<br />
Zeigt nacheinander folgende Meldungen:<br />
<gallery>
<gallery widths=300px>
File:ProcMeldungBsp1.jpg|Beispiel 1
File:ProcMeldungBsp1.jpg|Beispiel 1
File:ProcMeldungBsp2.jpg|Beispiel 2
File:ProcMeldungBsp2.jpg|Beispiel 2

Aktuelle Version vom 12. April 2019, 10:01 Uhr


Hier finden Sie nützliche Prozeduren, die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.

Liste der Prozeduren

MyFreeAndNil

Definition:

procedure MyFreeAndNil(var Obj);

Erklärung:
Schließt die Instanz eines Objektes und gibt den reservierten Arbeitsspeicher wieder frei. Die Objekt-Variable wird dabei auf nil (Nullwert in Delphi/Pascal) gesetzt.

Beispiel:

oBeispiel := TObject.Create();
MyFreeAndNil(oBeispiel);
//oBeispiel ist jetzt nil

Meldung

Definition:

procedure Meldung(const cMessage: String; cTitle: String = ''; lShowIcon: Boolean = True; lErrorIcon: Boolean = False);

Erklärung:
Zeigt eine Meldung auf dem Bildschirm an. Dies kann z. B. als Rückmeldung am Ende eines Makros eingebaut werden, um dem Benutzer mitzuteilen, dass das Ende erreicht ist.

HINWEIS: Der Parameter lShowIcon hate hier keine weitere Verwendung und wird intern immer als "True" behandelt.


Beispiel:

function StartProc():Boolean;
begin
    //Beispiel 1
    Meldung('Hallo Welt!');
    //Beispiel 2
    Meldung('Hallo Welt!','Grüße');
    /Beispiel 3
    Meldung('Ups, da ist etwas falsch gelaufen.','Fehler',True,True);
end;

Zeigt nacheinander folgende Meldungen:

FindFile

Definition:

procedure FindFile(RootFolder: string; Mask: string; var Erg_StringList : TStringList; Recurse: Boolean = True);

Erklärung:
Erstellt eine Liste Erg_StringList aus Dateipfaden, deren Dateiname und Typ der Maske Mask enspricht, ausgehend vom Verzeichnis-Pfad RootFolder. Wenn auch alle Unterverzeichnisse durchlaufen werden sollen, ist Recurse mit True ansonsten mit False zu übergeben.

HINWEIS: * ist ein Platzhalter für beliebige Zeichen. Um z. B. nur csv-Dateien zu selektieren, müsste die Maske den Wert "*.csv" erhalten. Für alle Dateien ist "*.*" zu verwenden.

siehe auch:


function StartProc():Boolean;
var oDateiListe : TStringList;
    i           : integer;
begin
    //Erstellt eine Liste, in der die Dateien des Verzeichnisses aufgelistet werden können
    oDateiListe := TStringList.Create();
    //Schreibt alle im Verzeichnis enthaltenen Dateien mit der Dateiendung "csv" in die Liste
    FindFile('c:\csvDateien\','*.csv',oDateiListe,False);
    //Geht die Liste durch und importiert eine Datei nach der anderen
    for i:=0 to oDateiListe.Count-1 do begin
        ImportiereDatei(oDateiListe[i]);
    end;
    MyFreeAndNil(oDateiListe);
end;