Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Delphi 7]Błąd kompilacji przy obsłudze RS232

uczen_hall 14 Lip 2009 10:00 1287 2
  • #1 14 Lip 2009 10:00
    uczen_hall
    Poziom 9  

    Witam szanownych kolegów

    Na wstępie powiem, że jestem początkującym programistą Delphi (tyle co w szkole nauczyli podstaw), a z Rsem w ogóle nie miałem do czynienia.

    Chce napisać program który będzie zbierał sygnał od miernika (sygnał napięciowy 0-2V). Na początek poszukałem jakiś przykładowych programów do obsługi RSa, żeby w ogóle zapoznać się z tematem, ściągnąłem komponent Comport, zaistalowalem itp

    Oto cały kod który mam (podobno ma podstawowe funkcje):

    Code:

    unit nr2;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls, CPort;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        Edit1: TEdit;
        Memo1: TMemo;
        ComPort5: TComPort;
        StatusBar1: TStatusBar;
        CheckBox1: TCheckBox;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if ComPort5.Connected then
      begin
      ComPort5.Close;//zamknij
      Button1.Caption:='Otwórz';
      end else
        begin//jezeli nie jest to..
        ComPort5.Open; //otworz..
        Button1.Caption:='Zamknij';
        end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    ComPort5.ShowSetupDialog;
    end;

    procedure TForm1.Button3Click(Sender: TObject);
    var
    S: String;
    begin
    S:= Edit1.Text;//Pobieramy text z Edita do zmiennej
    // if CheckBox1.Checked then//jezeli checkbox jest zaznaczony
    S:= S+ #13+#10;//to wysylamy to na COM w nowej linii
    ComPort5.WriteStr(S);//tu wysylamy
    end;

    procedure TForm1.Button4Click(Sender: TObject);
    begin
    Memo1.Clear;//Czyscimy Memo
    Edit1.Clear;
    end;

    procedure TForm1.Button5Click(Sender: TObject);
    begin
    Application.Terminate;//Koniec programu
    end;


    procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
    var
    RevS: String;
    begin
    ComPort5.ReadStr(RevS, Count);//odczytujemy String z Portu
    Memo1.Text := Memo1.Text + Revs;//Wyswietlamy go w Memo
    end;


    end.



    Moj problem polega na tym ze ten program nie kompiluje się, a dokładniej błąd wyskakuje w procedurze (error:undeclared identifier 'ComPortRxChar'):

    Code:

    procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
    var
    RevS: String;
    begin
    ComPort5.ReadStr(RevS, Count);//odczytujemy String z Portu
    Memo1.Text := Memo1.Text + Revs;//Wyswietlamy go w Memo
    end;



    Nie wiem jak zadeklarować RxChar, czy w obiekcie Comport który wstawiłem na formę musze cos ustawić z tym RxChar czy problem tkwi gdzieś indziej? Czy ten podstawowy program w ogole zapewni mi odczyt sygnalu podawanego na pin gniazda?
    Na koniec dodaje cały program, moze sie przyda.
    Mam nadzieje ze ktoś mi pomoże :)
    Z góry dzięki

    0 2
    Załączniki:
  • Pomocny post
    #2 14 Lip 2009 11:02
    Stepel
    Poziom 20  

    Dodaj na górze w type pod procedurami przycisków to:

    Code:
    procedure ComPortRxChar(Sender : TObject; Count: Integer);

    0
  • #3 16 Lip 2009 12:38
    uczen_hall
    Poziom 9  

    Heh takie proste, a nie wpadlem

    Bardzo dziekuje :)

    0