-
Content Count
312 -
Joined
-
Last visited
-
Days Won
3
Clément last won the day on July 1 2022
Clément had the most liked content!
Community Reputation
129 ExcellentTechnical Information
-
Delphi-Version
Delphi 11 Alexandria
Recent Profile Visitors
-
When will we have a 64-bit IDE version ?
Clément replied to luciano_f's topic in Delphi IDE and APIs
If I could guess, I would say, 64 bit IDE is not in their short term plans. BUT.... They have been working hard to "clean up" some features. ( Some still need some love) All that work will payoff, and among other things, the availability of 64 bits ( I'm an optimist, shoot me!). <SpyVsSpy> I'm almost certain some fellow developer is trying to compile "the project" in 64 bits and hopefully the hints, warnings and errors are getting lower. </SpyVsSpy> -
Grep'oMania Greppsody VelociGrepXpert
-
Is it possible to create a VPN client/server in Delphi?
Clément replied to Clément's topic in RTL and Delphi Object Pascal
I'm still reading and trying to figure some aspects of this projects. May be I just need to learn a little more to be able to ask my friend the right questions. -
Is it possible to create a VPN client/server in Delphi?
Clément replied to Clément's topic in RTL and Delphi Object Pascal
This is one of my strongest arguments against this projects. But since it's a friend, I want to make sure I can explain the "why, hows, and don'ts" He considered other applications ( I will ask him about WireGuard ), and most have "extra features" that are not required. He just wanted a "plain old simple VPN" that works without extra features that goes way beyond what he requires. When some specs uses the word "simple", it just makes me run the other way. The problem in this case is the "friend" part. He would have asked if didn't required it. So.. Now that I learned a little more to be scared, I think I can get him scared too . -
Is it possible to create a VPN client/server in Delphi?
Clément replied to Clément's topic in RTL and Delphi Object Pascal
As far as I can tell, a VPN ( no system-wide local network ) , a "basic" secure channel... I'm gathering information for our next meeting. -
Is it possible to create a VPN client/server in Delphi?
Clément replied to Clément's topic in RTL and Delphi Object Pascal
N in VPN (local network between peers connected through the channel) I was just talking with a friend, and he would to have his own VPN integrated solution. He asked me if I could do it (write both VPN server and Client in Delphi). And I said that I have no idea! If possible, I would like to use SSTP as protocol and ICS as Client and Server app. After googling up a little and found some python implementation of a "simple VPN server". I found C samples to open a Private Network in windows. Some code (in Python) of a VPN server, and some client application In C too... Unfortunately nothing in Delphi (or pascal). I'm just hoping not to find the word "Driver" in the specifications Anyway, I hope to find a way to implement the basics -
Is it possible to create a VPN client/server in Delphi?
Clément posted a topic in RTL and Delphi Object Pascal
Hi, I googled to find some hints on how to create my own VPN solution. I'm still researching and I found nothing in Delphi (or pascal) that covers this subject. Some C examples are in linux, but I would like to focus on windows only. Any ideas? TIA -
JS is scary! Goes against everything that is safe and sound. I really can't say who ( or what) wrote that code. It be can be a person, a framework or ChatGPT. They prefer to use a "Desktop application" to handle filtering and selection rather than modify the code. This should raise some red flags.
-
Just managed to do it in plain JavaScript! I navigate to the corresponding row using DOM, found the <a> tag and called click..... So easy!
-
In this project I'm downloading a page in EdgeBrowser. My application is extracting the main table, and displays it nicelly in a TreeView structure. The HTML table has several rows, and the last cell has a "ng-click" which I need to click. My TreeView already has a button, when the user clicks that button, I must click the corresponding "ng-click" and download detailed information about the product and display it. The last cell information looks like this (This is the last cell HTML code.) I have no idea how to reach that "ng-click" fellow: <a href="" class="btn btn-transparent" ng-if="::thisProductInventory.availableBallast && thisProductInventory.isAvailable" ng-class="{'btn-block':$root.mediaQueries['$res-phone-mid-landscape']()}" ng-click="ProductInventory(thisProductInventory, $event)"> There's no Click, onClick or any other option which I'm familiar with. It appears to be some Angular stuff. Can shed some light? I'm using DOM to navigate / extract data from the page. So ideally id would be perfect to reach something like "element.click()". (I have no way to modify the javascript code. All I can do is "interact" through Delphi /Edge with the page.) TIA
-
In order to decide between them I usually check a few things: 1. "Staticness" : How often will upper bound change. Is the Index "Static". 2. "Filledness" : How well will the structure be filled. 3. Missed Index : How often will I hit one of those empty index, and if I hit what happens ( How easily can I deal with it ) 4. Element Owner : If the elements are instances "Who" will created them. "Who" will free them. Will "Who" be the same? 🙂 Indexed array is a great structure. Can be both performant and low size. "Dictionary" has it's weight. I'll use them whenever it's benefit outweigh this cost. Anyway.. I often use TDictionary or (TObjectDictionary) because I rarely have static index. ex: GUID is the key to another structure. In the example I gave, it is possible to add decoders at runtime ( from a DLL, or a database). And it wouldn't required a recompilation. Which very cool!
-
I would also register my methods. They all seems to have the same signature. unit Unit121; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Generics.Collections, Vcl.StdCtrls; type TMyDecodeProcedure = procedure ( aDoc, aCdn, aRequestCorrelation, aMessageText : string ) of object; TForm121 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } fDecoders : TDictionary<String, TMyDecodeProcedure >; procedure RegisterDecodeFunc; procedure DecodeExportAcc( aDoc, aCdn, aRequestCorrelation, aMessageText : string); procedure DecodeExportErr( aDoc, aCdn, aRequestCorrelation, aMessageText : string ); procedure DecodeExportReg( aDoc, aCdn, aRequestCorrelation, aMessageText : string ); public { Public declarations } function Execute( aDecoder, aDoc, aCdn, aRequestCorrelation, aMessageText : string; var aErrMsg : String ) : Boolean; end; var Form121: TForm121; implementation {$R *.dfm} procedure TForm121.FormCreate(Sender: TObject); begin fDecoders := TDictionary<String, TMyDecodeProcedure >.Create; RegisterDecodeFunc; end; procedure TForm121.FormDestroy(Sender: TObject); begin fDecoders.Free; end; procedure TForm121.DecodeExportAcc(aDoc, aCdn, aRequestCorrelation, aMessageText: string); begin // end; procedure TForm121.DecodeExportErr(aDoc, aCdn, aRequestCorrelation, aMessageText: string); begin // end; procedure TForm121.DecodeExportReg(aDoc, aCdn, aRequestCorrelation, aMessageText: string); begin // end; function TForm121.Execute(aDecoder, aDoc, aCdn, aRequestCorrelation, aMessageText: string; var aErrMsg : String): Boolean; var lDecoder : TMyDecodeProcedure; begin Result := fDecoders.TryGetValue(aDecoder, lDecoder); if Result then lDecoder( aDoc, aCdn, aRequestCorrelation, aMessageText ) else aErrMsg := Format('Decoder not found: %s', [aDecoder] ); end; procedure TForm121.RegisterDecodeFunc; begin fDecoders.Add('EXPREG', DecodeExportReg ); fDecoders.Add('EXPACC', DecodeExportAcc ); fDecoders.Add('EXPERR', DecodeExportErr ); { ... } end; procedure TForm121.Button1Click(Sender: TObject); var lErrMsg : String; begin lErrMsg := ''; Execute('EXPREG','1','2','3','4', lErrMsg); end; end. And you can add decoders more easily too..
-
FireDac has restrictions in Professional and Community edition. Check this: https://www.embarcadero.com/docs/rad-studio-feature-matrix.pdf
-
Migrating projects from Delphi to .Net
Clément replied to Mike Torrettinni's topic in Project Planning and -Management
How productive is you customer using you application? That's the question you should ask yourself. You can take whatever IDE you like... and what? Clone you exact application UI, behavior and functionality. All the fancy .NET stuff would still be under the hood. So.. what does he need.... exactly! Ah! He wants something new, which means something different. What exactly? less clicks? More "live" information on screen? Dashboards? Notifications? Users wants productivity. Developers wants fast time to market, One excludes the other -
Delphi 11.3 unusable due to full-build-requiring onslaught of F2084 "Internal Compiler Errors" from minor source modifications
Clément replied to PaulM117's topic in Delphi IDE and APIs
It doesn't seem to be a dproj or dpr related, but how old is your .dproj ? Have you create a new one for 11.x? Are all your .pas files in you dproj? if not, make sure your are deleting all dcus files manually prior to rebuild. For example, if you select "CLEAN" the IDE will delete only the files present in your dproj, you might get some old dcus in your built! If this is the case, third party dcus are the first you need to check.