![]() |
Daten von DLL van Hauptanwendung schicken
In meinem Programm geschrieben mit Delphi 7 kommuiziere ich mit einer Modellbahnzentrale(IntellyBox)
Unter Delphi 7 geht alles wunderbar. In Delphi 10.3 geht es nicht. Immer wieder sind die Daten von der IntellyBox nicht in ordnung. Ich möchte in delphi 7 die Unit zur Communication mit der Zentrale in eine DLL auslagern und dann in meinem Programm in Delphi 10.3 gebrauchen. Ich habe erstmal ein Kleines Programm zum Testen geschrieben. ***DLL unit DLLUnit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TDllForm = class(TForm) Button1: TButton; Label1: TLabel; private { Private declarations } public { Public declarations } end; type String30= String[30]; var DllForm: TDllForm; function ZeigeForm(S : String30): Boolean; export; procedure ZeigeTextInDLL(S : String30); export; implementation {$R *.DFM} function ZeigeForm(S : String30): Boolean; export; Begin DllForm:=TDllForm.Create(NIL); DllForm.Show; DllForm.Label1.Caption := S; End; procedure ZeigeTextInDLL(S : String30); export; Begin DllForm.Label1.Caption := S; End; end. ***ZeigeForm offnet die DLLForm ***ZeigeTextInDLL zeigt den Text von der Hauptanwendung in Label1 der DllForm ***Hauptanwendung unit HAUPTUnit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type String30= String[30]; THauptForm = class(TForm) Button1: TButton; Label1: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var HauptForm: THauptForm; implementation function ZeigeForm(S : String30): Boolean; external 'PROJECTDLL.DLL'; procedure ZeigeTextInDLL (S : String30); external 'PROJECTDLL.DLL'; {$R *.DFM} procedure THauptForm.Button1Click(Sender: TObject); var x : Boolean; begin x := ZeigeForm(Label1.Caption); end; procedure THauptForm.Button2Click(Sender: TObject); begin ZeigeTextInDLL ('Text Von HauptForm Button2'); end; end. ***Button1Click ofnnet die DLLForm ***Button2Click Zeigt den Text ('Text Von HauptForm Button2') an in DLLForm Ich kann Daten von dem Hauptprogramm in der DLLForm anzeigen. (THauptForm.Button2Click) Aber ich bekomme es nicht hin Daten von der DLLForm an das Hauptprogramm zu schicken. |
AW: Daten von DLL van Hauptanwendung schicken
Hallo, bitte formatiere deinen Code. gehe auf Bearbeiten dann hat es oben so ein Symbol mit dem römischen Helm
|
AW: Daten von DLL van Hauptanwendung schicken
Hallo,
ersetze mal String30 durch AnsiString oder UnicodeString oder ShortString, wobei String[30] ShortString sein müsste; Das Problem ist, dass Strings unter neueren Delphi-Versionen anders gehandhabt wird wie unter D7. Einfach mal diversen Stringtypen hantieren. Im Zweifel PAnsiChar benutzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 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 by Thomas Breitkreuz