Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TComPort / Disconnect ... Probleme (https://www.delphipraxis.net/169013-tcomport-disconnect-probleme.html)

haentschman 23. Jun 2012 16:54


TComPort / Disconnect ... Probleme
 
Hallo alle...

ich versteh´s nicht und hoffe auf Ideen.

vereinfachter Aufbau:

procedure ComConnect; // enthällt Comport.Connected:= True;
procedure ComDisconnect; // enthällt ComPort.Connected:= False;

Problem:
- ComConnect funktioniert überall.
- ComDisconnect funktioniert in einer z.B. Click Procedure
- ComDisconnect funktioniert nicht beim Aufruf in einem eigenen Event und bleibt bei "// <-- hier" hängen...
Delphi-Quellcode:
procedure TCustomComPort.Close;
begin
  // if already closed, do nothing
  if FConnected and not (csDesigning in ComponentState) then
  begin
    CallBeforeClose;
    // abort all pending operations
    AbortAllAsync;
    // stop monitoring for events
    if FThreadCreated then
    begin
      FEventThread.Free; // <-- hier
      FThreadCreated := False;
      if FSyncMethod = smWindowSync then
{$IFDEF DELPHI_6_OR_HIGHER}
  {$WARN SYMBOL_DEPRECATED OFF}
{$ENDIF}
        DeallocateHWnd(FWindow);
{$IFDEF DELPHI_6_OR_HIGHER}
  {$WARN SYMBOL_DEPRECATED ON}
{$ENDIF}
    end;
    // close port
    DestroyHandle;
    FConnected := False;
    // port is closed, do any additional finalization
    CallAfterClose;
  end;
end;
... in einer Art Endlosschleife hängen.

Ich bin ratlos und weiß nicht wie ich es besser beschreiben soll... :roll:

Danke für Info´s

Hintergrund:
Im Fehlerfalle (z.B. Timeout... eigenes Event) soll der ComPort geschlossen werden. --> hängt
Beim Disconnect über einen Menüpunkt z.B. wird der ComPort ordnungsgemäß getrennt.
! der Aufruf ist in beiden Fällen identisch

Hinweis: Der betroffene ComPort liefert als Antwort das Kommando zurück obwohl nix physikalisch angeschlossen ist. Merkwürden läßt grüßen. :roll:

Nachtrag:
Ich wollte grad mal in der Systemsteuerung schauen ob der ComPort konfigurierbar ist. Tja, da ist keiner gelistet und mein Laptop hat auch keinen :shock: Ich dachte immer daß der ComPort, der angeboten wird, virtuell ist. Wo nimmt Vista den Port, welcher sich öffnen läßt, her ?
Ich geh dann mal ne Buddel Roten aufmachen... da kann man wenigstens nix falsch machen. :wall:

Nachtrag1:
Der ComPort ist einem eingebautem Modem zugeordnet...wußte gar nicht daß es sowas noch gibt :oops:

Neumann 23. Jun 2012 17:52

AW: TComPort / Disconnect ... Probleme
 
Also wenn ich bei mir TComport öffne und der Port mit der eingestellten Nummer ist belegt oder nicht existent, dann bekomme ich eine Exception, und der Port bleibt zu. Ist so mit Win XP und Win 7 (64).

Ist es diese Komponente ?

ComPort Library version 4.10
for Delphi 3, 4, 5, 6, 7, 2005, 2006,XE
and C++ Builder 3, 4, 5, 6
by Dejan Crnila 1998-2002
maintained by Lars Dybdahl and Paul Doland
maintained by Brian Gochnauer Nov 2010land

Ralf

haentschman 23. Jun 2012 18:00

AW: TComPort / Disconnect ... Probleme
 
Danke.
Zitat:

Also wenn ich bei mir TComport öffne und der Port mit der eingestellten Nummer ist belegt oder nicht existent, dann bekomme ich eine Exception, und der Port bleibt zu.
...so sollte es sein. Ist aber nicht. Ich kann den virtuellen Port an dem das Modem hängt problemlos öffnen und mit einem "Klick" schließen. Nur in einem eigenen Event hängt sich das Schließen auf. Das wird schon mit der dämlichen Konfiguration zu tun haben. Ist leider der einzige verfügbare am Laptop...

Neumann 23. Jun 2012 18:11

AW: TComPort / Disconnect ... Probleme
 
Ein Comport, wenn in der Systemsteuerung gelistet und nicht von einem anderen Programm belegt ist lässt sich immer öffnen, auch wenn nichts angeschlossen ist. Ich würde in die Sache keine Energie investieren, lohnt sich nicht. Einfach offenlassen, wenn das Programm beendet wird wir er sowieso geschlossen. Lieber das konkrete Gerät z.B. über einen USB-Adapter anschließen und damit probieren.

haentschman 23. Jun 2012 18:20

AW: TComPort / Disconnect ... Probleme
 
Zitat:

Ein Comport, wenn in der Systemsteuerung gelistet
... die Kategorie für die ComPorts existiert im Gerätemanager nicht. Deswegen ist der ComPort auch nicht gelistet. Den bringt das Modem mit. Hast wahrscheinlich Recht... nicht mehr Zeit zu investieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 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