|
@@ -4,12 +4,52 @@ interface
|
|
|
|
|
|
uses
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
|
|
|
|
|
|
+ Vcl.Controls, Vcl.Forms, Vcl.Dialogs, dxSkinsCore, dxSkinOffice2016Colorful,
|
|
|
|
+ Vcl.StdCtrls, cxClasses, cxLookAndFeels, dxSkinsForm, Vcl.ExtCtrls,
|
|
|
|
+ dxGDIPlusClasses, cxGraphics, cxControls, cxLookAndFeelPainters,
|
|
|
|
+ dxSkinsdxStatusBarPainter, dxStatusBar, IdIOHandler, IdIOHandlerSocket,
|
|
|
|
+ IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
|
|
|
|
+ IdTCPConnection, IdTCPClient, IdHTTP, _JSONConfig, dxSkinsdxBarPainter, dxBar;
|
|
|
|
|
|
type
|
|
type
|
|
TfrmMain = class(TForm)
|
|
TfrmMain = class(TForm)
|
|
|
|
+ OpenDialog: TOpenDialog;
|
|
|
|
+ SaveDialog: TSaveDialog;
|
|
|
|
+ Panel1: TPanel;
|
|
|
|
+ dxSkinController: TdxSkinController;
|
|
|
|
+ Label1: TLabel;
|
|
|
|
+ Image: TImage;
|
|
|
|
+ HTTP: TIdHTTP;
|
|
|
|
+ SSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
|
|
|
|
+ dxStatusBar: TdxStatusBar;
|
|
|
|
+ dxBarManager: TdxBarManager;
|
|
|
|
+ dxBarManagerBar1: TdxBar;
|
|
|
|
+ dxBarButton1: TdxBarButton;
|
|
|
|
+ dxBarSubItem3: TdxBarSubItem;
|
|
|
|
+ dxBarButton3: TdxBarButton;
|
|
|
|
+ btnSave: TdxBarButton;
|
|
|
|
+ btnSaveAs: TdxBarButton;
|
|
|
|
+ dxBarButton6: TdxBarButton;
|
|
|
|
+ dxBarSubItem1: TdxBarSubItem;
|
|
|
|
+ dxBarButton7: TdxBarButton;
|
|
|
|
+ dxBarSubItem2: TdxBarSubItem;
|
|
|
|
+ btnRun: TdxBarButton;
|
|
|
|
+ procedure FormShow(Sender: TObject);
|
|
|
|
+ procedure FormCreate(Sender: TObject);
|
|
|
|
+ procedure FormDestroy(Sender: TObject);
|
|
|
|
+ procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
|
|
+ procedure dxBarButton6Click(Sender: TObject);
|
|
|
|
+ procedure dxBarButton3Click(Sender: TObject);
|
|
|
|
+ procedure btnSaveAsClick(Sender: TObject);
|
|
|
|
+ procedure dxBarButton7Click(Sender: TObject);
|
|
|
|
+ procedure btnRunClick(Sender: TObject);
|
|
|
|
+ procedure dxBarSubItem3Popup(Sender: TObject);
|
|
private
|
|
private
|
|
- { Private-Deklarationen }
|
|
|
|
|
|
+ FMainConfig: TJSONConfig;
|
|
|
|
+ FProjectConfig: TJSONConfig;
|
|
|
|
+ FActiveProject: string;
|
|
|
|
+ procedure LoadProject;
|
|
|
|
+ procedure SaveProject;
|
|
public
|
|
public
|
|
{ Public-Deklarationen }
|
|
{ Public-Deklarationen }
|
|
end;
|
|
end;
|
|
@@ -21,4 +61,107 @@ implementation
|
|
|
|
|
|
{$R *.dfm}
|
|
{$R *.dfm}
|
|
|
|
|
|
|
|
+procedure TfrmMain.btnRunClick(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ ShowMessage('run');
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.dxBarButton3Click(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ OpenDialog.InitialDir := FMainConfig.ReadString('Dialogs', 'LastOpenDir', ExtractFilePath(ParamStr(0)));
|
|
|
|
+ if OpenDialog.Execute then
|
|
|
|
+ begin
|
|
|
|
+ FMainConfig.WriteString('Dialogs', 'LastOpenDir', ExtractFilePath(OpenDialog.FileName));
|
|
|
|
+ FActiveProject := OpenDialog.FileName;
|
|
|
|
+ LoadProject;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.btnSaveAsClick(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ SaveDialog.InitialDir := FMainConfig.ReadString('Dialogs', 'LastSaveDir', ExtractFilePath(ParamStr(0)));
|
|
|
|
+ if SaveDialog.Execute then
|
|
|
|
+ begin
|
|
|
|
+ FMainConfig.WriteString('Dialogs', 'LastSaveDir', ExtractFilePath(SaveDialog.FileName));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.dxBarButton6Click(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ Close;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.dxBarButton7Click(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ ShowMessage('About REST Debugger');
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.dxBarSubItem3Popup(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ btnSave.Enabled := FActiveProject <> '';
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
|
|
+begin
|
|
|
|
+ FMainConfig.WriteInteger('MainWindowPos', 'Left', Left);
|
|
|
|
+ FMainConfig.WriteInteger('MainWindowPos', 'Top', Top);
|
|
|
|
+ FMainConfig.WriteBool('MainWindowPos', 'StayOnTop', FormStyle = fsStayOnTop);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.FormCreate(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ FMainConfig := TJSONConfig.Create(ExtractFilePath(ParamStr(0)) + 'AppConfig.json');
|
|
|
|
+ FActiveProject := '';
|
|
|
|
+
|
|
|
|
+ if ParamStr(1) <> '' then
|
|
|
|
+ begin
|
|
|
|
+ FActiveProject := ParamStr(1);
|
|
|
|
+ LoadProject;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.FormDestroy(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ FMainConfig.Free;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.FormShow(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ dxStatusBar.Panels[0].Text := 'Copyright © by Simnet ' + FormatDateTime('yyyy', now);
|
|
|
|
+
|
|
|
|
+ if FActiveProject = '' then
|
|
|
|
+ begin
|
|
|
|
+ dxStatusBar.Panels[1].Text := 'No project loaded.';
|
|
|
|
+ end
|
|
|
|
+ else
|
|
|
|
+ begin
|
|
|
|
+ dxStatusBar.Panels[1].Text := 'Loaded project: ' + FActiveProject;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Left := FMainConfig.ReadInteger('MainWindowPos', 'Left', Round((Screen.Width - Width) div 2));
|
|
|
|
+ Top := FMainConfig.ReadInteger('MainWindowPos', 'Top', Round((Screen.Height - Height) div 2));
|
|
|
|
+ if FMainConfig.ReadBool('MainWindowPos', 'StayOnTop') then
|
|
|
|
+ begin
|
|
|
|
+ FormStyle := fsStayOnTop;
|
|
|
|
+ end
|
|
|
|
+ else
|
|
|
|
+ begin
|
|
|
|
+ FormStyle := fsNormal;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.LoadProject;
|
|
|
|
+begin
|
|
|
|
+ FProjectConfig := TJSONConfig.Create(FActiveProject);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TfrmMain.SaveProject;
|
|
|
|
+begin
|
|
|
|
+// .
|
|
|
|
+end;
|
|
|
|
+
|
|
end.
|
|
end.
|