AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm Stop

Ein Thema von Schuby · begonnen am 17. Feb 2021 · letzter Beitrag vom 17. Feb 2021
Antwort Antwort
Schuby

Registriert seit: 25. Dez 2018
93 Beiträge
 
#1

Programm Stop

  Alt 17. Feb 2021, 13:50
Delphi-Version: 5
Hallo, ich habe ein Problem mit meinen Programm
Mein Programm sendet über USB Zeile für Zeile einer Datei an meinen CNC Controller.
Das haut auch Super hin, nur kann ich nicht anderes mehr mit meinen Programm machen
bis die File abgearbeitet ist.

Ich hätte gerne ein Break Taste drin, aber das Programm nimmt keine Befehle
an bis die file gesendet wurde.

Ich brauche Ideen wie ich das besser Programmieren könnte.
Wäre Dankbar für Antworten.

mfg
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#2

AW: Programm Stop

  Alt 17. Feb 2021, 13:54
Addiere diese procedure und verwende diese innerhalb deiner Send Procedure..

Delphi-Quellcode:
procedure WinProcessMessages;
var
  ProcMsg: TMsg;
begin
  while PeekMessage(ProcMsg, 0, 0, 0, PM_REMOVE) do
  begin
    if (ProcMsg.message = WM_QUIT) then
      Exit;
    TranslateMessage(ProcMsg);
    DispatchMessage(ProcMsg);
  end;
end;
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: Programm Stop

  Alt 17. Feb 2021, 13:54
Zitat:
Ich hätte gerne ein Break Taste drin, aber das Programm nimmt keine Befehle
an bis die file gesendet wurde.
Wie sendest du die Zeilen? In einer For-Schleife?

Ideen:
- lager es in einen Thread aus
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#4

AW: Programm Stop

  Alt 17. Feb 2021, 13:57
Zitat:
Ich hätte gerne ein Break Taste drin, aber das Programm nimmt keine Befehle
an bis die file gesendet wurde.
Wie sendest du die Zeilen? In einer For-Schleife?

Ideen:
- lager es in einen Thread aus
Warum so kompliziert?
WinProcessMessages reicht vollkommen aus.
Es sorgt dafür das andere Messagen weitergeleitet werden

Delphi-Quellcode:
WinProcessMessages;
if bBreak then
  Break
else
SendtoUsb;

Geändert von venice2 (17. Feb 2021 um 14:04 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Programm Stop

  Alt 17. Feb 2021, 14:05
Da das Senden der Daten scheinbar eine dauerhafte Aufgabe ist, bietet sich hier ein Thread doch an.
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
93 Beiträge
 
#6

AW: Programm Stop

  Alt 17. Feb 2021, 15:06
Ja ich sende über eine for schleife und bei jeder Zeile die
ich sende warte ich auf eine Antwort von USB auf 'ok'
und sende dann die nächste Zeile




mfg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.270 Beiträge
 
Delphi 12 Athens
 
#7

AW: Programm Stop

  Alt 17. Feb 2021, 15:33
Warum nicht Application.ProcessMessages; verwenden?

Delphi-Quellcode:
procedure WinProcessMessages;
var
  ProcMsg: TMsg;
  Handled: Boolean;
begin
  while PeekMessage(ProcMsg, 0, 0, 0, PM_REMOVE) do
  begin
    { Der Teil fehlt auch alles bei dir, welchen Application.ProcessMessages sonst eigentlich machen würde.
    Handled := False;
    if Assigned(Application.OnMessage) then
      Application.OnMessage(MsgProcMsg, Handled);
    if Application.IsPreProcessMessage(ProcMsg) or Application.IsHintMsg(ProcMsg) or Handled
        or Application.IsMDIMsg(ProcMsg) or Application.IsKeyMsg(ProcMsg) or Application.IsDlgMsg(ProcMsg) then
      Continue;
    }

    if (ProcMsg.message = WM_QUIT) then
    begin
      Application.Terminate; // denn wie soll Delphi sonst das Ende mitbekommen, wenn du alle Messages hier abfängst?
      Break; // oder Exit; ... verlässt Beides diese Prozedur, da nach der Schleife eh Schluß ist
    end;
    TranslateMessage(ProcMsg);
    DispatchMessage(ProcMsg);
  end;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Feb 2021 um 15:44 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:44 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