//---------------------------------------------------------------
// Add & Delete Alias Demo, also shows how to use StatusBar
//
// Copyright (c) 1999 - Sortland Automasjon - All Rights Reserved
//
// Delphi Snippets : http://www.sortland.net/Delphi/Snippets.htm
//---------------------------------------------------------------
unit Alias;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, ComCtrls, StdCtrls, Tabnotbk, Buttons, DBTables, ImgList;

type
  TFormAlias = class(TForm)
    Session1: TSession;
    MemoParam: TMemo;
    PanelDelete: TPanel;
    TabbedNotebook1: TTabbedNotebook;
    StatusBar1: TStatusBar;
    PanelAdd: TPanel;
    PanelToolbar: TPanel;
    MemoParameters: TMemo;
    ComboBoxAlias: TComboBox;
    ComboBoxDrivers: TComboBox;
    EditName: TEdit;
    LabelName: TLabel;
    Label1: TLabel;
    LabelDriver: TLabel;
    LabelParameters: TLabel;
    LabelParamName: TLabel;
    LabelParam: TLabel;
    SpeedButtonAdd: TSpeedButton;
    SpeedButtonSave: TSpeedButton;
    SpeedButtonDelete: TSpeedButton;
    procedure SpeedButtonAddClick(Sender: TObject);
    procedure ComboBoxDriversChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure SpeedButtonSaveClick(Sender: TObject);
    procedure TabbedNotebook1Change(Sender: TObject; NewTab: Integer;
      var AllowChange: Boolean);
    procedure SpeedButtonDeleteClick(Sender: TObject);
    procedure ComboBoxAliasChange(Sender: TObject);
  private
    { Private declarations }
  public
    procedure DisplayHint(Sender: TObject);
  end;

var
  FormAlias: TFormAlias;

implementation

{$R *.DFM}

//-------------------------------------------------------------------
// FormAlias Create form
//-------------------------------------------------------------------
procedure TFormAlias.FormCreate(Sender: TObject);
  begin
    Application.OnHint:= DisplayHint;
    Session1.Active;
    Session1.GetDriverNames( ComboBoxDrivers.Items ); // Fill ComboBox
  end;

//-------------------------------------------------------------------
// FormAlias Resized
//-------------------------------------------------------------------
procedure TFormAlias.FormResize(Sender: TObject);
  begin
    //
  end;

//-------------------------------------------------------------------
// FormAlias OnHint
//-------------------------------------------------------------------
procedure TFormAlias.DisplayHint(Sender: TObject);
  begin
    StatusBar1.SimpleText:= ' '+ GetLongHint(Application.Hint);
  end;

//-------------------------------------------------------------------
// FormAlias NoteBook page is changing
//-------------------------------------------------------------------
procedure TFormAlias.TabbedNotebook1Change(Sender: TObject;
    NewTab: Integer; var AllowChange: Boolean);
  begin
    case NewTab of
      0: begin
           SpeedButtonAdd.Enabled:= true;
           SpeedButtonDelete.Enabled:= false;
         end;
      1: begin
           SpeedButtonAdd.Enabled:= false;
           SpeedButtonDelete.Enabled:= false;
         end;
      2: begin
           SpeedButtonAdd.Enabled:= false;
           SpeedButtonDelete.Enabled:= true;
           Session.GetAliasNames( ComboBoxAlias.Items );  // Fill ComboBox
           MemoParam.Clear;
         end;
    else
      ; // ERROR !
    end;
    AllowChange:=True;
  end;

//-------------------------------------------------------------------
// ComboBox_Drivers is changed, Get selected Driver parameters
//-------------------------------------------------------------------
procedure TFormAlias.ComboBoxDriversChange(Sender: TObject);
  begin
    if ComboBoxDrivers.Text<>'' then
      Session1.GetDriverParams(
        ComboBoxDrivers.Text, // BDE Driver name
        MemoParameters.Lines  // StringList to hold the parameters
      );
  end;

//-------------------------------------------------------------------
// Add Alias button pressed, Add Alias, Press Save to save to disk
//-------------------------------------------------------------------
procedure TFormAlias.SpeedButtonAddClick(Sender: TObject);
  begin
    if (EditName.Text<>'') and (ComboBoxDrivers.ItemIndex>-1) then
      begin
        Session1.AddAlias(
          EditName.Text,          // New Alias Name    
          ComboBoxDrivers.Text,   // BDE Driver name   
          MemoParameters.Lines    // List of Parameters
        );
        // Look in the help file for :
        // AddStandardAlias(const Name, Path, DefaultDriver: string);
      end;
  end;

//-------------------------------------------------------------------
// Save BDE Config file button pressed
//-------------------------------------------------------------------
procedure TFormAlias.SpeedButtonSaveClick(Sender: TObject);
  begin
    Session1.SaveConfigFile; // Save changes to disk 
  end;

//-------------------------------------------------------------------
// Delete Alias button pressed, delete selected Alias
//-------------------------------------------------------------------
procedure TFormAlias.SpeedButtonDeleteClick(Sender: TObject);
  begin
    if ComboBoxAlias.Text<>'' then
      Session.DeleteAlias( ComboBoxAlias.Text );
    Session.GetAliasNames( ComboBoxAlias.Items );
    MemoParam.Clear;
  end;

//-------------------------------------------------------------------
// ComboBox_Alias is changed, Get new parameters
//-------------------------------------------------------------------
procedure TFormAlias.ComboBoxAliasChange(Sender: TObject);
  begin
    if ComboBoxAlias.Text<>'' then
      Session.GetAliasParams(ComboBoxAlias.Text, MemoParam.Lines);
  end;

end.

Delphi Snippets - jun 1999 - Arnulf Sortland