-
Content Count
8 -
Joined
-
Last visited
Community Reputation
0 NeutralAbout Qasim Shahzad
- Birthday September 25
Technical Information
-
Delphi-Version
Delphi 10.3 Rio
-
Qasim Shahzad changed their profile photo
-
How to get ThisFormClass (TForm1) from Form1
Qasim Shahzad replied to Qasim Shahzad's topic in Algorithms, Data Structures and Class Design
That's good idea and we can get ModalResults with this method. Thanks for sharing.- 20 replies
-
- form creation
- refactoring
-
(and 3 more)
Tagged with:
-
How to get ThisFormClass (TForm1) from Form1
Qasim Shahzad replied to Qasim Shahzad's topic in Algorithms, Data Structures and Class Design
Exactly, My usage is also like this. For any other scenario (In/Out Values) this might not be good solution. But for simple creation, display and destroy usage it is neat and time saving.- 20 replies
-
- form creation
- refactoring
-
(and 3 more)
Tagged with:
-
How to get ThisFormClass (TForm1) from Form1
Qasim Shahzad replied to Qasim Shahzad's topic in Algorithms, Data Structures and Class Design
Yes these are valid concerns. But in my usage, these forms are like different parts of the application and mostly have no need to pass values or get result. Even if something is changed by a form like SettingsForm, It is persisted in file, DB or registry so next Form or Calling routine can/should load it from there. So in this scenario it is OK. But if it gets complex as you pointed out then we can create that form directly instead of calling a procedure. Nevertheless, your solution was a mental massage😊. This little problem/challenge was annoying me very much. Thank you so much. Stay Blessed.- 20 replies
-
- form creation
- refactoring
-
(and 3 more)
Tagged with:
-
How to get ThisFormClass (TForm1) from Form1
Qasim Shahzad replied to Qasim Shahzad's topic in Algorithms, Data Structures and Class Design
That's great. These are valid concerns. To me the real benefit was readability and clean code. But centralizing logging is another benefit. Procedure name suggestion is also very thoughtful. It should be ShowModalForm Thank you so much.- 20 replies
-
- form creation
- refactoring
-
(and 3 more)
Tagged with:
-
How to get ThisFormClass (TForm1) from Form1
Qasim Shahzad replied to Qasim Shahzad's topic in Algorithms, Data Structures and Class Design
Now Please guide why this is a bad idea. It reduces a lot of code duplication and we can add Form Creation procedure in a common library.- 20 replies
-
- form creation
- refactoring
-
(and 3 more)
Tagged with:
-
How to get ThisFormClass (TForm1) from Form1
Qasim Shahzad replied to Qasim Shahzad's topic in Algorithms, Data Structures and Class Design
unit uMain; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Unit1, Unit2, Unit3; type TfrmMain = class ( TForm ) BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; procedure BitBtn1Click ( Sender: TObject ) ; procedure BitBtn2Click ( Sender: TObject ) ; procedure BitBtn3Click ( Sender: TObject ) ; private { Private declarations } public { Public declarations } end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure ShowForm ( ThisForm: TFormClass ) ; var lForm: TForm; begin lForm := ThisForm.Create ( nil ) ; try lForm.ShowModal; finally lForm.Free; end; end; procedure TfrmMain.BitBtn1Click ( Sender: TObject ) ; begin ShowForm ( TForm1 ) ; end; procedure TfrmMain.BitBtn2Click ( Sender: TObject ) ; begin ShowForm ( TForm2 ) ; end; procedure TfrmMain.BitBtn3Click ( Sender: TObject ) ; begin ShowForm ( TForm3 ) ; end; end. Thank you so much. That was very clever. VCL version is working perfectly fine. I will check on FMX also.- 20 replies
-
- form creation
- refactoring
-
(and 3 more)
Tagged with:
-
This call was successful in previous Delphi versions? Have you tried any other device? docwiki.embarcadero says: So it might be related to device or application permissions.
-
How to get ThisFormClass (TForm1) from Form1
Qasim Shahzad posted a topic in Algorithms, Data Structures and Class Design
Greetings Dear Delphians, Say we have 20 Forms in an App. We use these 6 lines to create 20 Forms at different places. Form1 := TForm1.Create; try Form1.ShowModal; finally Form1.Free; end; When refactoring we can see this is a lot of code duplication and we should encapsulate form creation in a procedure like this. procedure ShowForm ( ThisForm: TCustomForm ) ; begin ThisForm := TCustomForm(ThisFormClass.Create);//?? How to Get Form Class try ThisForm.ShowModal; finally ThisForm.Free; end; end; I only have problem in first line. how to get ThisForm parent class to call it. Is it even possible? If yes then how? What about FMX? Any help or pointer is appreciated. Thanks and stay blessed- 20 replies
-
- form creation
- refactoring
-
(and 3 more)
Tagged with: