Entwickler-Ecke
Sonstiges (Delphi) - COM-Port mit Komponente
violinenspieler1000 - Mo 30.06.08 16:34
Titel: COM-Port mit Komponente
Hallo,
ich möchte meinen COM-Port ansteuern und habe dieses heruntergeladen:
http://sourceforge.net/project/showfiles.php?group_id=76595
Dort gibt es einen Ordner Source, ich habe alle .pas Dateien meinem Projekt hinzugefügt. Leider funktioniert das nicht, Delphi gibt die Fehlermeldung aus, das die Klasse TCOMCombobox nicht gefunden werden konnte.
Was kann ich dagegen machen, wo liegt wahrscheinlich der Fehler?
Danke für eure Hilfe,
Thomas
Xentar - Mo 30.06.08 17:38
Du musst die Komponenten in Delphi installieren, um diese auf dem Formular verwenden zu können.
Normalerweise sollte da eine Installationsanleitung beiliegen.
Welche Delphi Version verwendest du? In der kostenlosen Turbo Delphi kann man keine Komponenten installieren - diese musst du dann zur Laufzeit händisch erzeugen.
violinenspieler1000 - Mo 30.06.08 18:04
Ja, ich benutze nur die kostenlose Version von Delphi.
Wie kann man denn Komponenten "zur Laufzeit händisch erzeugen"?
Thomas
Yogu - Mo 30.06.08 19:09
Hallo,
wenn du dich nicht schon für deine Komponente entschieden hast, könntest du dir ja mal die Unit
comm_async [
http://www.delphi-forum.de/viewtopic.php?p=447813#447813] anschauen. Die brauchst du gar nicht zu registrieren, du kannst auch einfach ein Objekt der Klasse
TComm erstellen.
Owner kann in dem Fall
nil sein.
Grüße,
Yogu
violinenspieler1000 - Mo 30.06.08 19:25
Hallo, vielen Dank für den Tipp mit der Unit comm_async.
So werde ich das machen.
Noch zwei Fragen dazu:
" constructor Create(AOwner: TComponent); override;"
Was muss ich in AOwner reinschreiben, damit die Unit funktioniert?
Wie kann ich etwas empfangen? Da steht nur wie ich etwas senden kann...
Thomas
Yogu - Mo 30.06.08 19:37
violinenspieler1000 hat folgendes geschrieben: |
" constructor Create(AOwner: TComponent); override;"
Was muss ich in AOwner reinschreiben, damit die Unit funktioniert? |
Wie gesagt, wenn du "von Hand" - also während der Laufzeit - ein Comm-Objekt erstellst, kannst du
nil verwenden. Vorausgesetzt natürlich, du gibst das Objekt wieder frei.
violinenspieler1000 hat folgendes geschrieben: |
Wie kann ich etwas empfangen? Da steht nur wie ich etwas senden kann... |
Prinzipiell geht Empfangen so wie Senden:
Delphi-Quelltext
1: 2: 3: 4: 5:
| var X: Byte; begin Comm.Read(X, SizeOf(X)); ShowMessage('Empfangen: '+IntToStr(X)); end; |
Du kannst natürlich nicht nur einzelne Bytes empfangen - sogar Arrays sind möglich.
Besser ist es aber, wenn du auf einkommende Daten wartest. Das Ereignis
OnCharReceived wird ausgelöst, wenn die Gegenstelle etwas sendet.
Grüße,
Youg
violinenspieler1000 - Mo 30.06.08 21:53
Danke, für die schnellen Antworten.
Thomas
Yogu - Mo 30.06.08 22:04
violinenspieler1000 hat folgendes geschrieben: |
Aber:
Es muss doch so heißen
"Comm.Read(@X, SizeOf(X));", nicht "Comm.Read(X, SizeOf(X));", richtig? |
Oh, da hab ich wohl nicht richtig aufgepasst :oops:
Das kommt davon, wenn man frei Schnauze schreibt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!