Autor Beitrag
Mieps
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 14.03.17 10:34 
Hallo,

ich stehe gerade völlig auf dem Schlauch. Ich soll einen Code schreiben mit Hilfe externer Bibliotheken. Dazu existieren auch nur die Header und DLLs und an den externen Libraries ist keine Änderung möglich.

Fällt mir gerade etwas schwer, das verständlich zu erklären. Ich soll quasi eine Klasse schreiben, die auf Ereignisse in einer anderen Klasse reagiert.


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
type
  // Zwei Klassen aus einer von extern erhaltenen Unit mit zugehörigen DLLs:
  TKlasse1 = class (TExtern)
  protected
    function Execute (...)
  end;

  TKlasse2 = class (TExtern)
  protected
    procedure onEreignis (..)
  end;

  // Meine eigene Klasse
  TEigeneKlasse = class (...)
  private
    ...
  public
  end;


...

// Ein nicht kontrollierbares Ereignis löst onEreignis aus,
// Instanz von Klasse1 wird erzeugt und an externe Bibliothek weiter gegegeben. 
procedure TKlasse2.onEreignis();
var  InstanzKlasse1 : TKlasse1;
begin
  InstanzKlasse1 := TKlasse1.Create;
  irgendwieExternRegistrieren (InstanzKlasse1);
  // keine Ahnung, was genau in der DLL passiert
end;

// Execute wird bei Ereignissen durch den fremden Code aufgerufen
function TKlasse1.Execute (..)
begin
  // Hier soll ich auf die übergabenen Parameter reagieren und Ereignisse meiner eigenen Klasse aufrufenn, 
        // wie TEigeneKlasse.onBlabla. Darauf habe ich natürlich keinen Zugriff. Ich habe auch keine Instanz meiner eigenen Klasse zur Verfügung

end;

initialization
  ExterneVariable := TKlasse2.Create(); // ExterneVariable ist eine globale Variable aus einer externen Unit



In TKlasse1.Execute ist der eigentlich wichtige Code für mich. Es werden diverse Parameter übergeben. Meine eigene Klasse sollte diverse onIrgendwas-Ereignisse/Properties beinhalten, die darauf aufgerufen werden. Dass das so nicht geht, ist mir klar. Nur...wie könnte ich das irgendwie anders hinbekommen?

Könnte man irgendwie nach einer Instanz der eigenen Klasse suchen? Oder irgendwo Klasse1 referenzieren, etc? *schlauch*

Danke für jeden Tipp!

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 14.03.17 13:15 
- Nachträglich durch die Entwickler-Ecke gelöscht -