AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Daten von DLL van Hauptanwendung schicken
Thema durchsuchen
Ansicht
Themen-Optionen

Daten von DLL van Hauptanwendung schicken

Ein Thema von js747a · begonnen am 8. Jul 2020 · letzter Beitrag vom 8. Jul 2020
Antwort Antwort
js747a

Registriert seit: 11. Aug 2008
Ort: Nord hessen
43 Beiträge
 
Delphi 7 Enterprise
 
#1

Daten von DLL van Hauptanwendung schicken

  Alt 8. Jul 2020, 15:53
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.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.443 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Daten von DLL van Hauptanwendung schicken

  Alt 8. Jul 2020, 16:47
Hallo, bitte formatiere deinen Code. gehe auf Bearbeiten dann hat es oben so ein Symbol mit dem römischen Helm
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Daten von DLL van Hauptanwendung schicken

  Alt 8. Jul 2020, 17:02
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.
Heiko

Geändert von hoika ( 8. Jul 2020 um 17:05 Uhr)
  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 05:26 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