
Ich habe doch nun schon mehrfach Beispiele gemacht. Ich verstehe jetzt deine Probleme nicht so richtig.
Also, noch mal zum Mitdenken -
1. Du tippst in dein Eingabefeld "addstring huhuhu" ein und klickst auf den Button. In dessen "OnClick"-Event steht folgendes:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var cmd, param: string; begin // kein Leerzeichen gefunden if(pos(#32,Edit1.Text) = 0) then exit;
// Befehl und Parameter holen cmd := copy(Edit1.Text,1,pos(#32,Edit1.Text)-1); param := copy(Edit1.Text,pos(#32,Edit1.Text)+1,length(Edit1.Text));
// ZUR KONTROLLE FÜR DEN PHARAO --> ShowMessage('Befehl = ' + cmd + #13#10 + 'Parameter = ' + param); // <--
// Befehl mit (fiktiver) Liste vergleichen // die Liste ist ein String-Array fester Länge for i := 1 to length(MeineBefehle) do if(CompareText(cmd,MeineBefehle[i]) = 0) then // mach jetzt was end; |
Das Problem ist, dass du ab hier weitermachen musst. Mein Vorschlag wäre, du schreibst ein Record und kein String-Array, wie ich eben sagte:
Quelltext
1: 2: 3: 4: 5: 6:
| type MeineBefehle = packed record CmdName : string; CmdEntry : pointer; end; |
"CmdName" wäre in dem Fall der Name des Befehls, mit dem du die Eingabe vergleichst (also das besagte "addstring"), und "CmdEntry" könnte den Pointer auf die dazupassende Prozedur enthalten.
Auf die Weise kannst du mehrere verschiedene Prozeduren/Funktionen schreiben und -abhängig vom eingetippten Befehl- ausführen lassen.
Jetzt kommt das dicke
Aber -
Das ist nur Theorie. So was habe ich selbst noch nicht ausprobiert.
PS:
Bleiben wir also noch bei der einfachen Variante. Du müsstest eine Reihe if-then-Abfragen durchführen und den Parameter an die jeweilige Prozedur weiterleiten:
Quelltext
1: 2:
| if(CompareText(cmd,'addstring') = 0) then AddToLog(param) else if(CompareText(cmd,'blabla') = 0) then MachwasAnderes(param); |
Ich glaube, das wäre erst mal die Variante, die du probieren könntest. Die Funktion selbst müsste dann den übergebenen Parameter auf Gültigkeit prüfen. Aber -wie gesagt!- das hängt von dem ab, was
du ganz speziell machen willst. Da nutzen meine Beispiele nicht viel. Höchstens:
Quelltext
1: 2: 3: 4: 5: 6:
| procedure AddToLog(const param: string); begin // Datei öffnen und den Parameter reinschreiben // ganz egal, ob´s nur einer ist ... oder mehrere { ... } end; |