Jump to content

FPiette

Members
  • Content Count

    1120
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by FPiette

  1. FPiette

    10.4.1 Update

    It is likely that those add-ons will work. I only use one and it works. You could contact every add-on maker if their add-on works with 10.4.1. To test, I suggest you first install 10.4.1 in a virtual machine and if everything is OK for you, then update your development machine. If you cannot use a virtual machine, or a physical machine elsewhere, then do a full backup of your computer before updating. You'll be able to restore your backup. Much less convenient than a VM, I agree. Or be optimist: install 10.4.1 and if you've got problem, reinstall previous version. Please be aware that the number of installs you are allowed to do is limited! After to much install, you'll have to contact Embarcadero to ask them for more installations.
  2. FPiette

    COM: OleCheck() in polling

    CoInitializeEx should be called only once. Better place is at program startup.
  3. FPiette

    Securing your data over time

    It is possible to have some kind of fireproof safe. In a company I worked for, they have such a safe.
  4. FPiette

    SmtpReady

    The component is not ready because it is still busy with previous request. Maybe an event which triggers email send is right after the previous, before the first email is already sent. Coul be several reasons: 1) the previous email takes long time because the recipient server do not respond fast 2) when sending an email, it don't finishes because of some error You should probably log (ICS has logging facility or you can write log lines to a text file, easy) all events and steps that occurs in your application and see if it is correct. Waiting for readiness in a wait loop is not the best idea. It is much better to use events. The event which triggers the email sending should push that info into a queue, check if the smtp component is done with previous email and fetch the next email from the queue. If not ready, just do nothing. When the component event tells it has finished sending an email, it checks the queue for the next mail to be sent and do it if there is one or just do nothing. Using vent everywhere is the key to success!
  5. FPiette

    Securing your data over time

    Are you doing backups now? Are you using RAID? Most today's mainboards have a basic RAID controller and if yours don't have one, buy one: it is not expensive at least for a basic version. High end version have a battery backup as well so that in case of power loss, the current duplication will continue and cache will be written to disk. Here we speak about source code, but today, almost everyone save his photos on hard disk as well. And many lost everything because they don't have a backup. Personally, I don't reuse SD card: I keep them as backup.
  6. FPiette

    Securing your data over time

    Please read what I said again. If you move 3rd party component it is likely you have to update their path, depends on the components and how you add it to your projects. Think about taking a backup on a regularly schedule. All disk will fail one day! Also think about using disk mirroring (RAID1) or other kind of RAID. With RAID (except RAID0), all you data is duplicated so even when a disk fails, you still have your data. Just replace the failed disk and go.
  7. FPiette

    Moving Projects Folder

    If you have constructed your projects correctly, that is with relative paths, then you can simply copy your "projects" directory elsewhere.
  8. FPiette

    ICS for Linux?

    I wonder why you need xRDP. Didn't you install the GUI for Ubuntu? I have a full Ubuntu desktop that I can see as a window on my Windows 10 and I can do anything in the Linux OS. I also have network shares between Windows and Linux, both directions to easy access to files. On the attached screen dump, you see VMWare workstation running Ubuntu and showing Ubuntu GUI. You can also see part of Delphi IDE.
  9. FPiette

    RTF components or simple RTF editor?

    Try this: http://svn.code.sf.net/p/radstudiodemos/code/branches/RadStudio_XE6/Object Pascal/VCL/RichEdit/ For unknown reason, Embarcadero removed that demo for later Delphi versions.
  10. FPiette

    ICS for Linux?

    I have no experience with Hyper-V: I am using VMWare Workstation on top of Win10 to run Overbyte webserver and wiki under Ubuntu 18.04. I use that version because it is the most recent LTS (Long Term Support) for Ubuntu. I have not tried to install PAServer on that version. If you don't want to invest in VMWare Workstation, you can use VMWare Player which is a free version lacking snapshot. You can replace snapshot by copying the vmdk file.
  11. FPiette

    Twsocket Tcp Client miss some packets

    I think since TWSocket exists for 24 years, if this bug exists, we should have already seen it. I think is is likely the code you wrote which is wrong. But I can tell... 1) Could you please show relevant code 2) How do you know that it is no a sever issue 3) Before writing you own code, check with one of the samples
  12. Would be nice if you translate all your comments in English.
  13. FPiette

    RTF components or simple RTF editor?

    There are plenty of Delphi sample program using TRichEdit which is an RTF editor.
  14. FPiette

    best library for camera grabbing

    In the past, I have used a lib from michael@grizzlymotion.com. The units are VFrames.pas and VSamples.pas. I don't remember where I found it but a little search show those two links of interest. https://github.com/MakeMagazinDE/GRBLize https://stackoverflow.com/questions/19726643/how-to-get-a-snapshot-from-a-webcam-with-delphi7-using-vframestvideoimage Using this code, I get raw frames from the camera, then I use FFMpeg tool to compress rawframes with the required codec to produce anyone of the ffmpeg video format. I invoke FFMpeg command line, feeding it with a pipe. My Delphi program write to the pipe and FFMpeg read the pipe. FFMpeg is available from https://ffmpeg.org/download.html You do need the source code. Prebuild executable is enough since you'll pipe the frames into the utility. To pipe data, I use my own code. I wrote a blog article: http://francois-piette.blogspot.com/2013/04/inter-process-communication-using-pipes.html
  15. FPiette

    Free Resource Builder Utility?

    OK, it should work. How to configure the IDE so that it calls RC.EXE instead of BRCC32.EXE?
  16. FPiette

    Free Resource Builder Utility?

    BRCC32 cannot handle ico files with 24 bits RGB.
  17. FPiette

    best library for camera grabbing

    Maybe you should tell us more about the intended application.
  18. I have not seen algorithm implementation, but one possible cause is that in your implementation, you accumulate very small floating point value and at some point the accumulated value becomes very large (or the initial value is that large). At that moment, accumulation doesn't work anymore. What very small and very large means depends on the floating point precision you used. This means that how you implement the algorithm matters! Compiler will not change anything, the issue comes only from the floating point precision you use (The number of significant digits).
  19. That was good in your previous run but you called "Mail" instead of "MailFrom".
  20. You should start the next mail at MailFrom stage.
  21. Are you sure you test all possible error everywhere and don't ignore any exception? The code you gave yesterday is flawed. Your addition in RequestDone handler to start a new mail do not depend on the RqType but is always executed.
  22. FPiette

    Is interposer class really best to customize TPanel.Paint?

    I never use IDE global path, nor library folder. All my project have explicit paths (always relative) to everything, except components delivered with Delphi. All my components and all 3rd party components I use are all explicitly added to all projects they are used in. And I always recompile everything, never use a prebuilt dcu, obj or package. This way I'm always sure to have everything required to build an application. On the computer I use, it takes only a few seconds to compile hundreds of thousands code line. I use Delphi since version 1 (25 years ago) for almost full time. I wrote hundreds of applications, some of which are very large. I have always had great success. I will not change the way I work.
  23. FPiette

    Is interposer class really best to customize TPanel.Paint?

    What do you mean? No, the same .groupproj file is usable with any IDE. And the dpk file are compatible between IDE version as well. I works really nicely and easily. You should try... Yes, indeed. I frequently use a project group with more than 100 projects.
  24. FPiette

    Is interposer class really best to customize TPanel.Paint?

    I don't think so. I made a lot of components, split into a number of packages. I have a project group with all packages. I do a "right click" / "From here" / "build all" in the project manager and then select all design time packages in project manager and right click and select "install". It takes at most 2 minutes for everything. I don't call that a pain. And you only do it once when a new IDE is here. I also use 3rd party components and I add their packages in the same project group as my own components for easy installation in any new IDE. This is quick and easy. With a component installed in the IDE, you don't even have a single unit to include. The IDE do it for you when you drop the component on the form. Much easier and cleaner than an interposer class IMO. No code to add manually to any of your application.
  25. This is because the component is asynchronous: start some operation which is executed in the background while you own code continue. When operation is finished in the background, you receive an event. Your program should use the async way of programming. That is no loop but events and messages. Code outline: 1) procedure to do your SQL request then PostMessage a custom message 2) from the handler of this custom message, take current record and start sending a mail. If EOF then you are done. 3) handle all SMTP component events, chaining commands for OnRequestDone until the mail is fully sent 4) when mail fully sent, use PostMessage to post the custom message. Those 4 step are NOT in line in a single procedure ! They are "chained" thru events or custom message, just like "All-in-one" button does
×