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
![Shocked](images/smilies/icon_eek.gif)
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