![]() |
Re: DLL und Create
Ich habe nur die Klasse TFuileStream als Beispiel benutzt, um dir zu zeigen, wie man mit Klassen arbeitet und entsprechenden Objekte erzeugt. Das geht natürlich entsprechend mit deiner TBass-Dingsbums Klasse. ;)
|
Re: DLL und Create
Zitat:
Habe mich schon gefragt wo der zusammenhang sein soll. gruss |
Re: DLL und Create
Das initialisieren und die ausführung aus der Echse funktionieren jetzt.
Allerdings fehlt mir ein Handle was ich nicht so einfach übergeben kann. zwei fragen.. 1. TBASSVis.Create(AOwner: TComponent); Initialisieren tue ich es über die funktion von außen.
Delphi-Quellcode:
function BASS_WINAMPVIS_INIT: boolean; stdcall;
begin try BassVisMain1 := TBassVis.Create(nil); finally BassVisMain1.Free end; result := True; end;
Delphi-Quellcode:
Eigentlich müßte ja TBassVis.Create(nil); = TBassVis.Create(self); sein
BassVisMain1 : TBASSVis;
Geht aber nur wenn das Projekt als Echse ausgelegt ist. was ist Self ? kann ich da nicht das Handle der ausführenden anwendung übergeben? 2.Das gleiche hier! Wie komme ich an das Handle aus der Fremdanwendung und was ist das für eins? (AOwner as TWinControl).Handle; Scheint das Handle des Controls sein welches die Aktion ausführt beispiel das vom Start Button oder? gruss Emil |
Re: DLL und Create
Hallo Emil,
mit Self erhältst du innerhalb einer Methode eines Objektes eine Referenz auf die Objektinstanz. Das ist manchmal ganz schön um Namenskonflikte aufzulösen oder um bei der Erzeugung von child components sich selbst als Owner übergeben zu können. Self ist genau der gleiche Wert den du erhältst, wenn du das Ergebnis eines Konstruktors an eine Variable zuweist. Über die Variable kannst du von außen auf das Objekt zugreifen, über Self von innen. Freundliche Grüße |
Re: DLL und Create
Zitat:
Du kennst das ja. Habe jetzt aus BassVis eine EXE erstellt. Alles aber auch alles funktioniert einwandfrei. OpenGL Plugins usw... Jetzt muss ich das teil wieder in die DLL einbauen und schon gibts probleme weil sich da keine Form befindet. Und die funktionen von außerhalb aufgerufen werden müssen. Kann ja keine komplette classe/Object an die DLL übergeben. Bekomme langsam die Krise... Gruss Emil |
Re: DLL und Create
Delphi-Quellcode:
Self ist hier das TForm Objekt, also Form1. Meist lässt man es aber weg, es sei denn man will deutlich machen, dass man mit einer Objekt-Instanz des Objektes selber arbeitet.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Self.Caption := 'Kuckuck'; end; |
Re: DLL und Create
Zitat:
Is quasi das gleiche wie in VB 'Me' me.caption = "Mein Window-Caption Name" Jup jetzt klappt das ganze schon besser. Danke für die ausführliche beschreibung .. Gruss Emil |
Re: DLL und Create
In VB heißt das me? Nein, ist das süß. :love: :mrgreen:
PS: Der Vollständigkeithalber, in C++ heißt es this. |
Re: DLL und Create
Zitat:
gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz