Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dynamisches Menü und Dll Funktion (https://www.delphipraxis.net/15324-dynamisches-menue-und-dll-funktion.html)

Synonym 26. Jan 2004 15:12


Dynamisches Menü und Dll Funktion
 
Ok,

folgendes. Ich habe eine dll mit ein paar Funktionen. Die DLL soll in mein Programm eingebunden werden und im Programm ein neuer Menüeintrag erstellt werden.

Soweit noch alles einfach...

Jetzt muss die Funktion aber auch irgendwie dynamisch angesprochen werden, wie bekomm ich das hin?

Synonym

P.S. Die tuts hab ich schon gelesen, leider nichts richtiges gefunden, oder einfach nur nicht verstanden :-)

Tonic1024 26. Jan 2004 15:24

Re: Dynamisches Menü und Dll Funktion
 
Hi...

Wenn du die Tuts gelesen hast, biste bestimmt auf das hier gestoßen:
Delphi-Quellcode:
TGetString = function():string;

function getDatenText(DBCon: string): string;
// DBcon -> Name der DLL
var dtext: TGetString;
    Handle: THandle;
    filepath: String;
begin
  filepath:=ExtractFilePath(ParamStr(0))+DBCon;
  Handle:=LoadLibrary(@filepath[1]);
  if Handle <> 0 then begin
    @dtext := GetProcAddress(Handle, 'getDatasetText'); // getDatasetText -> Name der Funktion
    if @dtext <> nil then begin
      result:=dtext();
    end;
    FreeLibrary(Handle);
  end;
end;
Damit hast du dir eine Funktion geschaffen, die die eine feste Funktion aus einer variablen DLL holt... Den Funktionsnamen kannste natürlich auch noch variabel machen!

BTW:
Du solltest nicht unbedingt Strings benutzen, wenn du mit DLL's arbeitest. Bei mir war es aber notwendig - Tschuldigung 8)

Synonym 26. Jan 2004 15:35

Re: Dynamisches Menü und Dll Funktion
 
ok, soweit verstanden, jetzt kann ich aber dem menüitem beim oncklick nur eine procedure zuweisen...

und jetzt?

synonym

Tonic1024 26. Jan 2004 15:40

Re: Dynamisches Menü und Dll Funktion
 
Nochmal...?!?

Du sagtest doch du hast in der DLL eine Funktion?

Du hast da zwei Möglichkeiten...

Einmal geht der Code oben natürlich auch mit prozeduren. Brauchst nur umschreiben - kommt drauf an was du damit machen willst.

Zum anderen kannst du natürlich, falls due Rückgabewerte aus der DLL brauchst, onClick mit einer Prozedur verbinden, aus der du dann die Funktion aufrufst... sollte kein problem sein, oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 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