![]() |
Delphi-Version: XE
Objekte aus eingebundener DLL erzeugen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
entschuldigt, ich weiß auch nicht, wie ich das besser umschreiben soll. Ich möchte mit meiner Delphi 5 Objekte wie PENs einbinden/verwenden, was aber wohl erst mit Delphi >=2006 funktioniert. Das müßte ich dann wohl über eine DLL lösen, oder? Also in einer DLL "nach außen" erzeugbare Objekte programmieren. Jetzt hab ich bei uns an der Uni (da ist Delphi XE an den Terminals installiert) versucht, ein Projekt zu schreiben, das mir wenigstens schon mal auf der Form einen PEN erzeugen soll. Doch schon da scheitert es. Bei Graphics [bei den Variablen] wird anscheinend der 'Punkt' erwartet aber ';' gefunden. direkt darunter: => MyPen = ungültige Compileranweisung " " undeklarierter Bezeichner: PointF " " undeklarierter Bezeichner: CreateGraphics bei myPen: // FEHLER: Oprator oder Semikolon fehlt;; Record, object oder Klasse erforderlich (hab mal die gemeldeten Fehler in die Kommentare geschrieben)
Delphi-Quellcode:
Der Code stammt aus einem alten Scriptheft, das ich in den CIP-Räumen Bibliothek gefunden habe. (Delphi wird ja nicht mehr unterrichtet, sind ja alle auf JAVA aufgesprungen ...) Allerdings fehlt weitere Erklärung dazu. Anscheinend muß das mal so funktioniert haben.
procedure TForm1.Button1Click(Sender: TObject);
var g : Graphics; // . erwartet, aber ; gefunden. myPen : Pen; // MyPen = ungültige Compileranweisung Punkte : array[0..2] of PointF; // " " undeklarierter Bezeichner: PointF begin g := Self.CreateGraphics; // " " undeklarierter Bezeichner: CreateGraphics mypen := Pen.create(color.red, 15); // FEHLER: Oprator oder Semikolon fehlt;; Record, object oder Klasse erforderlich Punkte[0] := PointF.Create(100,50); Punkte[1] := PointF.Create(300,150); Punkte[2] := PointF.Create(100,250); myPen.startCap := LineCap.Round; myPen.endCap := LineCap.Round; myPen.linejoin := Linejoin.Round; g.Drawlines(mPen, punkte); end; mhh, was läuft denn da falsch? und: Ist das überhaupt der richtige Ansatz - per (dynamischer)DLL? und das ist das nächste Problem: Wie bekomme ich das dann, wenn/falls es im Formular funktionieren sollte in DLL Code (delphiXE)? ... sodaß ich in meinem Delphi 5 Programm die eingebundene DLL verwenden kann und dann sogar die Pen-Objekte dort in meinem D5 Programm erzeugen, löschen und verändern kann? Ganz herzlichen Dank schon mal. Im Anhang mein Versuchsprojekt im Unterordner DIE_DLL befindet sich der Code für die DLL, die später mal entstehen soll. |
AW: Objekte aus eingebundener DLL erzeugen
Bei Fehlern fängt man immer oben an.
Der Rest sind Folgefehler, bzw. deren Fehlermeldungen sind eventuell von vorherigen Fehlern beeinflusst/verfälscht. Pen und Graphics sind für Typen echt blöde Bezeichner (Typ-Namen), vorallem da oben , wie dir Code-Insight sagen sollte (Hint über "Graphics"), daß er dort die Unit graphics zuerst findet und der Compiler demnach auch einen Typ aus der Unit Graphics erwartet. (
Delphi-Quellcode:
)
Unit.Typ
Und vorallem, gibt es da überhaupt irgendwo Typen, die sich Graphics und Pen nennen? Abgesehn davon stimmt hier überhaupt nichts und ich empfehle dir dringend ein Delphi-Tutoruial zur Delphi-Syntax und über zu DLLs durchzulesen :!: *
Delphi-Quellcode:
Syntax ist falsch
Procedure MyPE(a, b);
* die Procedur wird in dieDLL.dpr auch garnicht exportiert * und weder in DLL_Call_Projekt, noch in Unit1, erkenne ich einen Import. Und dann noch: Klassen/Objektinstanzen darf man niemals zwischen DLL und EXE herumreichen. (nur Interfaces oder statische Typen, also Records) |
AW: Objekte aus eingebundener DLL erzeugen
Delphi Tutorials ...
gibt es da gute? Hab auch mal hier gefragt: ![]() mhh, ja, ich hab nachdem ich vergessen hatte, a und b in der Prozedur zu deklarieren sowieso erstmal versucht, das ganze besser erstmal in ner normalen FORM-Anwendung zu realisieren. Tja und auch das ging ja schief. Klar, die Fehlermeldungen hab ich versucht chronologisch zu ermitteln. Dabei wurden mir Dank Deinem Tip mit dem Mauszeiger klar, daß es auch in Delphi NAMESPACEs gibt. Mhh, ja, ob es in Graphics überhaupt PEN oder andere Typen gibt. Bin noch nicht fündig geworden (und bei meinem derzeitigen Delphi-Kenntnisstand muß das GAR nichts heißen :P) Hab den Code nur genauso in mein Projekt abgetippt. Schien mir auch nachvollziehbar. Ok, daß die Delphi-Codeverfolständigung jede info unterließ hab ich zwar gesehen, aber aufgrund meiner noch mangelnden Kenntnis zurückgestellt. mhh. Nunja, somit rückt das DLL Projekt schon mal in weitere Ferne. Gleichwertig ist nämlich, das wenigstens so scho mal zum Laufen zu bekommen. Danke Dir aber schon mal! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 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