Mark-
Members-
Content Count
247 -
Joined
-
Last visited
-
Days Won
1
Everything posted by Mark-
-
Hello, Today, I discovered some code using mciSendCommand with MCI_WAIT and MCI_PLAY, I wrote when Windows 7 was the cat's meow works under W10 and I assume W11 as long as the user has not used CTRL + break on the computer. Searching the web I found a fellow reported the issue in 2016, https://answers.microsoft.com/en-us/windows/forum/all/media-control-interface-nmci-not-working-properly/4931db24-a53a-46da-94db-7423e3d5540f I verified, code works sound plays, press CTRL + break, code says it works, no errors and no sound. Restarting the computer, the code works as long as CTRL + break has not been pressed. And there seems to be another time it might be cleared but, I could not repeat that part. Rewriting the code without using MCI_WAIT is possible but, before I started, I was wondering if anyone has an idea or has found a solution? Thanks, Mark
-
Thanks for the response. I tried a bunch of variations of MC_Break, setting the key, setting it off, etc.. Nothing altered what I am seeing. CTRL+ Break does not stop a sound playing with MCI_Wait or MCI_Notify, as it should. No errors are reported for any calls I am using with success or trying with no success. Well, unless I fail to open the device. I use MCI_STOP when the user selects a button and MCI_Notify is used. I do not see a command structure that uses MC_Break and actually says it will stop the sound playing. The docs do have this: "You might have to press the break key multiple times to interrupt a wait operation. " HA I just tested with MCI_Wait and CTRL+ Break, hit the key pair 30+ times, it did not stop the sound.🙂
-
More testing shows CTRL + Break is a toggle command and it appears after X time it resets to cleared/off. I do not see a way to query the device for its "break mode" state. CTRL + Break while another program has focus has the same result as if the program that plays the sound has focus. I have not found a way to send CTRL + Break to the system. If a method to query the state and send a CTRL + Break was possible, that would good. Might have to put a note in the user manual if the sound will not play.
-
Signotaur Code Signing Server - Looking for beta testers
Mark- replied to Vincent Parrett's topic in Delphi Third-Party
> We are especially interested in hearing from people with Yubikey tokens Which Yubikey series would you support? And would code signing be able to be automated with your "client/server product"? -
I do not see a call to terminate the thread. Normally, for me, works like a charm. procedure TForm1.Button2Click(Sender: TObject); begin MyThread.Terminate; MyThread.WaitFor; MyThread.Free; end; //I don't do this: FreeOnTerminate := True; // Free memory when finished procedure TMyThread.Execute; begin //if an exception is thrown in the thread we need to catch it try MyExecute; except on E:exception do exceptionString:=E.Message; end; end; procedure TMyThread.MyExecute; begin while (not terminated) do begin try //some code except end; if not terminated then Sleep(sleepAmount); end; end;
-
Which version of Delphi are you using? 10.2, "Synchronize" is protected. I have always used Queue to access the main thread. Queue(procedure begin <some procedure>; end); But, I do not use FMX.
-
Thanks.
-
I know that works for non modal forms, never tried with modal forms. Just tried with 10.2 and OnDeactivate is not called with a modal form, unless I am doing something wrong.
-
-
Como resolver erro na execução do Database Desktop no Delphi 7
Mark- replied to Miguel Jr's topic in Databases
I need to run the database desktop application in the tools menu of delphi 7 but these two messages come up "private directory is invalid or undefined. using temporary directory instead." and "working directory is invalid or undefined. use startup directory instead." If anyone can help me I will be grateful? So that I can continue to program my application. -
Hello, Delphi 10.2 If I set the form's Constraint.MaxWidth to some value, 650 for example, with the form open, normal size and maximize the form, icon, right click menu, etc., the form bottom is hidden by the taskbar. With all Constraint.MaxWidth set to 0, works as expected. No anchors, align is none. Anyone seen this? It is reproducible with all forms I tested. Web searching, no joy. Ideas? Cheers, Mark
-
Thanks. Done: https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-1709
-
I am using 10.2. Does the issue exist in 12.x?
-
Hello, I attached a very simple project that demonstrates the issue. Here, the label is 1/2 hidden by the task bar if the max width constraint is set and the form maximized. Cheers, Mark Max.zip
-
Hello, Using the sample project to fetch file size. Binary Mode is checked and the error returned for "Size" and "FileSize" button is: I verified "Binary" was true. Ideas? Thanks, Mark
-
Right, the Async (FileSize, calls FileSizeAsync) function to fetch a file size does not do that, in the version I am using.
-
Using version: 8.65 Just a follow up for anyone wanting to fetch a file size. I could not get the Async call to work. VerifyFTP.UserName:=<UserName>; VerifyFTP.PassWord:=<Password>; VerifyFTP.HostName:=<HostName>; VerifyFTP.HostDirName:=<HostDirName>; VerifyFTP.HostFileName:=<HostFileName>; try VerifyFTP.Connect; VerifyFTP.Cwd; VerifyFTP.TypeBinary; VerifyFTP.Size; finally VerifyFTP.Quit; ShowMessage(VerifyFTP.SizeResult.ToString); end; Thanks François and Angus.
-
Hello, Delphi 10.2 I have been using TIcsFtpMulti.FtpUpOneFile for long time without issue. In the last month of so it started failing, no changes on this end. A TIcsLogger was set up and this is the end portion of the transfer. 14:14:49:951 07261C40 PutDataInSendBuffer handle=1332 len 65536 [1492] 14:14:49:951 07261C40 TryToSend handle=1332 14:14:49:998 07261C40 TryToSend handle=1332 14:14:50:029 07261C40 TryToSend handle=1332 14:14:50:029 07261C40 TryToSend handle=1332 14:14:50:045 07261C40 TryToSend handle=1332 14:14:50:201 07261C40 TryToSend handle=1332 14:14:50:201 07261C40 TriggerDataSent handle=1332 14:14:50:201 DataSocketPutDataSent 47272 14:14:50:201 07261C40 PutDataInSendBuffer handle=1332 len 47272 [1493] 14:14:50:201 07261C40 TryToSend handle=1332 14:14:50:201 07261C40 TryToSend handle=1332 14:14:50:295 07261C40 TryToSend handle=1332 14:14:50:295 07261C40 TryToSend handle=1332 14:14:50:373 07261C40 TryToSend handle=1332 14:14:50:373 07261C40 TryToSend handle=1332 14:14:50:467 07261C40 TryToSend handle=1332 14:14:50:467 07261C40 TryToSend handle=1332 14:14:50:467 07261C40 TriggerDataSent handle=1332 14:14:50:467 DataSocketPutDataSent 0 14:14:50:467 07261C40 TCustomWSocket.Shutdown 1 handle=1332 14:14:50:795 ! Data Session closed <------------------Does this mean the server closed the session, or is this an "internal" TIcsFtpMulti session? 14:14:50:795 ! Next3PutAsync 14:14:50:795 07261C40 SocketCloseCalled handle=1332 14:14:50:795 07261C40 TCustomWSocket.Shutdown 1 handle=1332 14:15:05:481 ! Aborting 14:15:05:481 Control Socket Closed, error=0 14:15:05:481 ! HighLevelAsync 0 14:15:05:481 ! Abort detected 14:15:05:481 ! HighLevelAsync done If I read correctly. the server is aborting the connection after the complete file is sent. Looking at the server contents the file is there with the transferred file name and if I read this right, the next step would be, delete the old file and rename the transferred file to the correct name. If the old file does not exist, it still fails. Ideas? Thanks, Mark
-
TIcsFtpMulti failing... (Version 8.65)
Mark- replied to Mark-'s topic in ICS - Internet Component Suite
Right, in the demo using that option failed on the STOR call. Back to the server shenanigans. Recall, this work fine for years. Something changed, not on my end. > The component will zip files... It is an installer that is already compressed. I need the file to be a "double click" run the installer action, just like it is now with the exe file. Thanks for your help. -
Thanks
-
That is the version of the sample program. Is there a newer version of the sample program?
-
TIcsFtpMulti failing... (Version 8.65)
Mark- replied to Mark-'s topic in ICS - Internet Component Suite
Thanks for your help Angus. I spent all day and some night, testing and I am confident the host has done some shenanigans to stop supporting "exe" files. I tested against https://sftpcloud.io/tools/free-ftp-server and it failed due to not supporting the rename function. Stepping though code, "RemTarFile not being passed to the function, " is without a doubt being correctly passed. For now, because I needed a working solution, I went back to an old version of the program what uses TFtpClient, altered it to: Delete the file to be replaced on the server. Set the new file name to .zip. Transfer the file. Rename the file to exe. That works. I know that is basically what the multi component did. I suspect the "zip" extension, a "supported" file type, is ignored as a potential threat. And perhaps the lack of a file extension for the temporary file name, of uploading the file, was an issue. Speculation. Now, I will be looking at switching to using 7zip to wrap the installer.exe in a self extracting archive. That should handle the "exe" support issue for the current host and future host. -
TIcsFtpMulti failing... (Version 8.65)
Mark- replied to Mark-'s topic in ICS - Internet Component Suite
Thanks Angus. Yeah the hosting company support is giving me nothing. "We don't support exe". But, for more than a decade it has not been an issue. When did it change? Answer: Crickets. Our 25 MB pdf file upload also fails. Uploading with FileZilla works. It does time out at the end, on occasion, but the file is uploaded. I will be testing with https://sftpcloud.io/tools/free-ftp-server, RebexTinyFtpServer and FileZilla_Server_1.8.2, soon. As well as seeking a new host. 🙂 I might have to switch to zipping the installer. It will cause some issues that will need sorting. -
TIcsFtpMulti failing... (Version 8.65)
Mark- replied to Mark-'s topic in ICS - Internet Component Suite
Thanks for the response. Yes, the file name is passed in "RemTarFile". function TIcsFtpMulti.FtpUpOneFile (const LocFileFull, RemTarDir, RemTarFile: string; Replopt: TIcsFileCopyRepl) : TIcsTaskResult ; > the file name a few times already. It does. This has been working for years. I wonder if something server side has changed. Very interesting. More testing.