c0d3r
Members-
Content Count
129 -
Joined
-
Last visited
-
Days Won
1
Everything posted by c0d3r
-
Getting Windows Sleep message, works for some computers but doesn't work for others.
c0d3r posted a topic in Windows API
HI, All I'm getting a strange issue, the following codes were trying logout users when Windows is going to sleep mode. For some reason, it works for some laptops, but it doesn't work for others: procedure WMPowerBroadCast(var Msg: TMessage); message WM_POWERBROADCAST; procedure TMainForm.WMPowerBroadCast(var Msg: TMessage); begin if (Msg.wParam = PBT_APMSUSPEND) or (Msg.wParam = PBT_APMSTANDBY) then begin try Signout; except end; Msg.Result := 1; end; end; Got the report from my client, the signout routine didn't get called when some laptops went to sleep (leave them opened and auto entered Sleep mode or Hitting Power button to force sleeping), but other laptops/PCs were working just fine. -
Getting Windows Sleep message, works for some computers but doesn't work for others.
c0d3r replied to c0d3r's topic in Windows API
Something must be changed, was told it was working just fine on the same computer, and then stop working. They are using Windows 10. -
Getting Windows Sleep message, works for some computers but doesn't work for others.
c0d3r replied to c0d3r's topic in Windows API
What should I look into? -
Getting Windows Sleep message, works for some computers but doesn't work for others.
c0d3r replied to c0d3r's topic in Windows API
Works for some, won't work for others (not only 1), and they are on Windows 10 -
Getting Windows Sleep message, works for some computers but doesn't work for others.
c0d3r replied to c0d3r's topic in Windows API
The WM_POWER message is obsolete. It is provided only for compatibility with 16-bit Windows-based applications. Applications should use the WM_POWERBROADCAST message. -
Are TCompressionStream and TDecompressionStream thread safe?
c0d3r replied to c0d3r's topic in Algorithms, Data Structures and Class Design
Thanks, I meant thread-personal instances, no shared streams. -
Shutting down TidTCPServer (kbmMWTCPIPIndyServerTransport)causing Window Service timeout
c0d3r posted a topic in Indy
During last whole week, I tried to find what could be possible to cause my Windows service timeout while calling TidTCPServer.Active := False, I'm using Delphi 10.4.1, codes were working fine in Delphi 2007 with Indy 9+ until we migrated to 10.4.1: procedure TMyService.OnStop(...) begin TransportServer.Close ; <-- Error 1053 occurs. end; TransportServer is a type of TkbmMWTCPIPIndyServerTransport, the Close method internally was just calling TidTCPServer.Active := False; I can't figure it out because if i don't stop the service, it would serves the client requests/responses without any issue for weeks until at the point the users want to stop the service. -
Shutting down TidTCPServer (kbmMWTCPIPIndyServerTransport)causing Window Service timeout
c0d3r replied to c0d3r's topic in Indy
@Remy LebeauAlthough we still can't figure it out after weeks (we don't deal with any TCP/IP socket codes), we found a workaround: kbmMW's Server component has a property called 'DisconnectAfterResponse'. By setting it to True, Most of our clinic customers don't have any TCP/IP socket close freezing issues, however few were still having the problem, they were the large and busiest clinics. We are planning to use Indy Github version to see if it helps, I'm just wondering whats difference between GitHub version and the one comes with Sydeny? -
[firebird] Converting DB from one charset to other
c0d3r replied to Jacek Laskowski's topic in Databases
Here you go, this is how I did exactly what you wanted: https://github.com/zedalaye/fbclone -
Anyone has the same problem? Delphi 10.4.2, Press Ctrl+Shift+F on any word, Find in Files screen pops up, After a bit frozne, crashed the IDE. The workaround I can only found is that: It works fine after disabling Refactor menu.
-
Ctrl+Shift+F (Find in Files) Crashes Delphi IDE 10.4.2
c0d3r replied to c0d3r's topic in Delphi IDE and APIs
-
Feel better!
-
spinlock primitives
c0d3r replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
-
Another problem (Error Insight): ds is inherited from TDataset. The wave warning: 'Txxxxxxx does not contain a member named: 'FieldByName'/'Open'/'Free'.
-
Annoying IDE behavior changes in 10.4.2
c0d3r replied to Wagner Landgraf's topic in Delphi IDE and APIs
I can confirm all as well, went back to Classic, don't see why I should use LSP. -
No issue on VMWare 16.1.0, Win10, 4K, 100%, Delphi 10.4.2
-
It said the problem would occurs when using offline installer, but I was using web installer, still my 64bit LIBRARY (Windows) paths were wiped out.
-
I saw the code in Delphi 10.4.2, but I don't see any forms flickering in Window 10.
-
10.4.2 Released today - available to download
c0d3r replied to Darian Miller's topic in Tips / Blogs / Tutorials / Videos
Yeah, all my win64 component paths were wiped out. Luckily, I had backup the registry before upgrade, so re-import the registry solves. -
Shutting down TidTCPServer (kbmMWTCPIPIndyServerTransport)causing Window Service timeout
c0d3r replied to c0d3r's topic in Indy
I got Kim's emails 3 days ago. Thanks. -
Shutting down TidTCPServer (kbmMWTCPIPIndyServerTransport)causing Window Service timeout
c0d3r replied to c0d3r's topic in Indy
@Remy Lebeau I would like to give the codes, but I'm not allow to, they are kbmMW codes, all socket threads related things are done by kbmMW components internally. What we did was just wrote codes in one of its OnRequest event handler to deal with client request by the given request name, and set the return Result. For each request, We made 100% sure to have try--finally--end blocks to have objects created get freed properly, each LockList to has a matched UnlockList to access thread string lists, ..., etc. Anyway, Thanks for your time to anwser all my questions, really appreciated! The codes in ProcessRequest event: @ServiceMethod := MethodAddress(AClientRequestName); if Assigned(ServiceMethod) then begin Result := ServiceMethod(Self, ClientIdent, Args); Handled := True; end; This one of the request codes we wrote (in published section): function TMyService.GetSequenceValue(const ClientIdent: TkbmMWClientIdentity; const Args: array of Variant): Variant; var ds: TkbmMWDataset; SeqName, Step: string; SeqList: TStringList; i: Integer; begin Result := -1; if not PrepareQuery(SEQUENCE_GETVALUE, ds) then Exit; try SeqName := VarToStr(Args[0]); Step := VarToStr(Args[1]); SeqList := FSequences.LockList; try i := SeqList.IndexOfName(SeqName); if i < 0 then Exit; SeqName := SeqList.ValueFromIndex[i]; finally FSequences.UnlockList; end; ds.Query.Text := Format(ds.Query.Text, [SeqName, Step]); ds.Open; if not ds.Eof then Result := ds.FieldByName('ID').AsInteger; finally ds.Free; end; end; -
Shutting down TidTCPServer (kbmMWTCPIPIndyServerTransport)causing Window Service timeout
c0d3r replied to c0d3r's topic in Indy
@Remy Lebeau Thanks, I totally agree it. just not sure how to find. Any workarounds we can do? Is there any properties/methods in TidTCPServer that can let all these socket threads being terminated gracefully before calling FSocket.Active := False; -
Shutting down TidTCPServer (kbmMWTCPIPIndyServerTransport)causing Window Service timeout
c0d3r replied to c0d3r's topic in Indy
Sorry, I didn't make it clear. its the kbmMWTCPIPIndyServerTransport that use its FSocket: TidTCPServer, to handle everything using some private/protected/public methods, including Execute event. e.g. TransportServer.Listen -> FSocket.Active := True; TransportServer.Close -> FSocket.Active := False; -
Shutting down TidTCPServer (kbmMWTCPIPIndyServerTransport)causing Window Service timeout
c0d3r replied to c0d3r's topic in Indy
No Disconnect/StopListen method, only Listen and Close, and the codes were there for 10+ years since 2007, people who use our old app (built with Delphi 2007, Indy 9) are still working great. Its those people who upgraded to our new app (built with Delphi 10.4.1, Indy 10) are having the issue.