Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism Serielle Schnittstelle mit Turbo-Delphi 2006.net (https://www.delphipraxis.net/143374-serielle-schnittstelle-mit-turbo-delphi-2006-net.html)

lord-schaschlik 14. Nov 2009 14:45


Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Hab mich bemüht über die Suchfunktion eine Lösung für mein Problem zu finden, Leider vergebens. Ich möchte gerne Daten von der seriellen Schnittstelle einlesen und beispielsweise in ein Array speichern. Bin jetzt auf schon auf die Komponente TCOMPORT gestoßen. Leider lassen sich wohl keine Komponenten unter Turbo Delphi installieren. Gibt es eine Klasse oder ähnliches welche in einbinden kann und dies dann funktioniert? Hab leider keine andere Delphi Version zur Verfügung und würde auch gerne bei dieser bleiben.

Vielen Dank

Gruß

turboPASCAL 14. Nov 2009 14:51

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Binde doch diese Komponente dynamisch ein.
Hier im Forum suchenKomponente dynamisch

lord-schaschlik 14. Nov 2009 15:19

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Hab jetzt ein paar beiträge zum thema dynamische komponenten gelesen, aber werd daraus nicht wirklich schlau. Mein Delphi erfahrung ist auch noch nicht all zu groß. Beim Borland Delphi brauche ich laut installationsanleitung von TCOMPORT die dateien DsgnCPort6.dpk und CPortLib6.dpk. Ich geh davon aus dass ich das richtig interpretiere wenn ich annehme delphi 6 steht für 2006, deswegen die dateien mit der endung 6. Wie geht es jetzt aber weiter?

himitsu 14. Nov 2009 15:34

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Ansonsten kann man den COM-Port auch via FileStreams oder anderen Dateifunktionen ansteuern.

Dateiname = "COMx"
x = Portnummer

da werden dann die Standardeinstellungen des Ports genommen, aber über dieentsprechenden WinAPIs läßt sich die Datenrate und anderes auch noch ändern.


Delphi 6 ist Delphi 6 und nicht 2006

1 2 3 4 5 6 7 8 2005 2006/Turbo 2007 2009 2010

lord-schaschlik 14. Nov 2009 16:11

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Ok Delphi 6 ist nicht Delphi 2006, hab jetzt mal nach filestreams gesucht aber hat mir jetzt nicht wirklich weiter geholfen. Wär nett wenn jemand vielleicht mal ein paar erklärende zeilen schreiben würd wie ich das mit der seriellen schnittstelle unter turbo delphi 2006. Im TCOMPORT ordner hab ich leider keine Datei für delphi 2006 gefunden. Nur Lib dateien von 1-14 und dann für 2007. Schonmal vielen Dank

isilive 14. Nov 2009 17:07

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Servus Lord,

wenn du .pas Dateien von der Komponente hast kannst du sie:

- dynamisch einbinden:
Die Komponente muss von Delphi gefunden werden -> Pfad in Tools / Optionen / Bibliothek eintragen
'uses Komponentenname'
Dann die Komponente dynamisch verwenden: meist mit .create und am Schluss .free

- in die IDE einbinden.
Dazu gibt es unter TurboDelphi einen Trick mit der dclusr.dpk
Man trägt die Komponente dort ein und compiliert die dclusr.dpk, so kriegt man die Komponente in die IDE.
Mehr will ich an dieser Stelle nicht verraten, aber eine Google Suche hilft dir hier weiter.

Wie es mit .dpk Dateien ausschaut weiss ich jetzt nicht auswendig, aber vielleicht kann jemand was dazu posten?!

TurboMartin 14. Nov 2009 17:33

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Wieso so kompliziert alles mit Fremdkomponenten? Das .Net-Framework besitzt eine eigene Klasse dafür: System.IO.Ports.SerialPort :stupid:

Kurzes C# Beispiel:
Code:
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
port.Open();
port.Write("Hello World");
port.Close();

Bernhard Geyer 14. Nov 2009 17:40

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Falls du wirklich die .NET-Vesion von Delphi hast, so such dir was anderes. Delphi.NET ist ein Todes Pferd und jede Quellzeile dort sinnlos!

lord-schaschlik 14. Nov 2009 18:07

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Muss diese version leider verwenden, da wir sie in der schule benutzen. Mit der dynamischen komponenten muss ich mich noch einmal beschäfigen. Klingt aber nicht so einfach. Soweit ich das verstanden habe, ist die serielle schnittstelle erst ab #net 2.0 dabei und turbo delphi 2006#net arbeitet mit #1.1.
Bin jetzt am versuchen http://www.mikrocontroller.net/topic/54682 so auf die schnitstelle zuzugreifen. Port.dll hab ich auch runtergeladen. Hab nur ein Problem das er bei der Funktion zum öffnen des Port

"Function OPENCOM(S:PCHAR):Integer; stdcall; external 'Port.dll';"

diesen fehler bringt "E2410 Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig"

Muss mal schauen ob ich die funktion in eine prozedur umschreiben kann.
Dachte nicht das es so ein aufwand ist ne schnittstelle zum laufen zu bringen.

GRUß

lord-schaschlik 14. Nov 2009 19:51

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Ist zum verzweifeln. So viele pas dateien, wer soll den da durchblicken. Gibt es nicht einfach eine klasse für turbo delphi 2006#net die ich über copy paste in mein Programm einfügen kann und über die funktionen darauf zugreife. Hab mich jetzt so lange damit beschäftigt, kann doch nicht so schwierig sein.

Phoenix 14. Nov 2009 23:08

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Wie schon bemerkt wurde: System.IO.Ports gibt es erst seit .NET 2.0.

Als alternative schau mal hier: http://www.devhood.com/tutorials/tut...utorial_id=320

Ich rate Euch aber den Lehrer mal zu fragen, wieso er Euch mit einem Produkt arbeiten lässt, das schon längst eingestellt wurde und von dem es bereits einen technologisch um Lichtjahre fortgeschrittenen Nachfolger gibt (Delphi Prism)? Entweder solltet ihr natives Delphi für Win32 machen oder, wenn schon .NET, dann bitte irgendwas das mindestens .NET 2.0 ist. Aktuell ist 3.5 und im nächsten Jahr kommt 4.0 raus. Das wäre genauso, wie wenn sie Euch noch die alte Rechtschreibung beibringen würden oder in Mathe noch mit D-Mark (oder noch schlimmer: Ostmark) gerechnet würde.

Und dabei dann bitte schöne Grüße von mir ausrichten ;-)

isilive 15. Nov 2009 03:37

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Hier ist eine Komponente die sich TComPort nennt. Sie hat gute Kritiken auf SourceForge - vielleicht kannst du sie verwenden?!

lord-schaschlik 15. Nov 2009 09:29

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Da man mit Turbo Delphi keine Komponenten installieren kann und ich mit dynamischen einbinden von Komponenten nicht weiter komme, scheidet TCOMPORT wohl leider aus. Ich wüsste auch nicht welche pas-Dateien ich für das dynamische einbinden brauch geschweige denn wie man das macht. Die oben genannte MSCOMM haben wir mal in ein VB-Projekt verwendet, hat auch gut funktioniert. Nützt mir aber unter Delphi wohl nichts. Bei allein bedauern, die Delphi version werde ich wohl nicht wechseln können. Gestern stundenlang nur beiträge gelesen, aber weiter bin ich nicht. Sorry das ich damit immer noch nerve.

lord-schaschlik 17. Nov 2009 15:51

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
push.. Vielleicht hat noch jemand ne idee

Phoenix 18. Nov 2009 09:54

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Zitat:

Zitat von lord-schaschlik
Da man mit Turbo Delphi keine Komponenten installieren kann und ich mit dynamischen einbinden von Komponenten nicht weiter komme, scheidet TCOMPORT wohl leider aus.

Da wir hier über Delphi.NET reden scheidet TComPort sowieso aus. TComPort ist eine NATIVE Komponente, die nichts mit .NET zu tun hat.
Zitat:

Zitat von lord-schaschlik
Ich wüsste auch nicht welche pas-Dateien ich für das dynamische einbinden brauch geschweige denn wie man das macht.

Theoretisch würden die Sourcen von TComPort reichen. Du erzeugst einfach das Objekt und setzt alle Eigenschaften im Code die Du sonst im Objektinspektor setzen würdest:
Delphi-Quellcode:
var myPort: TComPort;
begin
  myPort := TComPort.Create();
  myPort.Property := irgendwas...
Das ist aber wie gesagt natives Delphi und kein .NET, hilft Dir also nichts.

Zitat:

Zitat von lord-schaschlik
Die oben genannte MSCOMM haben wir mal in ein VB-Projekt verwendet, hat auch gut funktioniert. Nützt mir aber unter Delphi wohl nichts.

Wieso nicht? Du hast Delphi.NET, und COM-Objekte in .NET sind sooooo einfach zu benutzen. Du musst nur im Projekt eine Referenz auf MsComm hinzufügen und kannst das Objekt genauso ansprechen wie Du es unter VB auch gemacht hast. Damit hast Du ja wie Du gesagt hast schon Erfahrung.

lord-schaschlik 18. Nov 2009 15:30

Re: Serielle Schnittstelle mit Turbo-Delphi 2006.net
 
Ich habe mittlerweile verstanden wieso ich keine win32 Komponenten unter #net verwenden kann. Wie du beschrieben hast soll ich auf die #net komponente für die serielle schnittstelle zugreifen. Aber die gibts wie mehrmals erwähnt wurde unter #net 1.1 nicht.

Ich glaube mittlerweile das es unter #net 1.1 nicht möglich ist eine serielle schnittstelle zum laufen zu bringen. Die VB Komponente habe ich damals unter VB 6 benutzt welche auch noch nie #net basiert war.

Unter Visual Express 9 läufts soweit, kein problem.. aber ich würde so gerne auf meine vorhandene delphi version setzen

in dem beitrag gings ums gleiche.. ohne lösung
http://www.delphipraxis.net/internal...+schnittstelle


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 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