Zur Vereinfachung meines Quelltextes versuch ich alles mögliche in Klassen und Units zu kapseln.
Ich such nach einer Lösung, in welcher ich meiner Klasse im Constructor lediglich ein Form sowie ein OpenGlContext übergeben kann und später auf diese zugreifen kann, im speziellen : wie kann ich die Ereignisse des Formulars abfragen in meiner Klasse...
Ich möchte vermeiden das ich ins Formular auf den der OGL Context sich befindet, auch nur irgendwas in die Ereignisse geschrieben wird, da ich relativ schnell die Übersicht verliere

Hauptsächlich geht es mir um die Events KeyDown, KeyUp, MouseMove...
Mein bisheriger Ansatz scheitert...vermutlich da meine Klasse nicht weis welches Form sie benutzen soll
Code: Alles auswählen
interface
uses
Classes, SysUtils, unit2, OpenGLContext,Dialogs, Forms;
type
{ tOglCam }
tOglCam = Class
fForm : tForm;
private
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
public
constructor create(KameraMatrix : tMat44; Form:TForm; OpenGLControl : TOpenGLControl; Modus : Integer);
destructor free;
end;
implementation
{ tOglCam }
procedure tOglCam.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
);
begin
if Key = 87 then showMessage('dfff'); //w Taste --->passiert nix
end;
procedure tOglCam.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
end;
constructor tOglCam.create(KameraMatrix : tMat44; Form:TForm; OpenGLControl : TOpenGLControl; Modus : Integer);
begin
//Modus 1 FPS Kamera Steuerung
fForm := Form;
end;
destructor tOglCam.free;
begin
//was auch immer da rein soll bis jetzt
end;
end.