Componentes.Terceros.FastRe.../internal/4.2/1/Source/frxConnEditor.pas
2007-11-18 19:40:07 +00:00

209 lines
5.1 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport v4.0 }
{ Connection list editor }
{ }
{ Copyright (c) 1998-2007 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}
unit frxConnEditor;
interface
{$I frx.inc}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Buttons, ExtCtrls, frxClass;
type
TfrxConnEditorForm = class(TForm)
NewB: TButton;
DeleteB: TButton;
ConnLV: TListView;
OKB: TButton;
Panel: TPanel;
ExpressionB: TSpeedButton;
CancelB: TButton;
NameE: TEdit;
ConnE: TEdit;
OwnerE: TEdit;
procedure ConnLVSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure NewBClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DeleteBClick(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure ExpressionBClick(Sender: TObject);
procedure OKBClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
Report: TfrxReport;
end;
implementation
{$R *.DFM}
uses frxDesgn, frxRes, IniFiles, Registry;
procedure TfrxConnEditorForm.FormShow(Sender: TObject);
var
i: Integer;
ini: TRegistry;
sl: TStringList;
li: TListItem;
begin
Caption := frxGet(5800);
NewB.Caption := frxGet(5801);
DeleteB.Caption := frxGet(5802);
OKB.Caption := frxGet(1);
CancelB.Caption := frxGet(2);
ConnLV.Columns[0].Caption := frxResources.Get('cpName');
ConnLV.Columns[2].Caption := frxResources.Get('cpConnStr');
NameE.Height := 19;
ConnE.Height := 19;
OwnerE.Height := 19;
Panel.Visible := False;
ini := TRegistry.Create;
try
ini.RootKey := HKEY_LOCAL_MACHINE;
sl := TStringList.Create;
try
if ini.OpenKeyReadOnly(DEF_REG_CONNECTIONS) then
begin
ini.GetValueNames(sl);
for i := 0 to sl.Count - 1 do
begin
li := ConnLV.Items.Add;
li.Caption := sl[i];
li.SubItems.Add('System');
li.SubItems.Add(Ini.ReadString(sl[i]));
end;
end;
ini.RootKey := HKEY_CURRENT_USER;
if ini.OpenKeyReadOnly(DEF_REG_CONNECTIONS) then
begin
ini.GetValueNames(sl);
for i := 0 to sl.Count - 1 do
begin
li := ConnLV.Items.Add;
li.Caption := sl[i];
li.SubItems.Add('User');
li.SubItems.Add(Ini.ReadString(sl[i]));
end;
end;
finally
sl.Free;
end;
finally
ini.Free;
end;
end;
procedure TfrxConnEditorForm.FormHide(Sender: TObject);
var
i: Integer;
ini: TRegistry;
li: TListItem;
begin
if ModalResult <> mrOk then Exit;
ini := TRegistry.Create;
try
ini.RootKey := HKEY_CURRENT_USER; // HKEY_LOCAL_MACHINE;
ini.DeleteKey(DEF_REG_CONNECTIONS);
if ini.OpenKey(DEF_REG_CONNECTIONS, true) then
for i := 0 to ConnLV.Items.Count - 1 do
begin
li := ConnLV.Items[i];
if li.SubItems[0] <> 'System' then
ini.WriteString(li.Caption, li.SubItems[1]);
end;
finally
ini.Free;
end;
end;
procedure TfrxConnEditorForm.NewBClick(Sender: TObject);
var
li: TListItem;
begin
li := ConnLV.Items.Add;
li.Caption := 'New name';
li.SubItems.Add('User');
li.SubItems.Add('');
ConnLV.Selected := li;
NameE.SetFocus;
end;
procedure TfrxConnEditorForm.DeleteBClick(Sender: TObject);
begin
ConnLV.Selected.Free;
end;
procedure TfrxConnEditorForm.ConnLVSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
if Selected then
begin
Panel.Visible := True;
Panel.Top := ConnLV.Top + Item.Top;
NameE.Text := Item.Caption;
OwnerE.Text := Item.SubItems[0];
ConnE.Text := Item.SubItems[1];
if OwnerE.Text = 'System' then
begin
DeleteB.Enabled := false;
ExpressionB.Visible := false;
ConnE.Width := 300;
end
else
begin
DeleteB.Enabled := true;
ExpressionB.Visible := true;
ConnE.Width := 281;
end
end
else
begin
Panel.Visible := False;
Item.Caption := NameE.Text;
Item.SubItems[0] := OwnerE.Text;
Item.SubItems[1] := ConnE.Text;
end;
end;
procedure TfrxConnEditorForm.ExpressionBClick(Sender: TObject);
begin
if Assigned(Report) and Assigned(Report.OnEditConnection) then
ConnE.Text := Report.OnEditConnection(ConnE.Text);
end;
procedure TfrxConnEditorForm.OKBClick(Sender: TObject);
begin
ConnLV.Selected := nil;
end;
procedure TfrxConnEditorForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_F1 then
frxResources.Help(Self);
end;
end.
//862fd5d6aa1a637203d9b08a3c0bcfb0