mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 05:39:34 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			161 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
unit frmconfprojdatadict;
 | 
						|
 | 
						|
{$mode objfpc}{$H+}
 | 
						|
 | 
						|
interface
 | 
						|
 | 
						|
uses
 | 
						|
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, EditBtn,
 | 
						|
  StdCtrls, idedatadict;
 | 
						|
 | 
						|
type
 | 
						|
 | 
						|
  { TConfigureProjectDDForm }
 | 
						|
 | 
						|
  TConfigureProjectDDForm = class(TForm)
 | 
						|
    BOK: TButton;
 | 
						|
    BCancel: TButton;
 | 
						|
    CBUseDataDict: TCheckBox;
 | 
						|
    CBDD: TComboBox;
 | 
						|
    FEDD: TFileNameEdit;
 | 
						|
    OpenDialog1: TOpenDialog;
 | 
						|
    RBUseKnownDD: TRadioButton;
 | 
						|
    RBUseFile: TRadioButton;
 | 
						|
    procedure BOKClick(Sender: TObject);
 | 
						|
    procedure CBDDChange(Sender: TObject);
 | 
						|
    procedure FormCreate(Sender: TObject);
 | 
						|
    procedure RBUseFileClick(Sender: TObject);
 | 
						|
  private
 | 
						|
    { private declarations }
 | 
						|
    FDD : TIDEDataDictionary;
 | 
						|
    procedure CheckData;
 | 
						|
    procedure CheckRB;
 | 
						|
    procedure DataDictToForm;
 | 
						|
    procedure FormToDataDict;
 | 
						|
    procedure SetKnownFileName;
 | 
						|
  public
 | 
						|
    { public declarations }
 | 
						|
  end; 
 | 
						|
 | 
						|
var
 | 
						|
  ConfigureProjectDDForm: TConfigureProjectDDForm;
 | 
						|
 | 
						|
Function ShowConfigProjectDDDialog : Boolean;
 | 
						|
 | 
						|
implementation
 | 
						|
 | 
						|
Resourcestring
 | 
						|
  SErrSelectDD   = 'Please select a known data dictionary';
 | 
						|
  SErrSelectFile = 'Please select an existing data dictionary file';
 | 
						|
 | 
						|
Function ShowConfigProjectDDDialog : Boolean;
 | 
						|
 | 
						|
begin
 | 
						|
  With TConfigureProjectDDForm.Create(Application) do
 | 
						|
    try
 | 
						|
      Result:=(ShowModal=MROK)
 | 
						|
    finally
 | 
						|
      Free;
 | 
						|
    end;
 | 
						|
end;
 | 
						|
 | 
						|
 | 
						|
{ TConfigureProjectDDForm }
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.CBDDChange(Sender: TObject);
 | 
						|
begin
 | 
						|
  SetKnownFileName;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.BOKClick(Sender: TObject);
 | 
						|
begin
 | 
						|
  CheckData;
 | 
						|
  FormToDataDict;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.CheckData;
 | 
						|
 | 
						|
begin
 | 
						|
  If CBUseDataDict.Checked then
 | 
						|
    If RBUseKnownDD.Checked then
 | 
						|
      begin
 | 
						|
      if (CBDD.Text='') then
 | 
						|
        Raise Exception.Create(SErrSelectDD)
 | 
						|
      end
 | 
						|
    else
 | 
						|
      begin
 | 
						|
      If (FEDD.FileName='') or not (FileExists(FEDD.FileName)) then
 | 
						|
        Raise Exception.Create(SErrSelectFile)
 | 
						|
      end;
 | 
						|
end;
 | 
						|
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.FormCreate(Sender: TObject);
 | 
						|
begin
 | 
						|
  FDD:=IDEDataDictionary;
 | 
						|
  FDD.Update;
 | 
						|
  DataDictToForm;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.RBUseFileClick(Sender: TObject);
 | 
						|
begin
 | 
						|
  CheckRB;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.FormToDataDict;
 | 
						|
 | 
						|
begin
 | 
						|
  If Not CBUSeDataDict.Checked then
 | 
						|
    FDD.Active:=False;
 | 
						|
  if RBUseKnownDD.Checked then
 | 
						|
    FDD.DictionaryName:=CBDD.Text
 | 
						|
  else
 | 
						|
    FDD.FileName:=FEDD.FileName;
 | 
						|
  If CBUSeDataDict.Checked then
 | 
						|
    FDD.Active:=True;
 | 
						|
  FDD.Save;
 | 
						|
end;
 | 
						|
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.DataDictToForm;
 | 
						|
 | 
						|
begin
 | 
						|
  FDD.GetKnownDictionaries(CBDD.Items);
 | 
						|
  CBUseDataDict.Checked:=FDD.Active;
 | 
						|
  RBUseKnownDD.Checked:=(FDD.DictionaryName<>'') or (FDD.FileName='');
 | 
						|
  CheckRB;
 | 
						|
  FEDD.InitialDir:=DefaultDictionaryDir;
 | 
						|
  If RBUSeKnownDD.Checked and (FDD.DictionaryName<>'') then
 | 
						|
    begin
 | 
						|
    With CBDD do
 | 
						|
      ItemIndex:=Items.IndexOf(FDD.DictionaryName);
 | 
						|
    SetKnownFileName;
 | 
						|
    end
 | 
						|
  else
 | 
						|
    FEDD.FileName:=FDD.FileName;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.CheckRB;
 | 
						|
 | 
						|
begin
 | 
						|
  CBDD.Enabled:=RBUseKnownDD.Checked;
 | 
						|
  FEDD.Enabled:=Not CBDD.Enabled;
 | 
						|
end;
 | 
						|
 | 
						|
 | 
						|
procedure TConfigureProjectDDForm.SetKnownFileName;
 | 
						|
 | 
						|
Var
 | 
						|
  FN : String;
 | 
						|
 | 
						|
begin
 | 
						|
  FN:=FDD.GetDictionaryFileName(CBDD.Text);
 | 
						|
  FEDD.FileName:=FN;
 | 
						|
end;
 | 
						|
 | 
						|
initialization
 | 
						|
  {$I frmconfprojdatadict.lrs}
 | 
						|
 | 
						|
end.
 | 
						|
 |