Jump to content

Mark-

Members
  • Content Count

    303
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Mark-


  1. 6 hours ago, Joseph MItzen said:

    It's 2022. Why does anyone need 32 bit? Windows isn't even available in 32bit anymore starting with Windows 11.

    Your view of the landscape appears to be limited.

    • Haha 1

  2. Hello,

     

    What I came up with for my needs.

    procedure SaveVTToFileLikeTTreeView(tree:TVirtualStringTree; const fName:string);
    var
     data:TVTABFetch;
     strList:TStringList;
     tmpNode:PVirtualNode;
    
     function CreateTabPrefix(count:integer):string;
     var
      i:integer;
     begin
      result:='';
      for i:=0 to count -1 do
       result:=result + #09;            //tab
     end;
    
    begin
     if (fName = '') then
      Exit;
    
     strList:=TStringList.Create;
     if not Assigned(strList) then
      Exit;
    
     try
      tmpNode:=tree.GetFirst;
      if not Assigned(tmpNode) then   //if nothing, scram
       Exit;
    
      repeat
       data:=TVTABFetch(Pointer(tree.GetNodeData(tmpNode)^));
       if Assigned(Data) then            //safety
        strList.Add(CreateTabPrefix(tree.GetNodeLevel(tmpNode)) + data.caption);
    
       tmpNode:=tree.GetNext(tmpNode);
    
      until (not Assigned(tmpNode));
    
      strList.SaveToFile(fName);
     finally
      strList.free;
     end;
    end;

    Cheers,

     

    Mark


  3. Hello,

     

    Delphi 10.2

     

    I just started using TVirtualStringTree and all is working well (Thanks Jam Software). I need to save all the node captions to a text file with the same format as TTreeview (tab character for indent level followed by caption string) so, at a later time, the file can be loaded and parsed. Has anyone done such a thing?

     

    Cheers,

     

    Mark


  4. Hello,

     

    This might seem silly. Used a few programming languages over the years. Would you expect the code below to produce the same result? 7

    Did not find a reference in the help system.

    procedure TestOrder;
    var
     index,finalValue:integer;
    
     function ResultIsFive(var i:integer):integer;
     begin
      result:= 3 + 2;
      Inc(i);
     end;
    
    begin
      index:=1;
      finalValue:=index + ResultIsFive(index);
      ShowMessage(IntToStr(finalValue));
    
      index:=1;
      finalValue:=ResultIsFive(index) + index;
      ShowMessage(IntToStr(finalValue));
    end;

    Thanks,

     

    Mark


  5. Thanks for the response "Kas Ob.".

     

    This issue is not about the application closing. These form A come and go in a 24/7 program. The possible changes are limited to the areas I mentioned, in form A. The user designs/creates/codes/uses/etc. these form A. We provide the IDE and execution of the user created form A inside the main program, like an add on, along with other user configurable features.

     

    Large changes to a huge program for one issue with the form A, that was actually found by destructive testing, a user in 14 years has never created the issue, is not prudent/practical/etc.

     

    Again, thanks for the reply.


  6. Hello,

     

    Delphi 10.2.3, VCL

     

    Might seem simple but I have not run into this issue and have limits on what changes I can make.

     

    Form A is opened containing one button. The button opens a modal dialog, form B, displaying a message. Before the user can close form B, another part of the program posts a close message to form A and it closes. The user closes form B, leading to a crash.

     

    Setting a flag to indicate a modal dialog has been opened to prevent form A from closing is not possible. That would be a big change. Users design the screens and run script, etc.

     

    I can change the FormCloseQuery, FormClose and FormDestroy of form A.

     

    Finding what to check in the form properties/methods has produced no joy. Forest for the trees might be present.

     

    Any ideas?

     

    Thanks,

     

    Mark

     

     

     

     


  7. Couple of ways to accomplish it,

    One simple method.

     

    type
     TVariantArray = array of variant;
    
    function Foo(data:byte):TVariantArray;
    begin
     SetLength(result,2);
     result[0]:=data + 123;
     result[1]:='ABCD';
    end;
    
    procedure FooTest;
    var
     res:TVariantArray;
    begin
     res:=Foo(1);
     ShowMessage(IntToStr(res[0]) + ' ' + res[1]);
    end;

     


  8. Thanks for the response.

     

    >Do you really need the IDE embedded in your application or could you treat it as a remote execution / debug scenario?

     

    Embedded.

     

    >Which code, Delphi or the Python script, do you need the user to be able to watch / step into?

     

    Python. Just like we do with TMS Scripter.

     

    >Could you use PY4D to host the interpreter and then remote attach to it with the IDE?

     

    I have not used PY4D. Is this different from the first question?

     


  9. Hello,

     

    We use TMS Scripter (Pascal) to allow our customers to execute custom logic on data. Embedded editor, breakpoints, stepping, variable watches, etc. are included.

     

    Looking at providing Python and how to provide the same features.

     

    PyScripter seems to provide all or part but, I do not see any path to embed PyScripter in our application.

     

    How do you guys, using Python4Delphi, provide an IDE?

     

    Thanks,

    Mark

     

×