Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by messie,
17. Jul 2008
Logisch, denn Du liest ja 20 Zeichen in die Variable ein und fragst dann, ob die Variable GLEICH der 3 Zeichen ist. Kann also nicht gehen.
Eher mit Pos:if Pos('MV'+#20,strx) = 1 then
begin
//aha, Du bist am Beginn Deiner Sequenz
end;
//andere Variante
if Pos('MV'+#20,strx) > 0 then //ist die 3er-Squenz in der Variable enthalten?
begin
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by messie,
17. Jul 2008
Zusätzlich hilft noch delete(). Aber ich würde auch prüfen, ob Du auch genug Zeichen im Puffer hast. Gibt es variable Längen (z.B. 5m/s ist kürzer als 111 m/s, füllt Du das mit Nullen auf?). Wenn Du am Ende der Sequenz vom µC ein #13 schickst, kannst Du das Ende erkennen (und damit ob Du eine vollständige Sequenz hast), das ist eins der üblichen Verfahren.
Grüße, Messie
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by messie,
17. Jul 2008
Scheint an Deiner Übertragunsgsstruktur zu liegen. Du musst Anfang und Ende finden. Was schickst Du denn für eine Abschlusssequenz, wenn die Übertragung des Prozessors beendet ist? CR/LF oder so?
Grüße, Messie
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by messie,
16. Jul 2008
Ja, Du kannst mit einem Heartbeat arbeiten. Lass Deinen Prozessor im Leerlauf ein Zeichen senden (z.B. jede sec), was sonst nicht vorkommt. Das Programm muss dann unterscheiden, ob das jetzt das Heartbeat-Signal oder das Start/Stopp-Signal ist und entsprechend handeln.
Wenn das Heartbeat-Signal kommt, setzt Du eine Variable auf Null. Dann nimmst Du einen Timer, der die Variable inkrementiert....
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by messie,
16. Jul 2008
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
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by messie,
15. Jul 2008
Im Prinzip nicht, wenn die Ports vernünftig vom Treiber angemeldet sind.
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...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by messie,
15. Jul 2008
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...