OBS/Adminhilfe/Pax Ereignisbehandlung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Für diese Seite wurde eine Zugriffsbeschränkung eingerichtet. Falls du diese Nachricht siehst, bist du nicht berechtigt, diese Seite einzusehen.
Ecks (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ecks (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
== Anleitung für die Konvertierung der Ereignisbehandlung eines Scripts auf PAX == | == Anleitung für die Konvertierung der Ereignisbehandlung eines Scripts auf PAX == | ||
Version vom 8. August 2014, 14:56 Uhr
Anleitung für die Konvertierung der Ereignisbehandlung eines Scripts auf PAX
Einleitung
Die Ereignisbehandlung (Event-Handling) in Pax-Scripten unterscheidet sich deutlich zu der in Dream-Scripten. Daher ist eine automatisierte Konvertierung leider nicht möglich und die manuelle Anpassung ist erforderlich. Diese Schritt-für-Schritt-Anleitung dient dazu als Leitfaden.
- Eine neue Klasse oberhalb des Scripts definieren die jede von einem Event aufgerufene Methode definiert:
type TEventHandler = class procedure Dispose(Sender: TObject; var Action: TCloseAction); <-- muss IMMER vorhanden sein! procedure EventHandlerX(Sender: TObject); <-- beliebiger Event-Handler procedure EventHandlerY(Sender: TObject); <-- beliebiger Event-Handler procedure KeyEventHandler(Sender: TObject; var Key: Word; Shift: TShiftState); <-- beliebiger Event-Handler end;
Achtung: Eine Klasse darf nur einmal in einem Script vorkommen, also bei zusätzlichen Auswahldialogen muss ein anderer Name als TEventHandler genutzt werden!
- Eine neue globale Variable einbauen: 'EventHandler: TEventHandler;'.
- Alle Event-Handler-Methoden der Klasse zuordnen: 'procedure TEventHandler.EventF2Handler(Sender: TObject);' statt 'procedure EventF2Handler(Sender: TObject);'.
- Direktaufrufe von Event-Handlern ersetzen: 'EventChkHandler(oForm);' wird zu 'EventHandler.EventChkHandler(oForm);'.
- Methode 'Dispose' einfügen:
procedure TEventHandler.Dispose(Sender: TObject; var Action: TCloseAction); begin Free; end;
- Event-Zuweisungen ersetzen:
DC.CreateEvent(chkbx_Seiten ,'OnClick' ,'EventChkHandler',True);
wird zu
chkbx_Seiten.OnClick := EventHandler.EventChkHandler;
- Nach dem Create des Formulars den EventHandler erzeugen und die Methode 'Dispose' zuweisen:
oForm := TForm.Create(Application); [...] EventHandler := TEventHandler.Create(); oForm.OnClose := EventHandler.Dispose;
- Wenn nicht vorhanden Constraints einbauen (direkt vor ShowModal wenn Breite und Höhe bereits gesetzt sind):
oForm.Constraints.MinHeight := oForm.Height; oForm.Constraints.MaxHeight := oForm.Height; oForm.Constraints.MinWidth := oForm.Width; oForm.Constraints.MaxWidth := oForm.Width;