![]() |
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:
[in der DLL]
procedure TfrmMain.Button1Click(Sender: TObject);
begin AendereCaption( frmMain ); end;
Delphi-Quellcode:
Wenn ich nun den Button1 clicke, erscheint eine EAccessViolation: "Zugriffsverletzung bei Adresse 0000000..."
function AendereCaption( myForm: TForm ):Boolean;
begin with myForm do begin; caption:= 'test'; end; result:=true; end; Kann mir jemand helfen, dieses Problem zu lösen? Danke schon mal im Voraus... Klaus Müller [EDIT=Luckie]Delphi-Tags eingefügt.[/EDIT] |
Hast du dir den Kommentar, den Delphi beim Erstellen einer DLL automatisch in die Projektdatei schreibt überhaupt schon einmal durchgelesen?
|
Zitat:
Ich hab das bis jetzt immer so verstanden, dass man aus DLLs keine String u.Ä. übergeben soll, oder? |
|
Zitat:
Gruß Klaus Müller |
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 |
Zitat:
|
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:... |
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: ![]() Schöne Grüße und schon mal Danke.... |
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 11:59 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