AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Von Com-Port zum WinAmp-Player
Thema durchsuchen
Ansicht
Themen-Optionen

Von Com-Port zum WinAmp-Player

Ein Thema von Islay · begonnen am 30. Aug 2005 · letzter Beitrag vom 9. Sep 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#11

Re: Von Com-Port zum WinAmp-Player

  Alt 7. Sep 2005, 21:23
Zitat von BenjaminH:
Zitat von Chimaira:
Dies liegt daran, dass port keine Globale Variable ist, sondern in machwas deklariert wurde, und somit it machwas2 keine gültigkeit hat.
Das war auch mein erster Verdacht, aber:
procedure machwas2(port: TSerialPortNG);
oh, oops wer lesen kann, is klar im vorteil
Tja, dann wären mehr infos oder Source echt hilfreich. (Wobei ich ersteres bevorzugen würde )
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Islay

Registriert seit: 30. Aug 2005
8 Beiträge
 
#12

Re: Von Com-Port zum WinAmp-Player

  Alt 7. Sep 2005, 21:47
Also, ich habe halt völlig ahnungslos den Code im Internet gesucht, der mir an einfachsten erschien.

Also habe ich von hier Klick mich! den Code genommen.

Dann noch diese Komponente installiert und soweit bin ich jetzt...

Ich suche halt nur die einfachste Möglichkeit den COM-Port abzufragen. An dem kommt alle 500ms eine Zahl zwischen 0-16 an, dahinter vielleicht noch was zum erkennen, dass die Nachricht zu Ende ist.

Diese Zahl hätte ich danach ganz gerne in einer Variable, mehr nicht... bin für alles offen


Gruß Denis
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#13

Re: Von Com-Port zum WinAmp-Player

  Alt 7. Sep 2005, 22:16
Ich denke, wir haben uns falsch verstanden
Relevante Informationen für das derzeitige Problem wären bspw. wo der Fehler auftritt, und welcher Bezeichner unbekannt ist.
Wenn ich mir den Code im DF angucke, denke ich, dass es sein könnte (ich bin vorsichtiger mit meinen Fehleranalysen geworden ^^), dass nicht Port selbst, sondern die Paramterübergabe das Problem darstellt.
Aber am besten einfach mal den Code posten, wo der Fehler auftritt
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Islay

Registriert seit: 30. Aug 2005
8 Beiträge
 
#14

Re: Von Com-Port zum WinAmp-Player

  Alt 8. Sep 2005, 16:41
Hallo,

also der Fehler tritt hier auf:
if 1 = 1 then machwas2(port: TSerialPortNG);

Das hat mir ein Feund so empfohlen, im Originaltext steht nur
machwas2(port: TSerialPortNG);

Ruft aber halt beides die selbe Fehlermeldung auf, obwohl es ja nur aus einem angeblich funktionierenden Quellcode kopiert wurde...

Gibt es vielleicht Probleme, weil ich noch Delphi 5 nutze?

Gruß Denis
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#15

Re: Von Com-Port zum WinAmp-Player

  Alt 8. Sep 2005, 19:30
Hi Denis

Zitat von Islay:
Delphi-Quellcode:
also der Fehler tritt hier auf:
 if 1 = 1 then machwas2(port: TSerialPortNG);
//Das hat mir ein Feund so empfohlen, im Originaltext steht nur
machwas2(port: TSerialPortNG);
Gibt es vielleicht Probleme, weil ich noch Delphi 5 nutze?
Delphi5 ist hier definitiv nicht das Problem, es fehlt einfach nur an den Grundlagen
Wenn du eine Prozedur/Funktion deklarierst, schreibst du das mit procedure Name(Parameter: Typ; Parameter: Typ);
Hingegen beim Aufrufen einer Prozedur/Funktion müssen nur mehr die Parameter übergeben werden: Name(Variable, Variable);
Damit brauchst du nur noch aufzurufen:
machwas2(port); Natürlich musst du port irgendwo als Variable vom Typ TSerialPortNG definiert haben
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Islay

Registriert seit: 30. Aug 2005
8 Beiträge
 
#16

Re: Von Com-Port zum WinAmp-Player

  Alt 9. Sep 2005, 16:27
Klar liegt der Fehler bei mir, hät ich nicht anders erwartet, Programme sind schließlich perfekt

Also, ich kann deinen Erläuterungen folgen, muss sie aber falsch verstanden haben, denn ich bekomme kein Ergebnis zustande.

Nochmal mein kompletter Code, könnt mir vielleicht jemand mit Rotstift editieren was falsch ist, die Fehlermeldung ist immer noch die gleiche in Zeile 41 "undefinierter Bezeichner"

Tut mir Leid das ich mich so blöd anstelle...

Gruß Denis

Delphi-Quellcode:
unit rs232;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  SerialNG, StdCtrls;

type
  TForm1 = class(TForm)
    SerialPortNG1: TSerialPortNG;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Label2Click(Sender: TObject);
    procedure machwas2(port: TSerialPortNG);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  port: TSerialPortNG;

implementation

{$R *.DFM}

procedure machwas;    

begin
  // schnittstelle aufmachen
  port := TSerialPortNG.Create(nil); // objekt kerstellen
  try    
    port.CommPort := 'COM1'; // comport einstellen
    port.BaudRate := 9600; // baud-rate einstellen
    port.Active := true; // schnittstelle öffnen

    machwas2(port:);

  finally
    // schnittstelle zumachen
    port.Active := false;    
    freeandnil(port);
  end;
end;

 procedure machwas2(port: TSerialPortNG);
var
  text: String;
begin
  text := 'Hallo';
  port.SendString(text + #11);


end;


end.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#17

Re: Von Com-Port zum WinAmp-Player

  Alt 9. Sep 2005, 16:47
Einmal das:
Zitat von Islay:
machwas2(port:);
und zum anderen, das mir grad durch zufall aufgefallen ist:
Du hast keine forward-deklaration deiner Funktionen, soll heißen:
Der Compiler kennt die funktion erst, ab wann sie deklariert wurde.
soll heißen:
Delphi-Quellcode:
procedure machwas;
//code....
//Hier ist aber machwas2 noch unbekannt

procedure machwas2(port: TSerialPortNG); //erst ab hier ist sie dem compiler bekannt
Was man dagegen tun kann?
2 Möglichkeiten
  1. die machwas2-prozedur über die machwas-prozedur schieben, ist allerdings nicht die allerbeste möglichkeit
  2. den Funktionskopf im Interface-Teil der Unit bereits deklarieren ->
    Delphi-Quellcode:
    var
      Form1: TForm1;
      port: TSerialPortNG;

    procedure machwas;
    procedure machwas2(port: TSerailPortNG);

    implementation
    Damit kennt der Compiler nun die Funktionen immer und sollte damit das Problem lösen

PS:
Zitat von Islay:
Programme sind schließlich perfekt
na ja, fast
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz