AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL und Komponenten erzeugen

Ein Thema von tobster · begonnen am 25. Mai 2004 · letzter Beitrag vom 29. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#1

DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 12:15
Ich hab mir was zusammengebastelt, das verschiedene DLLs dynamisch laden kann. In diesen DLLs sollen verschiedene Aufgaben erfüllt werden, von denen das 'Mutterprogramm' keine Ahnung haben braucht. Das stellt nur über eine Weboberfläche die Aus-/Eingabe zur Verfügung. 8)

Jetzt ist aber mein Problem, das ich in der DLL diverse Komponenten erzeugen muss, damit diese Ihre Funktion erledigen können. Mir ist schon klar, wie man diese zur Laufzeit erzeugt, aber im Moment hänge ich daran, wie man innerhalb einer DLL ein Ereignis erstellt und es auch funktionsfähig der Kompo zuweisen kann.

Any Hints?
Ciao
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 12:28
du musst eine Procedure vom eventtype definieren und das event dann zuweisen. Wenn du beispielsweise das OnTimer-Event verwenden musst du erst eine Procedure vom Typ TNotifyevent definieren (weil OnTimer von diesem Typ ist)
Delphi-Quellcode:
[...]
private
  procedure FOnTimerProc(Sender: TObject);
[...]

procedure TYourComponent.FOnTimerProc(Sender: TObject);
begin
  //do something
end;
[...]
und dann musst du dem timer die procedure noch zuweisen
Delphi-Quellcode:
[...]
  YourTimer.OnTimer := FOnTimerProc;
[...]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#3

Re: DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 12:46
Zitat von SirThornberry:
Delphi-Quellcode:
[...]
private
  procedure FOnTimerProc(Sender: TObject);
[...]
Hmmm, hast du alles gelesen? Ich habe KEINEN Private-Bereich, weil DLL!
Ciao
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#4

Re: DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 13:28
Zitat von tobster:
Hmmm, hast du alles gelesen? Ich habe KEINEN Private-Bereich, weil DLL!
Hallo,

hast du in deiner DLL denn alles in einer UNIT? Du benötigst auch keinen private bereich. Du benötigst nur ein Objekt, welches die Methode bereitstellt und dann kannst du die dem eigentlichen objekt zuweisen.... Geht auch ohne zusatz-Objekt. Dazu musst du hier mal suchen..

Gruß
Ken
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#5

Re: DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 13:39
JA, ist alles in einer Datei, was bei einer DLL aber eigentlich nicht verwunderbar sein sollte.

Delphi-Quellcode:
procedure TimerEvent(Sender: TObject);
begin
 ;
end;

procedure InitModule;
begin
 img_mem := TImage.Create(nil);
 img_cpu := TImage.Create(nil);
 tmr_sec := TTimer.Create(nil);
 with tmr_sec do begin
  Interval := 1000;
  OnTimer := TimerEvent; //Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
 end;
end;
Wenn ich es einfach so mache, wie ich es gewohnt bin (Ich bin eigentlich kein Nubbie!), dann bringt er eben o.g. Fehler, und ich weiss nicht warum!
Ciao
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 13:41
Hi,

ein Methodenzeiger (also eine Methode einer Klasse) führt immer den versteckten Parameter SELF mit. Das ist bei normalen (regulären) Prozeduren nicht der Fall, also sind die beiden Prozeduren nicht kompatibel.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#7

Re: DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 13:48
Zitat von mirage228:
ein Methodenzeiger (also eine Methode einer Klasse) führt immer den versteckten Parameter SELF mit. Das ist bei normalen (regulären) Prozeduren nicht der Fall, also sind die beiden Prozeduren nicht kompatibel.
Das hilft mir jetzt aber irgendwie auch nicht direkt weiter, oder? Ich meine, was kann man dagegen tun? Was muss ich machen, damit es funktioniert?
Ciao
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#8

Re: DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 15:02
Delphi-Quellcode:
procedure TMyObjekt.TimerEvent(Sender: TObject);
begin
 
end;

{...}
myObjekt := TMyObjekt.Create;
{...}

procedure InitModule;
begin
{...}
  tmr_sec.OnTimer := myObjekt.TimerEvent;
end;
Gruß,
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#9

Re: DLL und Komponenten erzeugen

  Alt 25. Mai 2004, 19:51
Also ich verstehe ja, wo ihr alle hinwollt, aber ich habe keinerlei Objekte/Klassen da... Daher weiss ich nicht, woher ich in diesem Beispiel dieses MyObjekt hernehmen soll.

---Edit---
Da das hier wohl keine Früchte zu tragen scheint, werd ich wohl den steinigeren Weg gehen und mein gesamtes Plugin-System umbauen müssen. Hab mir das Tut von sakura durchgelesen, und da es da mit einer Klasse gelöst wird, wird mir wohl nichts anderes über bleiben, es dahingehend umzubauen...

Trotzdem besten Dank an Alle, die versucht haben, mir zu helfen.
Ciao
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: DLL und Komponenten erzeugen

  Alt 29. Mai 2004, 14:05
Du kannst doch einfach ein Hilfsobject bauen was wirklich nur zur ontimerbehandlung da ist.
also
Delphi-Quellcode:
[...]
type
  THilfsobj = class
  public
    class procedure OnTimerProc(Sender: TObject);
  end;
[...]
class procedure THilfsobj.OnTimerProc(Sender: TObject);
begin
  //do something on timer
end;
[...]
timer1.OnTimer := THilfsobj.OnTimerProc;
Durch das führende "class" brauchst du keine Instanz der Klasse zu erstellen um sie zu verwenden
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz