![]() |
TComPort - TXD
Hallo,
ich hoffe ich hab das richtige Unterforum für die Frage gefunden. Ich hab mir das 'Lernpaket MSR mit dem PC' von Franzis gekauft und direkt ein paar Schaltungen gesteckt und die beiliegenden Programme dafür benutzt. Diese sind allerdings in Visual Basic programmiert und der Quellcode liegt bei. Da ich mich aber nicht in VB einarbeiten will, weil ich mich mit Delphi inzwischen gut zurecht komme wollte ich die Programme einfach analog in Delphi übertragen. Dafür habe ich mir TComPort installiert(das 10er Package). Damit hab ich es jetzt auch schon geschaft über den DTR und RTS Pin eine LED zum leuchten zu bekommen. Im Lernpaketprogramm geht das auch über TXD, leider hab ich das noch nicht hinbekommen weil ich keinen Befehl für hab. Bei -> ![]() Muss ich evtl. ein anderes package installieren? Hoffe mir kann jemand helfen :D PS: Ich habe relativ ausführlich mein Problem geschildert, da ich mich nur Hobbymäßig damit beschäftige kenn ich mich nich bei allem so super aus und hab zu vielem nur Halbwissen, deswegen fände ich es nett, wenn auch ihr eure Antworten so formulieren könntet, dass auch Halblaien sie verstehen. ;) |
Re: TComPort - TXD
.. aber unter dem angegeben Link ist doch ein komplettes TComPort zu finden?
Wo ist denn da das Problem? Grüße Klaus |
Re: TComPort - TXD
Hab das mal kopiert und eingebunden, da funktioniert schon direkt das Port öffnen nicht -> "Project LED.exe raised exception class EAccessVilation with message 'access violation at address 0044D8C2 in module 'LED.exe'. Read of address 00000004'. Process stopped. use Step or Run to continue.
Edit: Habs mir mal angeguckt, das liegt glaub irgendwie daran, dass mit ComPort.Open, PortHandle verglichen wird, ohne dass PortHandle je einen Wert zugewiesen bekommen hat. Ich weiß aber auch nicht wo und wie ich das machen muss. |
Re: TComPort - TXD
.. mit welcher Delphi-Version arbeitest Du denn?
Grüße Klaus |
Re: TComPort - TXD
Delphi7
|
Re: TComPort - TXD
Hatte mal nen ähnliches Problem...
Das hier war meine Lösung: ![]() Hoffe das hilft auch dir! Gruß vom LDer. |
Re: TComPort - TXD
Da ist nur leider keine procedure zum ansprechen von TXD enthalten. Und um mir die selber zu schreiben blick ich da noch nicht genug durch.
EDIT: Ok habs mit der TComPort von der Inetseite hinbekommen. Eine Sache interessiert mich noch: der Befehl
Delphi-Quellcode:
funktioniert im gegensatz zum Befehl:
ComPort := TComPort.Create(2);
Delphi-Quellcode:
Obwohl der 1. Befehl auch nur folgendes hervorruft:
ComPort := TComPort.OpenCom('COM2');
Delphi-Quellcode:
Weil mit dem Create kann ich nur COM1 und 2 ansteuern, mit OpenCom jeden beliebigen. Gibt es eine Möglichkeit irgendwie direkt OpenCom aufzurufen? Natürlich könnte ich auch einfach AutoInit mit mehr Zahlen erweitern, aber das is irgend wie ne unsaubere Lösung.
constructor TComport.Create (AutoInit : Integer);
begin case AutoInit of 1 : OpenCOM('COM1'); 2 : OpenCOM('COM2'); end; {CASE} end; |
Re: TComPort - TXD
Guten Morgen,
so wäre der Befehl zum Öffnen richtig:
Delphi-Quellcode:
Den kannst Du aber solange nicht aufrufen wie die
ComPort.OpenCom('COM2');
Instanz ComPort noch nicht erzeugt wurde. Rein theoretisch sollte es auch so gehen (ohne am Quelltext von uComPort.pas etwas zu ändern):
Delphi-Quellcode:
Grüße
ComPort := TComPort.Create(5);
ComPort.OpenCom('COM5'); Klaus |
Re: TComPort - TXD
Zitat:
vielleicht suchst du das Falsche - TxD kann man nicht auf 0 oder 1 setzen, sondern über TxD kann man nur Zeichen senden. Ich kenne TComport nicht, weil ich eigene Komponenten für COM schreibe, aber es muss da eine Methode "Senden" geben oder 2 davon, eine für ein char und eine für Strings. Solange man nichts sendet, ist TxD immer 1. Gruss Reinhard |
Re: TComPort - TXD
Habs hinbekommen, in der verlinkten Komponente ist so eine Methode enthalten.
Trial and Error ist eine legitime Lernmethode, oder so ähnlich hat nen Lehrer von mir immer gesagt xD Das Problem dabei ist leider nur, dass ich dadurch oft nur sehr grob weiß was ich mache obwohl ichs eigentlich gern richtig verstehen würde :/ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14: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-2025 by Thomas Breitkreuz