Jump to content

chkaufmann

Members
  • Content Count

    167
  • Joined

  • Last visited

Posts posted by chkaufmann


  1. Thanks for the link, but my questions remain since I cannot tell the user to buy a faster computer and/or not to run any other applications.

     

    Somebody writes "Only Apps will be suspended."

     

    So my question is, why my application is considered as an app? I didn't find any flag in the project settings for this. I compiled it as regular VCL Win32 application.

     

    And when my application is suspended, why is it blocked and not activated again automatically? Somehow it looks like the message queue is not handled anymore.

     

    Christian


  2. I have a strange problem, not sure if it is because of Win10 or Delphi Rio 10.3.2.

     

    For some users my application gets blocked completely when not used for some time and when there are other applications running on that computer. Now I found out, that my application has a green leaf symbol in the task manager with the hint "UWP process group is suspending". Now I don't find a clear answer but it looks like my application is sent to a suspended mode by Windows in some cases.

    - How can I avoid that?

    - Are there any Windows messages I have to handle so I can ensure my application is not blocking?

     

    Christian


  3. Hi,

     

    since using Rio 2 in some cases when the IDE starts to compile in background it blocks for a few seconds and then the IDE stops and disapears without any further notice. Most of the time it happens when I'm typing new code which obviously is not valid.

     

    I would like to turn off this background work as good as possible. I don't need error insight. Sometimes I need Ctrl-Space for identifier completion but I could live with a list of identifiers that were there when I hit F9 the last time.

     

    What is the list of options I have to turn off?

     

    Christian


  4. Hi,

     

    I have a component with a string property that contains extra information. Instead of a simple text it can be a memo with many lines. What is the easiest way to have this property opened in a memo editor instead of a simple single line edit? Do I have to create my own property editor or is there a default one I can define for it?

     

    Christian


  5. It's the "Open File" Manager. I can still use it, but I don't set it as default for opening projects.

     

    Before I filtered on *.groupproj files there because almost all projects I have there is more than one .dpr. But now I open the .dproj files and set the most important ones as favorites on the welcom page.

     

    Christian


  6. Yes, I noticed that now. But when I open the .DPR file, it doesn't close the last one, it just adds the new project in the same ProjectGroup1.groupproj. So again I have more than one project in the group :-(.

     

    I know we have many new features in Delphi, but sometimes I wish to see IDE stability as it was in D7....

     

    Christian


  7. Hi,

     

    I have a project group with four applications. Since I switched to Rio, using F9 or Ctrl-F9 sometimes goes wrong. "Logo12" is my active project but it compiles not only this one but one of the others as well. Here is my .grouproj file. I don't see anything, that could cause the problem:

     

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <PropertyGroup>
            <ProjectGuid>{BAB4E504-1645-40A4-8EFD-7B3797E49F2A}</ProjectGuid>
        </PropertyGroup>
        <ItemGroup>
            <Projects Include="Logo12.dproj">
                <Dependencies/>
            </Projects>
            <Projects Include="Logo12Tests.dproj">
                <Dependencies/>
            </Projects>
            <Projects Include="Logo12Kuba.dproj">
                <Dependencies/>
            </Projects>
            <Projects Include="Logo12KubaDe.dproj">
                <Dependencies/>
            </Projects>
        </ItemGroup>
        <ProjectExtensions>
            <Borland.Personality>Default.Personality.12</Borland.Personality>
            <Borland.ProjectType/>
            <BorlandProject>
                <Default.Personality/>
            </BorlandProject>
        </ProjectExtensions>
        <Target Name="Logo12">
            <MSBuild Projects="Logo12.dproj"/>
        </Target>
        <Target Name="Logo12:Clean">
            <MSBuild Projects="Logo12.dproj" Targets="Clean"/>
        </Target>
        <Target Name="Logo12:Make">
            <MSBuild Projects="Logo12.dproj" Targets="Make"/>
        </Target>
        <Target Name="Logo12Tests">
            <MSBuild Projects="Logo12Tests.dproj"/>
        </Target>
        <Target Name="Logo12Tests:Clean">
            <MSBuild Projects="Logo12Tests.dproj" Targets="Clean"/>
        </Target>
        <Target Name="Logo12Tests:Make">
            <MSBuild Projects="Logo12Tests.dproj" Targets="Make"/>
        </Target>
        <Target Name="Logo12Kuba">
            <MSBuild Projects="Logo12Kuba.dproj"/>
        </Target>
        <Target Name="Logo12Kuba:Clean">
            <MSBuild Projects="Logo12Kuba.dproj" Targets="Clean"/>
        </Target>
        <Target Name="Logo12Kuba:Make">
            <MSBuild Projects="Logo12Kuba.dproj" Targets="Make"/>
        </Target>
        <Target Name="Logo12KubaDe">
            <MSBuild Projects="Logo12KubaDe.dproj"/>
        </Target>
        <Target Name="Logo12KubaDe:Clean">
            <MSBuild Projects="Logo12KubaDe.dproj" Targets="Clean"/>
        </Target>
        <Target Name="Logo12KubaDe:Make">
            <MSBuild Projects="Logo12KubaDe.dproj" Targets="Make"/>
        </Target>
        <Target Name="Build">
            <CallTarget Targets="Logo12;Logo12Tests;Logo12Kuba;Logo12KubaDe"/>
        </Target>
        <Target Name="Clean">
            <CallTarget Targets="Logo12:Clean;Logo12Tests:Clean;Logo12Kuba:Clean;Logo12KubaDe:Clean"/>
        </Target>
        <Target Name="Make">
            <CallTarget Targets="Logo12:Make;Logo12Tests:Make;Logo12Kuba:Make;Logo12KubaDe:Make"/>
        </Target>
        <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
    </Project>

    Any hints or tips what goes wrong?

     

    Christian


  8. Hi,

     

    when I shutdown one of my applications I get an error 204. But I get it only if I include FastMM4 in FullDebugMode.

     

    The error happens in unit System.pas, method TInstHashMap.Finalize on the row with: 

    while PopInstItem.Free do ;

    I'm a bit lost, how to find the error because the memory leak report is empty now. Where should I start to search for the problem? I only have it in one application, other applications shut down with no error.

     

    Christian


  9. In my application I have some long running tasks and I'm not sure what is the better way to abort these.

    I have a global context (per thread) where I set an "aborted" flag when the user pressed "Cancel".

    1) Should I check this flag in each loop (while, for, repeat)?

    2) Should I check the flag in the most called loops only and then throw an abort exception?

     

    I tend to do 1) because then I have better control over the code flow, but what do you think?

     

    Christian

     


  10. Hi,

     

    http://docwiki.embarcadero.com/RADStudio/Rio/en/Overview_of_Generics
    here it says, that this is not possible:

     

    IItem = interface

      function ChildItems<I: IInterface>: IEnumerable<I>;

    end;

     

    All I found is this:
    https://stackoverflow.com/questions/16533131/delphi-interface-generic-function-is-there-a-work-around

     

    so not really nice (readable) solutions. Does anybody have other suggestions?

     

    Christian


  11. I use "FHttpServer.Contexts.Count" for status information and it happens, that the counter doesn't go to zero. So I don't know, if it's during read/write or in my code.

     

    So the first thing I have to do is to count in the OnCommandGet handler as well, so I know if it's in my code or not.

     

    max_execution_time: If I would like to do something like that I would had to handle the request in another again probably? Something like a background worker from the Omnithread library? Then I can set a wait event and cancel execution after a certain amount of time.


  12. I handle all requests in OnCommandGet. Sometimes these get blocked but I couldn't locate yet where and why. 

     

    As a first solution I would like to cancel the command after a certain time. I found the TerminateWaitTime property, but since the value is never used in code I think this doesn't work. Is there another solution for this? Something like max_execution_time in PHP?

     

    Christian


  13. For a HTTP Post request I create a TIdMultiPartFormDataStream and then I use AddFormField() to put my values. Now I noticed, that "=" is replaced by "=3D" and Content-Transfer-Encoding is set to "quoted-printable".

     

    Using the $_POST[] variable in my PHP script, the 3D remains and I get wrong results. Now I'm not sure where I should change that? Should the request be without Content-Transfer-Encoding? or with a different one?

    Or should I change my PHP script and expect a "quoted-printable" string? I didn't find any information for PHP if I can get the Content-Transfer-Encoding from somewhere. I always thought PHP does handle such things automatically.

     

    Christian


  14. Yes, that's what I need. Convert \n and \t to chr(10) and chr(9).

     

    Treating the string as array is this fine? Or is there a faster way to do it? Something like this


     

      n := ASource.Length;
      SetLength(Result, n);
      ix1 := 1;
      ix2 := 1;
      while ix1 <= n do begin
        if ASource[ix1] = '\' then begin
          Inc(ix1);
          case ASource[ix1] of
            't': Result[ix2] := chr(9);
            'n': Result[ix2] := chr(10);
            '\': Result[ix2] := '\';
          end;
        end
        else 
          Result[ix2] := ASource[ix1];
        Inc(ix1);
        Inc(ix2);
      end; 
      if ix1 <> ix2
        then SetLength(Result, ix2 - 1);

     

    Christian

×