AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Form als Parameter einer function (in dll) übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Form als Parameter einer function (in dll) übergeben

Ein Thema von kmueller · begonnen am 18. Jun 2003 · letzter Beitrag vom 30. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
kmueller

Registriert seit: 18. Jun 2003
Ort: Beilngries / Obb.
6 Beiträge
 
Delphi 7 Enterprise
 
#1

Form als Parameter einer function (in dll) übergeben

  Alt 18. Jun 2003, 13:14
Hallo zusammen !

Ich bin ein "NewBe" 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]
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2
  Alt 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?
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#3
  Alt 18. Jun 2003, 13:27
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?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 18. Jun 2003, 13:29
Zum Nachlesen:
http://www.luckie-online.de/tutorial...l_tutorial.pdf
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
kmueller

Registriert seit: 18. Jun 2003
Ort: Beilngries / Obb.
6 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 18. Jun 2003, 13:36
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
  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
 
#6
  Alt 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
  Mit Zitat antworten Zitat
kmueller

Registriert seit: 18. Jun 2003
Ort: Beilngries / Obb.
6 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 30. Jun 2003, 06:26
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....
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 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.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
kmueller

Registriert seit: 18. Jun 2003
Ort: Beilngries / Obb.
6 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Form als Parameter einer function (in dll) übergeben

  Alt 23. Sep 2003, 13:45
Was lange währt, wird endlich gut...

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

Schöne Grüße und schon mal Danke....
  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: Form als Parameter einer function (in dll) übergeben

  Alt 23. Sep 2003, 14:18
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)?!
Jens
  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 17:10 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