123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- // FDXPOptions
- {
- DXP Paths Dialog.
- Licensed under MPL (http://www.mozilla.org/MPL/)
- Copyright 2003 - Eric Grange
- }
- unit FDXPPathsDialog;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, Buttons, ExtCtrls, ActnList;
- type
- TDXPPathsDialog = class(TForm)
- Panel1: TPanel;
- BBReplace: TBitBtn;
- BBAdd: TBitBtn;
- BBRemove: TBitBtn;
- EDPath: TEdit;
- BBPickPath: TBitBtn;
- BBDown: TBitBtn;
- BBUp: TBitBtn;
- Panel2: TPanel;
- BUOk: TButton;
- BUCancel: TButton;
- LBPaths: TListBox;
- ActionList: TActionList;
- procedure BBUpClick(Sender: TObject);
- procedure BBDownClick(Sender: TObject);
- procedure BBReplaceClick(Sender: TObject);
- procedure BBAddClick(Sender: TObject);
- procedure BBRemoveClick(Sender: TObject);
- procedure BBPickPathClick(Sender: TObject);
- procedure LBPathsClick(Sender: TObject);
- procedure LBPathsKeyPress(Sender: TObject; var Key: Char);
- procedure EDPathChange(Sender: TObject);
- private
- { Déclarations privées }
- public
- { Déclarations publiques }
- function Execute(var paths : String) : Boolean;
- end;
- function DXPPathsDialog(var paths : String) : Boolean;
- implementation
- {$R *.dfm}
- uses FDXPDirectoryDialog, DXPUtils;
- // DXPPathsDialog
- //
- function DXPPathsDialog(var paths : String) : Boolean;
- begin
- with TDXPPathsDialog.Create(nil) do begin
- try
- Result:=Execute(paths);
- finally
- Free;
- end;
- end;
- end;
- // Execute
- //
- function TDXPPathsDialog.Execute(var paths : String) : Boolean;
- begin
- StringToPaths(paths, LBPaths.Items);
- LBPathsClick(Self);
- Result:=(ShowModal=mrOk);
- if Result then
- paths:=PathsToString(LBPaths.Items);
- end;
- procedure TDXPPathsDialog.LBPathsClick(Sender: TObject);
- var
- sel : Boolean;
- begin
- with LBPaths do begin
- sel:=(ItemIndex>=0);
- BBUp.Enabled:=(ItemIndex>0);
- BBDown.Enabled:=sel and (ItemIndex<Items.Count-1);
- BBReplace.Enabled:=sel and (EDPath.Text<>'') and (EDPath.Text<>Items[ItemIndex]);
- BBAdd.Enabled:=(EDPath.Text<>'') and (Items.IndexOf(EDPath.Text)<0);
- BBRemove.Enabled:=sel;
- if (Sender<>nil) and sel then
- EDPath.Text:=Items[ItemIndex];
- end;
- end;
- procedure TDXPPathsDialog.BBUpClick(Sender: TObject);
- var
- i : Integer;
- begin
- with LBPaths do begin
- i:=ItemIndex;
- Items.Move(i, i-1);
- ItemIndex:=i-1;
- end;
- LBPathsClick(Self);
- end;
- procedure TDXPPathsDialog.BBDownClick(Sender: TObject);
- var
- i : Integer;
- begin
- with LBPaths do begin
- i:=ItemIndex;
- Items.Move(i, i+1);
- ItemIndex:=i+1;
- end;
- LBPathsClick(Self);
- end;
- procedure TDXPPathsDialog.BBReplaceClick(Sender: TObject);
- begin
- with LBPaths do
- Items[ItemIndex]:=EDPath.Text;
- LBPathsClick(Self);
- end;
- procedure TDXPPathsDialog.BBAddClick(Sender: TObject);
- begin
- with LBPaths do begin
- Items.Add(EDPath.Text);
- ItemIndex:=Items.Count-1;
- end;
- LBPathsClick(Self);
- end;
- procedure TDXPPathsDialog.BBRemoveClick(Sender: TObject);
- var
- i : Integer;
- begin
- with LBPaths do begin
- i:=ItemIndex;
- Items.Delete(i);
- if i<Items.Count then
- ItemIndex:=i
- else ItemIndex:=Items.Count-1;
- end;
- LBPathsClick(Self);
- end;
- procedure TDXPPathsDialog.BBPickPathClick(Sender: TObject);
- begin
- DXPDirectoryDialog(EDPath);
- end;
- procedure TDXPPathsDialog.LBPathsKeyPress(Sender: TObject; var Key: Char);
- begin
- LBPathsClick(Self);
- end;
- procedure TDXPPathsDialog.EDPathChange(Sender: TObject);
- begin
- LBPathsClick(nil);
- end;
- end.
|