AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Variablenaustausch zwischen Form und DLL-Projektdatei
Thema durchsuchen
Ansicht
Themen-Optionen

Variablenaustausch zwischen Form und DLL-Projektdatei

Ein Thema von TheMiller · begonnen am 6. Mär 2007 · letzter Beitrag vom 6. Mär 2007
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Variablenaustausch zwischen Form und DLL-Projektdatei

  Alt 6. Mär 2007, 19:26
Hallo,

ich hab wieder ein kleines Problem. Und zwar habe ich eine DLL, dieser dann auch spezielle Funktionen und Prozeduren eingetragen und dann ein Formular hinzugefügt. Also ein Form in einer DLL. Jetzt muss ich eine Variable zwischen DLL und der Form übergeben.

Dazu habe ich eine property gesetzt

Delphi-Quellcode:
  
private
  hn: String;
  procedure SetHn(const Value: String);
public
  property Handyname: String read hn write SetHn;
  function GetHandyname: string;
end;

procedure TMyDLL.SetHn(const Value: String);
begin
  hn:=Value;
end;
Das klappt auch einwandfrei. Doch wie kann ich auf die Funktion SetHn zugreifen, wenn ich in der Form bin (die ja am selben Projekt drin ist)?

Das war's schon

Danke!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Variablenaustausch zwischen Form und DLL-Projektdatei

  Alt 6. Mär 2007, 20:27
Ist die Form in der Dll oder im Programm, welches die Dll verwenden soll?
Wie hast du die Prozeduren/Funktionen importiert?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: Variablenaustausch zwischen Form und DLL-Projektdatei

  Alt 6. Mär 2007, 20:36
Die Form ist IN der DLL und soll auf eine Funktion der DLL zugreifen. Muss ich die DLL dann als solche ganz normal statisch einbinden (die Form würde sich praktisch selbst statisch laden), oder kann ich da einen Aufruf wie TForm1.Get.... machen?

Ich weis, es ist eine dumme Frage, aber ich stehe grad auf dem Schlauch... Sorry.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Variablenaustausch zwischen Form und DLL-Projektdatei

  Alt 6. Mär 2007, 20:40
Wenn sich die Form in der Dll befindet kannst du von ihr aus auf die Funktionen der Dll genauso zugreifen, wie in einem normalen Projekt. Du mußt nur dafür sorgen, daß die Form überhaupt erzeugt und wieder freigegeben wird.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

Re: Variablenaustausch zwischen Form und DLL-Projektdatei

  Alt 6. Mär 2007, 20:46
Hm, also die Form und alles funktioniert ja. Sie wird erzeugt und freigegeben. Alles ok. Nur wenn ich von TForm1 auf eine Funktion der DLL zugreifen möchte, dann muss ich ja vor dem ".Funktionsname" auch angeben, wo sich die Funktion befindet. Sowas wie

TForm1.GetHandyname nur, dass sich die Funktion in der DLL-"unit" befindet, sprich in der DPR. Für den Code der DLL gibt's ja keine Unit, sonst würde ich die einbinden.
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Variablenaustausch zwischen Form und DLL-Projektdatei

  Alt 6. Mär 2007, 20:53
Hi!

Ist das "Zurückgreifen" auf die DLL Funktion wirklich notwendig? Ich würde die Funktionen in der *.DPR Datei lediglich dem Hauptprogramm, welches die DLL aufruft freigeben. Alle anderen Funktionen würde ich in eine andere Unit einbetten, bzw. in die Unit, mit der auch deine Form arbeitet. So kannst du dann auf diese Funktionen zugreifen. Ob das, was du vorhast funktioniert, kann ich leider nicht sagen - könnte mir jedoch vorstellen, das es nicht vorgesehen ist, da in der DPR eigentlich die Daten hin sollen, die das DLL-Aufrufende Programm sehen soll, oder?

Wenn du dann Daten dem Hauptprogramm mitteilen willst, funktionieren CallBack-Funktionen ausgezeichnet.


Bis denn,
Christian!
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

Re: Variablenaustausch zwischen Form und DLL-Projektdatei

  Alt 6. Mär 2007, 21:00
Boah ich Depp

ich will also eine Variable von einem Hauptprogramm an eine Form in einer DLL übergeben. Soweit so gut. Meine DLL empfängt ja die Variable und soll sie an die Form weiterleiten (ich habe einfach einen Zeiger und dessen Länge übergeben). So... wieso mache ich es dann nicht einfach so, dass die Variable, die ja in DLLForm1 liegen soll, auch von dieser durch den Zeiger entgegengenommen wird und nicht von der DLL selbst.

Ist ja praktisch so, als will ich Sandra was sagen und sage zu Susi: "Hey Susi, sag Sandra mal, ich hab hunger" - So, Sandra würde von Susi gesagt bekommen: "Hey Sandra, ich soll dir sagen, er hat einen Brummer."

So kann ich also gleich der Form (Sandra) das sagen, was ich ihr sagen will, ohne die DLL (Susi) mit reinzuziehen und erreiche dabei noch, dass die Info korrekt ankommt...

Wieso komme ich erst jetzt drauf? 11 Std programmieren sind glaub ich ein bissl zu hart...
  Mit Zitat antworten Zitat
Antwort Antwort


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:22 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