![]() |
Verbindung mit COM-Schnittstelle aufbauen über TComPort
Hallo,
ich werd einfach nicht schlauer aus den Forenbeiträgen. Kann mir jmd helfen? Ich bin eher Anfäger in Delphi 2007. Ich habe bereits ein Programm und will jetzt noch eine Verbindung über COM dazu bauen. Ich bin schon soweit, dass ich die TComPort Componente installiert hab und jetzt 6 neue visualle ...ähm Dinge in meiner Tool-Palette habe. ich will dass ich auswählen kann zwischen den COM Verbindungen mit der COMCombobox nur leider zeigt die mir nur 5mal "COM" an und nicht "COM1, COM2,...) wie kann ich das ändern. DAs ist mein verwendeter code dafür: Das ganze ist in der On Create Form drin, hat da jmd ne bessere Idee. Das Problem ist ja wenn sich unter dem Programm noch einen neue Schnittstelle auftut dann muss ich das ganze Programm erst neu starten bis die Combobox aktualisiert wird.
Delphi-Quellcode:
Dann weiß ich nicht mehr weiter. Weil wenn ich einen BUtton mir "..connected:=true" setzte stürzt das Programm ab.
EnumComPorts(COMComboBox1.Items);
// do some stuff if COMComboBox1.ItemIndex > -1 then ComPort1.Port := COMComboBox1.Items[COMComboBox1.ItemIndex]; Ich will, was mir sehr gut gefallen hat in dem Forum, ein OnRX damit er die Eingänge überwacht und dann das SIgnal abfängt. Ich will senden und empfangen. Empfnagen werde ich eine Stringkette mit 22strings und zwar alle 0,5sec und senden will ich einen einfachen Befehl zB. ein byte mit 0b11001010 so in etwa. Wie mach ich das am besten? Vielen Dank schon mal |
Re: Verbindung mit COM-Schlittstelle aufbauen über TComPort
Was Du da machst, sieht nach einer nicht existierenden Verbindung aus.
Du platzierst ein TComport (ComPort1) auf dem Form, ebenso die TComComboBox. In den Properties der ComComboBox1 stellst Du als ComPort "ComPort1" ein. Dann die Property "ComProperty" au cpPort setzen. Zur Laufzeit wird dann ComPort1 genau der Port zugewiesen, den Du aus der Liste ausgewählt hast. Das musst Du also nicht extra machen wie von Dir beschrieben. Ich weiß noch nicht, was passiert wenn der Port beim Auswählen offen ist, weil ich das nicht verwende. Wenn Du vorher ein ComPort1.Close ausführst, ist das sicher. Nach der Auswahl kannst Du dann ComPort1.Open probieren. Am Besten Du machst das bis dahin und testest an zwei Ports oder Rechnern mit Hyperterminal. Grüße, Messie |
Re: Verbindung mit COM-Schlittstelle aufbauen über TComPort
Ich komm einfach nicht weiter. Ich füge die Elemente (COMCombobox,...) und kann dann aber nur zeischen (COM, COM und COM3) wählen obwohl ich COM3, COM4 und COM 6 habe, laut HTerm. COM4 und COM6 sind Bluetooth module, aber das kann ja keinen Unterschied machen oder??
|
Re: Verbindung mit COM-Schlittstelle aufbauen über TComPort
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich häng' mal mein Beispiel an: Du solltest die Ports alle sehen, wenn sie vernünftig beim System angemeldet sind. Siehst Du sie da auch nicht, riecht es eher nach einem Treiberproblem... Grüße, Messie Edit: Du solltest den Tippfehler in Deinem Titel verbessern, damit man den Thread später auch mit der Suche finden kann. |
Re: Verbindung mit COM-Schlittstelle aufbauen über TComPort
Zeig doch bitte mal den Teil, wo du die Verbindung aufbaust.
Zitat:
So kannst du den Com-Port öffnen:
Delphi-Quellcode:
ComPort.Port := 'COM1'; // hier der Port als String ComPort.BaudRate := br19200; ComPort.DataBits := dbSeven; ComPort.StopBits := sbOneStopBit; ComPort.Parity.Bits := prEven; ComPort.Buffer.InputSize := 1024; // musst du anpassen ComPort.Buffer.OutputSize := 1024; // musst du anpassen try ComPort.Open; except ShowMessage('Fehler: COM-Port konnte nicht geöffnet werden...'); // Fehlermeldung end; |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
@messie
bei deinem Programm hab ich den se´lben fehler, dass die beiden BluetoothCOMports nicht richtig angezeigt werden. allerdings hab ich bei Hterm da keine Probleme es richtig anzuzeigen und im Gerätemanager ist auch alles okay und die funktionieren ja auch alle einwandfrei. Und, ja mein Zeitplan ist echt knapp, aber daran kann ich leider nichts ändern. VIELEN DANK an alle Erste Erfolge stellen sich ein. Die Verbindung steht aber die Anzeige der Comports spinnt trotzdem. Komisch. GIbts bei Async Pro auch so ne Combobox zu anziegen der Ports, dann könnt ichs mit dem mal versuchen, aber ich find keine passende visualle Konponente dafür. |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Klick' mal doppelt zur Entwurfszeit auf Deinen TComport. Da wird ja das Setup-Fenster für den Port geöffnet und die zur Verfügung stehenden Ports angezeigt. Siehst Du dort auch nur verstümmelte Einträge?
Grüße, Messie |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Versuch doch mal eine normale ComboBox zu nehmen. EnumComPorts gibt ja TStrings zurück, das kannst du einer normalen ComboBox zuweisen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ComPorts: TStrings; begin ComPorts := TStringlist.Create; try EnumComPorts(ComPorts); except ShowMessage('Fehler: Keine Com-Ports gefunden...'); end; ComboBox1.Items := ComPorts; ComPorts.Free; end; |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Vielen Dank Leute es ist überall das selbe die BT COM's werden nicht richtig angezeigt.
Aber ich hab jetzt einfach eine normale COmbobox genommen und die richtigen COMnamen eingetragen und diese dann zum verbidungsaufbau genützt und sieh da es funzt. Nun kommen wir zu den weiteren Problemen, die sich ergeben haben bei dem Programmcode..
Delphi-Quellcode:
..wird mir beim ausführen als erstes diese Nachricht "Erste Gelegenheit für Exception bei $776742EB. Exception-Klasse EComPort mit Meldung 'Unable to open com port (win error code: 121)'. Prozess Geschwindigkeitsmessung.exe (8848)" mit einer Programmunterbrechung angezeigt und wenn ich dann auf "fortsetzen" klicke kommt est die Fehlermeldung " ShowMessage('Fehler: Bluetooth-COM-Port konnte nicht geöffnet werden...'); // Fehlermeldung" die ich in except eingetragen habe zum vorschein.
procedure TForm3.Button2Click(Sender: TObject); // ComPort2 ist schon richtig
begin ComPort2.Port := Combobox2.text; // das ist COM4 ComPort2.BaudRate := br19200; ComPort2.DataBits := dbSeven; ComPort2.StopBits := sbOneStopBit; ComPort2.Parity.Bits := prEven; ComPort2.Buffer.InputSize := 1024; ComPort2.Buffer.OutputSize := 1024; try ComPort2.Open; except ShowMessage('Fehler: Bluetooth-COM-Port konnte nicht geöffnet werden...'); // Fehlermeldung end; was mache ich falsch?? |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Hast Du jetzt ein Problem mit dem ComPort.Open oder mit der Meldung?
Die Exception-Meldungen sind aus dem Online-Debugger. Da wird das Programm beim Fehler angehalten, erst wenn Du fortsetzt, wird Deine Fehlermeldung angezeigt. Wenn Du das mit der exe probierst, verhält sich das anders. Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 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