AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Kann SendString von serialng nur bedingt aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

Kann SendString von serialng nur bedingt aufrufen

Ein Thema von Gummikuh · begonnen am 29. Aug 2011 · letzter Beitrag vom 30. Aug 2011
 
Gummikuh

Registriert seit: 20. Apr 2011
2 Beiträge
 
Delphi 7 Personal
 
#1

Kann SendString von serialng nur bedingt aufrufen

  Alt 29. Aug 2011, 17:42
Hallo zusammen,

wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht...
Eigentlich funktioniert es mit dem senden recht gut,
aber nur, wenn der Aufruf in der Prozedur "SendBtnClick" erfolgt.

Versuche ich eine neue Prozedur zu schreiben, die ich innerhalb SendBtnClick aufrufe,
beschimpft mich Delphi mit diversen Fehlermeldungen.

Ich wollte etwas in der art wie:

Procedure dummi(Messagetype, Zeilennummer, Text : string);
var SendStr : string;
begin
sendstr := char(01)+Messagetype+char(02)+Zeilennummer+Text+ch ar(03)+char(13);
SerialPortNG1.SendString(SendStr);
end;

Und dann innerhalb von
procedure TForm1.SendBtnClick(Sender: TObject);
var...
begin
diverser code
dummi('V','1','Testtext');
end;

Das allerdings bringt nur folgende Fehlermeldung(en):
[Fehler] batch_tmc.pas(76): Undefinierter Bezeichner: 'SerialPortNG1'
[Fehler] batch_tmc.pas(76): Operator oder Semikolon fehlt
und zwar bereits in der Prozedur dummi.

Wo liegt der Fehler?

Vielen Dank und Gruss aus dem Bergischen Land
Michael

Delphi-Quellcode:
unit batch_tmc;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, SerialNG, ToolWin, ComCtrls, Menus, Grids;

type
  TForm1 = class(TForm)
    SendBtn: TButton;
    SerialPortNG1: TSerialPortNG;
    OpenDialog1: TOpenDialog;
    ListBox2: TListBox;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    MCDateiAuswahl1: TMenuItem;
    DatendateiAuswahl1: TMenuItem;
    Beenden1: TMenuItem;
    Einstellungen1: TMenuItem;
    SeriellerPort1: TMenuItem;
    Timer1: TTimer;
    StatusBar1: TStatusBar;
    Memo1: TMemo;
    Label3: TLabel;
    Label1: TLabel;
    Label4: TLabel;
    verbleibend: TLabel;
    Panel1: TPanel;
    Button1: TButton;
    Label5: TLabel;
    procedure BasicSettingsBtnClick(Sender: TObject);
    procedure SendBtnClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure DatendateiAuswahl1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Dummiload(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  test: string;
  globalcount, rest,i,x : integer;
implementation

uses SerialNGBasic;
{$R *.DFM}

procedure TForm1.BasicSettingsBtnClick(Sender: TObject);
begin
  SerialNGBasicDLG.SetDLGData(SerialPortNG1);
  if SerialNGBasicDLG.ShowModal = mrOK then
  SerialNGBasicDLG.GetDLGData(SerialPortNG1);
end;

procedure wait (ms:Cardinal);
Var x: Cardinal;
Begin
x:=GetTickCount;
Repeat
Sleep(1000);
Application.ProcessMessages;
Until GetTickCount >= x+ms;
End;

procedure TForm1.SendBtnClick(Sender: TObject);
var SendStr : String;
i : integer;
begin
  i := globalcount;
  rest := i;
  verbleibend.Caption := inttostr(rest);
  SendStr := '';
  sendstr := char(01) + 'V' + char(02) + '01' + Memo1.Lines[0]+char(03) + char(13);
  SerialPortNG1.SendString(SendStr);
  if x = 5 then
  begin
    listbox2.Items.Delete(0);
    dec(x);
  end;
  listbox2.Items[x] := Memo1.Lines[0];
  Memo1.Lines.Delete(0);
  inc(x);
  dec(i);
  if i = 0 then showmessage('Ende der Liste');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  SerialPortNG1.Active := False;
end;



procedure TForm1.FormCreate(Sender: TObject);
begin
  SerialPortNG1.Active := True;
  x :=0;
end;


procedure TForm1.Beenden1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.DatendateiAuswahl1Click(Sender: TObject);
var dateiname: string;
begin
opendialog1.Execute;
dateiname := opendialog1.FileName;
if dateiname ='then exit;
memo1.Clear;
Listbox2.Clear;
memo1.Lines.LoadFromFile(Dateiname);
memo1.ReadOnly := true ;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  StatusBar1.Panels[0].Text :='';
  StatusBar1.Panels[1].Text := FormatDateTime('dddd, d mmmm yyyy ',(Now()));
  StatusBar1.Panels[2].Text := FormatDateTime('hh:mm:ss',(Now()));
end;

procedure TForm1.Dummiload(Sender: TObject);
begin
  label5.Caption := inttostr(memo1.Lines.Count);
  globalcount := memo1.Lines.Count;
end;


end
Michael
  Mit Zitat antworten Zitat
 


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 21:24 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