FastReport_2022_VCL/LibD28x64/fqbDesign.pas
2024-01-01 16:13:08 +01:00

218 lines
5.6 KiB
ObjectPascal

{*******************************************}
{ }
{ FastQueryBuilder 1.03 }
{ }
{ Copyright (c) 2005 }
{ Fast Reports Inc. }
{ }
{*******************************************}
{$I fqb.inc}
unit fqbDesign;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ComCtrls, StdCtrls, ExtCtrls, Grids, DBGrids,
ImgList, Buttons, Menus, DB
{$IFDEF Delphi6}
,Variants
{$ENDIF}
,fqbSynmemo, fqbClass;
type
TfqbDesigner = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
fqbGrid1: TfqbGrid;
fqbSyntaxMemo1: TfqbSyntaxMemo;
fqbTableArea1: TfqbTableArea;
fqbTableListBox1: TfqbTableListBox;
ImageList2: TImageList;
OpenDialog1: TOpenDialog;
PageControl1: TPageControl;
Panel1: TPanel;
SaveDialog1: TSaveDialog;
Splitter1: TSplitter;
Splitter2: TSplitter;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
ToolBar1: TToolBar;
ToolButton10: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
procedure FormCreate(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure TabSheet3Hide(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
protected
procedure LoadPos;
procedure SavePos;
end;
var
fqbDesigner: TfqbDesigner;
implementation
{$R *.dfm}
uses fqbUtils, fqbRes, Registry;
type
THackWinControl = class(TWinControl);
{----------------------- TfqbDesigner -----------------------}
procedure TfqbDesigner.FormCreate(Sender: TObject);
begin
LoadPos;
ToolButton7.Hint := fqbGet(1);
ToolButton10.Hint := fqbGet(2);
ToolButton6.Hint := fqbGet(1803);
ToolButton3.Hint := fqbGet(1805);
ToolButton4.Hint := fqbGet(1804);
TabSheet1.Caption := fqbGet(1806);
TabSheet2.Caption := fqbGet(1807);
TabSheet3.Caption := fqbGet(1808);
fqbGrid1.Column[0].Caption := fqbGet(1820);
fqbGrid1.Column[1].Caption := fqbGet(1821);
fqbGrid1.Column[2].Caption := fqbGet(1822);
fqbGrid1.Column[3].Caption := fqbGet(1823);
fqbGrid1.Column[4].Caption := fqbGet(1824);
fqbGrid1.Column[5].Caption := fqbGet(1825);
THackWinControl(fqbTableArea1).BevelKind := bkFlat;
THackWinControl(fqbTableListBox1).BevelKind := bkFlat;
THackWinControl(fqbGrid1).BevelKind := bkFlat;
THackWinControl(fqbGrid1).BevelKind := bkFlat;
THackWinControl(fqbSyntaxMemo1).BevelKind := bkFlat;
THackWinControl(DBGrid1).BevelKind := bkFlat;
PageControl1.ActivePage := PageControl1.Pages[0];
DataSource1.DataSet := fqbCore.Engine.ResultDataSet;
fqbTableListBox1.Items.BeginUpdate;
fqbTableListBox1.Items.Clear;
fqbCore.Engine.ReadTableList(fqbTableListBox1.Items);
fqbTableListBox1.Items.EndUpdate;
{$IFDEF DELPHI24}
ScaleForPPI(Screen.PixelsPerInch);
{$ENDIF}
end;
procedure TfqbDesigner.TabSheet2Show(Sender: TObject);
begin
fqbSyntaxMemo1.Lines.BeginUpdate;
fqbSyntaxMemo1.Lines.Clear;
fqbSyntaxMemo1.Lines.Text := fqbCore.GenerateSQL;
fqbSyntaxMemo1.Lines.EndUpdate
end;
procedure TfqbDesigner.TabSheet3Hide(Sender: TObject);
begin
fqbCore.Engine.ResultDataSet.Close;
end;
procedure TfqbDesigner.TabSheet3Show(Sender: TObject);
var
s: string;
begin
s := fqbCore.GenerateSQL;
if s = '' then Exit;
fqbCore.Engine.ResultDataSet.Close;
fqbCore.Engine.SetSQL(s);
fqbCore.Engine.ResultDataSet.Open;
end;
procedure TfqbDesigner.ToolButton10Click(Sender: TObject);
begin
ModalResult := mrCancel
end;
procedure TfqbDesigner.ToolButton3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
fqbCore.Clear;
fqbCore.LoadFromFile(OpenDialog1.FileName);
end;
end;
procedure TfqbDesigner.ToolButton4Click(Sender: TObject);
begin
if SaveDialog1.Execute then
fqbCore.SaveToFile(SaveDialog1.FileName);
end;
procedure TfqbDesigner.ToolButton6Click(Sender: TObject);
begin
fqbCore.Clear;
end;
procedure TfqbDesigner.ToolButton7Click(Sender: TObject);
begin
ModalResult := mrOk
end;
procedure TfqbDesigner.FormDestroy(Sender: TObject);
begin
SavePos;
end;
procedure TfqbDesigner.LoadPos;
var
Reg: TRegIniFile;
s: string;
begin
s := ChangeFileExt(ExtractFileName(Application.ExeName), '');
Reg := TRegIniFile.Create('\Software\Fast Reports\FQBuilder\' + s);
try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('\Software\Fast Reports\FQBuilder\' + s, True);
Top := Reg.ReadInteger(Name, 'Top', Top);
Left := Reg.ReadInteger(Name, 'Left', Left);
Height := Reg.ReadInteger(Name, 'Height', Height);
Width := Reg.ReadInteger(Name, 'Width', Width);
finally
Reg.Free;
end
end;
procedure TfqbDesigner.SavePos;
var
Reg: TRegIniFile;
s: string;
begin
s := ChangeFileExt(ExtractFileName(Application.ExeName), '');
Reg := TRegIniFile.Create('\Software\Fast Reports\FQBuilder\' + s);
try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('\Software\Fast Reports\FQBuilder\' + s, True);
Reg.WriteInteger(Name, 'Top', Top);
Reg.WriteInteger(Name, 'Left', Left);
Reg.WriteInteger(Name, 'Height', Height);
Reg.WriteInteger(Name, 'Width', Width);
finally
Reg.Free;
end
end;
end.