Autor Beitrag
violinenspieler1000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Mo 30.06.08 16:34 
Hallo,

ich möchte meinen COM-Port ansteuern und habe dieses heruntergeladen: sourceforge.net/proj...s.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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: 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
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 30.06.08 18:26 
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 30.06.08 19:37 
user profile iconviolinenspieler1000 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.

user profile iconviolinenspieler1000 hat folgendes geschrieben:
Wie kann ich etwas empfangen? Da steht nur wie ich etwas senden kann...

Prinzipiell geht Empfangen so wie Senden:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Mo 30.06.08 21:53 
Danke, für die schnellen Antworten.


Thomas


Zuletzt bearbeitet von violinenspieler1000 am Mo 30.06.08 22:17, insgesamt 2-mal bearbeitet
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 30.06.08 22:04 
user profile iconviolinenspieler1000 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.