Mark-
Members-
Content Count
251 -
Joined
-
Last visited
-
Days Won
1
Everything posted by Mark-
-
Benjamin says otherwise.
-
Your view of the landscape appears to be limited.
-
I think it is interesting but we need 32 bit.
-
Awww...
-
I assume that means it will not work with 32 bit applications running on 32 bit or 64 bit Windows.
-
For use inside MS Word, I use PDF Destinator. As far as I know it cannot be automated.
-
ANN: RunTime ToolKit Release 2022.2.12 - Coupon Code below
Mark- replied to SwiftExpat's topic in Delphi Third-Party
Perhaps I missed it, no edit field to enter the coupon code. -
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
-
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
-
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
-
Presednce of operations...
Mark- replied to Mark-'s topic in Algorithms, Data Structures and Class Design
Thank you. -
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
-
Thanks for the response "Rollo62", interesting. "Uwe Raabe" thank you. I will check it out.
-
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.
-
Perhaps I can get the foreground window, check it for modal and if so prevent form A from closing in FormCloseQuery. Tomorrow.
-
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;
-
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
-
We are looking to add Python, not replace TMS scripter. Thanks for your opinion.
-
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?
-
Thanks.
-
Thanks for the response. Are you saying the examples demonstrate an IDE, with debugging, breakpoints, stepping through Python code, variable examination, etc.?
-
Micro optimization: Math.InRange
Mark- replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Negative numbers are not passed to the function. The example is perfectly legit. Exceptions do occur. -
Micro optimization: Math.InRange
Mark- replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
I guess I am missing something. Perhaps I need more sleep. if IsInRangeEx(5,10,20) then beep; -
Hello, Perhaps it is late and I am not seeing the forest for all the trees. Is there a way to use TWSocket.SendTo with a dynamic array? Thanks, Mark
-
Never mind. I found the issue. A missing @buffer[0] in some packet generation code.