Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form als Parameter einer function (in dll) übergeben (https://www.delphipraxis.net/5762-form-als-parameter-einer-function-dll-uebergeben.html)

kmueller 18. Jun 2003 13:14


Form als Parameter einer function (in dll) übergeben
 
Hallo zusammen !

Ich bin ein "NewBe" :oops: in Delphi 7. Ich habe folgendes Problem:
Ich will eine DLL erstellen, die eine Funktion beinhaltet, die z.B. den Form-Titel ändert, oder einen zusätzlichen Text hinein schreibt.

Ich habe nun das Problem, diese Funktion die Form mit zu geben.

Hier das Beispiel:

[im Hauptprogramm]
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
begin
  AendereCaption( frmMain );
end;
[in der DLL]
Delphi-Quellcode:
function AendereCaption( myForm: TForm ):Boolean;
begin
  with myForm do
  begin;
    caption:= 'test';
  end;
  result:=true;
end;
Wenn ich nun den Button1 clicke, erscheint eine EAccessViolation: "Zugriffsverletzung bei Adresse 0000000..."

Kann mir jemand helfen, dieses Problem zu lösen?

Danke schon mal im Voraus...

Klaus Müller
[EDIT=Luckie]Delphi-Tags eingefügt.[/EDIT]

jbg 18. Jun 2003 13:18

Hast du dir den Kommentar, den Delphi beim Erstellen einer DLL automatisch in die Projektdatei schreibt überhaupt schon einmal durchgelesen?

Stanlay Hanks 18. Jun 2003 13:27

Zitat:

Zitat von jbg
Hast du dir den Kommentar, den Delphi beim Erstellen einer DLL automatisch in die Projektdatei schreibt überhaupt schon einmal durchgelesen?


Ich hab das bis jetzt immer so verstanden, dass man aus DLLs keine String u.Ä. übergeben soll, oder?

Luckie 18. Jun 2003 13:29

Zum Nachlesen:
http://www.luckie-online.de/tutorial...l_tutorial.pdf

kmueller 18. Jun 2003 13:36

Zitat:

Zitat von jbg
Hast du dir den Kommentar, den Delphi beim Erstellen einer DLL automatisch in die Projektdatei schreibt überhaupt schon einmal durchgelesen?

Wenn Du auf das ShareMem anspielst ja. Die Beispiele, die ich angegeben habe, sind nur Schnipsel. Ich habe in der DLL schon anderen Functions und Procedures, die einwandfrei funktionieren (auch mit Rückgabe von Strings, etc.)

Gruß

Klaus Müller

CenBells 19. Jun 2003 12:45

Moin,

hast du deiner DLL auch das Application handle zugewiesen? Also in der DLL irgendwo Application.Handle := uebergebenesHandle; gesagt?
Das könnte so die Zugirffsverletzung unter Umständen beseitigen...

Gruß
Ken

kmueller 30. Jun 2003 06:26

Zitat:

Zitat von CenBells
Moin,

hast du deiner DLL auch das Application handle zugewiesen? Also in der DLL irgendwo Application.Handle := uebergebenesHandle; gesagt?
Das könnte so die Zugirffsverletzung unter Umständen beseitigen...

Gruß
Ken

:?: Wie geht das? Wie gesagt, ich bin neu bei Delphi.... :oops:

sakura 30. Jun 2003 06:44

Das Application.Handle muss in diesem Fall nicht geändert werden. Die Unit ShareMem muss in beiden, der DLL und dem Programm als erstes in der Uses Klausel auftreten. Es geht auch um die indirekte Übergabe von Strings. Bedenke Form.Caption ist auch ein String!

Wie hast Du die DLL-Funktion AendereCaption in das Programm importiert? Zeig uns mal den Code.

...:cat:...

kmueller 23. Sep 2003 13:45

Re: Form als Parameter einer function (in dll) übergeben
 
Was lange währt, wird endlich gut... :lol:

Ich habe Beispiel-Sourcen ins Netz gestellt:
:arrow: http://www.k-laus.de/delphi/formtest.zip

Schöne Grüße und schon mal Danke....

SirThornberry 23. Sep 2003 14:18

Re: Form als Parameter einer function (in dll) übergeben
 
umd dan gebrauch von sharemem zu vermeiden wäre es doch einfacher das handle des forms zu ubergeben und anhand des handles die caption zu ändern (setWindowText() oder so ähnlich)?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr.
Seite 1 von 2  1 2      

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