Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#1

TComPort / Disconnect ... Probleme

  Alt 23. Jun 2012, 17:54
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...

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.

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 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.

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

Geändert von haentschman (23. Jun 2012 um 18:50 Uhr)
  Mit Zitat antworten Zitat