198 lines
6.0 KiB
ObjectPascal
198 lines
6.0 KiB
ObjectPascal
{-----------------------------------------------------------------------------
|
|
The contents of this file are subject to the Mozilla Public License
|
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
http://www.mozilla.org/MPL/MPL-1.1.html
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
|
|
the specific language governing rights and limitations under the License.
|
|
|
|
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
|
|
located at http://jvcl.sourceforge.net
|
|
|
|
Known Issues:
|
|
-----------------------------------------------------------------------------}
|
|
unit DefineWindowLayoutUnit;
|
|
|
|
{$I jvcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, IniFiles, JvDockControlForm;
|
|
|
|
type
|
|
TDefineWindowLayoutForm = class(TForm)
|
|
Label1: TLabel;
|
|
ViewName_Edit: TEdit;
|
|
Views_ListBox: TListBox;
|
|
Label2: TLabel;
|
|
Close_Button: TButton;
|
|
Apply_Button: TButton;
|
|
Update_Button: TButton;
|
|
Delete_Button: TButton;
|
|
Rename_Button: TButton;
|
|
Help_Button: TButton;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure Views_ListBoxClick(Sender: TObject);
|
|
procedure ViewName_EditChange(Sender: TObject);
|
|
procedure Close_ButtonClick(Sender: TObject);
|
|
procedure Apply_ButtonClick(Sender: TObject);
|
|
procedure Update_ButtonClick(Sender: TObject);
|
|
procedure Delete_ButtonClick(Sender: TObject);
|
|
procedure Rename_ButtonClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
FIniFile: TIniFile;
|
|
FSections: TStringList;
|
|
public
|
|
{ Public declarations }
|
|
SelectItemIndex: Integer;
|
|
end;
|
|
|
|
var
|
|
DefineWindowLayoutForm: TDefineWindowLayoutForm;
|
|
|
|
implementation
|
|
|
|
uses MainFormUnit;
|
|
|
|
{$R *.DFM}
|
|
|
|
procedure TDefineWindowLayoutForm.FormCreate(Sender: TObject);
|
|
var i: Integer;
|
|
Str: string;
|
|
begin
|
|
FSections := TStringList.Create;
|
|
FIniFile := TIniFile.Create(ExtractFilePath(Application.EXEName) + DefineWindowLayoutFileName);
|
|
FIniFile.ReadSection(SectionString, FSections);
|
|
i := FSections.IndexOf(DefaultLayout);
|
|
if i <> -1 then
|
|
FSections.Delete(i);
|
|
FSections.Sort;
|
|
for i := 0 to FSections.Count - 1 do
|
|
begin
|
|
Str := FIniFile.ReadString(SectionString, FSections[i], 'ERROR');
|
|
if Str <> 'ERROR' then
|
|
Views_ListBox.Items.Add(FSections[i]);
|
|
end;
|
|
|
|
Views_ListBoxClick(Views_ListBox);
|
|
ViewName_EditChange(ViewName_Edit);
|
|
end;
|
|
|
|
procedure TDefineWindowLayoutForm.FormDestroy(Sender: TObject);
|
|
var i: Integer;
|
|
begin
|
|
if FIniFile <> nil then
|
|
begin
|
|
FIniFile.EraseSection(SectionString);
|
|
for i := 0 to Views_ListBox.Items.Count - 1 do
|
|
FIniFile.WriteString(SectionString, Views_ListBox.Items[i], Views_ListBox.Items[i] + '.ini');
|
|
FIniFile.Free;
|
|
FIniFile := nil;
|
|
end;
|
|
if FSections <> nil then
|
|
begin
|
|
FSections.Free;
|
|
FSections := nil;
|
|
end;
|
|
end;
|
|
|
|
procedure TDefineWindowLayoutForm.Views_ListBoxClick(Sender: TObject);
|
|
begin
|
|
if Views_ListBox.ItemIndex <> -1 then
|
|
begin
|
|
Update_Button.Caption := '&Update';
|
|
ViewName_Edit.Text := Views_ListBox.Items[Views_ListBox.ItemIndex];
|
|
Apply_Button.Enabled := True;
|
|
Update_Button.Enabled := True;
|
|
Delete_Button.Enabled := True;
|
|
Rename_Button.Enabled := True;
|
|
end else
|
|
begin
|
|
Delete_Button.Enabled := False;
|
|
Rename_Button.Enabled := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TDefineWindowLayoutForm.ViewName_EditChange(Sender: TObject);
|
|
var Str: string;
|
|
begin
|
|
Str := Trim(ViewName_Edit.Text);
|
|
if Str = '' then
|
|
begin
|
|
Update_Button.Enabled := False;
|
|
Rename_Button.Enabled := False;
|
|
end else
|
|
begin
|
|
Update_Button.Enabled := True;
|
|
Rename_Button.Enabled := True;
|
|
end;
|
|
|
|
if Views_ListBox.Items.IndexOf(Str) = -1 then
|
|
begin
|
|
Update_Button.Caption := '&Add';
|
|
Apply_Button.Enabled := False;
|
|
end else
|
|
begin
|
|
Update_Button.Caption := '&Update';
|
|
Rename_Button.Enabled := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TDefineWindowLayoutForm.Close_ButtonClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TDefineWindowLayoutForm.Apply_ButtonClick(Sender: TObject);
|
|
begin
|
|
if Views_ListBox.ItemIndex <> -1 then
|
|
begin
|
|
{$IFDEF USEJVCL}
|
|
LoadDockTreeFromAppStorage(MainForm.JvAppStorage, Views_ListBox.Items[Views_ListBox.ItemIndex]);
|
|
{$ELSE}
|
|
LoadDocktreeFromFile(ExtractFilePath(Application.EXEName) + Views_ListBox.Items[Views_ListBox.ItemIndex] + '.ini');
|
|
{$ENDIF}
|
|
SelectItemIndex := Views_ListBox.ItemIndex;
|
|
SetForegroundWindow(Handle);
|
|
end;
|
|
end;
|
|
|
|
procedure TDefineWindowLayoutForm.Update_ButtonClick(Sender: TObject);
|
|
begin
|
|
if Update_Button.Caption = '&Add' then
|
|
begin
|
|
Views_ListBox.Items.Add(Trim(ViewName_Edit.Text));
|
|
end;
|
|
{$IFDEF USEJVCL}
|
|
SaveDockTreeToAppStorage(MainForm.JvAppStorage, Trim(ViewName_Edit.Text));
|
|
{$ELSE}
|
|
SaveDockTreeToFile(ExtractFilePath(Application.EXEName) + Trim(ViewName_Edit.Text) + '.ini');
|
|
{$ENDIF}
|
|
ViewName_EditChange(ViewName_Edit);
|
|
end;
|
|
|
|
procedure TDefineWindowLayoutForm.Delete_ButtonClick(Sender: TObject);
|
|
begin
|
|
DeleteFile(ExtractFilePath(Application.EXEName) + Views_ListBox.Items[Views_ListBox.ItemIndex] + '.ini');
|
|
Views_ListBox.Items.Delete(Views_ListBox.ItemIndex);
|
|
SelectItemIndex := 0;
|
|
end;
|
|
|
|
procedure TDefineWindowLayoutForm.Rename_ButtonClick(Sender: TObject);
|
|
begin
|
|
if (Views_ListBox.ItemIndex <> -1) and (Trim(ViewName_Edit.Text) <> Views_ListBox.Items[Views_ListBox.ItemIndex]) then
|
|
begin
|
|
RenameFile(ExtractFilePath(Application.EXEName) + Views_ListBox.Items[Views_ListBox.ItemIndex] + '.ini',
|
|
ExtractFilePath(Application.EXEName) + Trim(ViewName_Edit.Text) + '.ini');
|
|
Views_ListBox.Items[Views_ListBox.ItemIndex] := Trim(ViewName_Edit.Text);
|
|
end;
|
|
end;
|
|
|
|
end.
|