OBS/Adminhilfe/Pax Ereignisbehandlung: Unterschied zwischen den Versionen

Aus OBS Wiki
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.
(Die Seite wurde neu angelegt: „== Anleitung für die Konvertierung der Ereignisbehandlung eines Scripts auf PAX == Einleitung ---- Die Ereignisbehandlung (Event-Handling) in Pax-Scripten unte…“)
 
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ZugriffOBS}}
== Anleitung für die Konvertierung der Ereignisbehandlung eines Scripts auf PAX ==
== Anleitung für die Konvertierung der Ereignisbehandlung eines Scripts auf PAX ==




Einleitung
=== 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.
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.


Zeile 41: Zeile 42:
* Nach dem Create des Formulars den EventHandler erzeugen und die Methode 'Dispose' zuweisen:
* Nach dem Create des Formulars den EventHandler erzeugen und die Methode 'Dispose' zuweisen:


  oForm := TForm.Create(Application);
  oForm := TxForm.Create(Application);
   
   
  [...]
  [...]

Aktuelle Version vom 5. September 2016, 14:35 Uhr

Dies ist eine zugriffsgeschützte Seite.


Admin-Hilfe

OBS-Administration / Installation
kundenspezifische Anpassungen
OBS Protokolle
Shop-Administration

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 := TxForm.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;