156 lines
4.3 KiB
ObjectPascal
156 lines
4.3 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.
|
|
|
|
The Original Code is: JvBackgroundEditForm.PAS, released on 2004-04-26.
|
|
|
|
The Initial Developer of the Original Code is Robert Rossmair [Robert dott Rossmair att t-online dott de]
|
|
Portions created by Robert Rossmair are Copyright (C) 2003 Robert Rossmair.
|
|
All Rights Reserved.
|
|
|
|
Contributor(s):
|
|
|
|
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:
|
|
-----------------------------------------------------------------------------}
|
|
// $Id: JvBackgroundEditForm.pas 11031 2006-11-24 07:16:32Z marquardt $
|
|
|
|
unit JvBackgroundEditForm;
|
|
|
|
{$I jvcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Forms,
|
|
Dialogs, Controls, StdCtrls, Buttons,
|
|
JvBackgrounds;
|
|
|
|
type
|
|
TJvBackgroundClientsEditor = class(TForm)
|
|
OKBtn: TButton;
|
|
CancelBtn: TButton;
|
|
SrcList: TListBox;
|
|
DstList: TListBox;
|
|
SrcLabel: TLabel;
|
|
DstLabel: TLabel;
|
|
IncludeBtn: TSpeedButton;
|
|
IncAllBtn: TSpeedButton;
|
|
ExcludeBtn: TSpeedButton;
|
|
ExAllBtn: TSpeedButton;
|
|
procedure IncludeBtnClick(Sender: TObject);
|
|
procedure ExcludeBtnClick(Sender: TObject);
|
|
procedure IncAllBtnClick(Sender: TObject);
|
|
procedure ExcAllBtnClick(Sender: TObject);
|
|
public
|
|
procedure MoveSelected(List: TCustomListBox; Items: TStrings);
|
|
procedure SetItem(List: TListBox; Index: Integer);
|
|
function GetFirstSelection(List: TCustomListBox): Integer;
|
|
procedure SetButtons;
|
|
end;
|
|
|
|
var
|
|
JvBackgroundClientsEditor: TJvBackgroundClientsEditor;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TJvBackgroundClientsEditor.IncludeBtnClick(Sender: TObject);
|
|
var
|
|
Index: Integer;
|
|
begin
|
|
Index := GetFirstSelection(SrcList);
|
|
MoveSelected(SrcList, DstList.Items);
|
|
SetItem(SrcList, Index);
|
|
end;
|
|
|
|
procedure TJvBackgroundClientsEditor.ExcludeBtnClick(Sender: TObject);
|
|
var
|
|
Index: Integer;
|
|
begin
|
|
Index := GetFirstSelection(DstList);
|
|
MoveSelected(DstList, SrcList.Items);
|
|
SetItem(DstList, Index);
|
|
end;
|
|
|
|
procedure TJvBackgroundClientsEditor.IncAllBtnClick(Sender: TObject);
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to SrcList.Items.Count - 1 do
|
|
DstList.Items.AddObject(SrcList.Items[I], SrcList.Items.Objects[I]);
|
|
SrcList.Items.Clear;
|
|
SetItem(SrcList, 0);
|
|
end;
|
|
|
|
procedure TJvBackgroundClientsEditor.ExcAllBtnClick(Sender: TObject);
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to DstList.Items.Count - 1 do
|
|
SrcList.Items.AddObject(DstList.Items[I], DstList.Items.Objects[I]);
|
|
DstList.Items.Clear;
|
|
SetItem(DstList, 0);
|
|
end;
|
|
|
|
procedure TJvBackgroundClientsEditor.MoveSelected(List: TCustomListBox; Items: TStrings);
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := List.Items.Count - 1 downto 0 do
|
|
if List.Selected[I] then
|
|
begin
|
|
Items.AddObject(List.Items[I], List.Items.Objects[I]);
|
|
List.Items.Delete(I);
|
|
end;
|
|
end;
|
|
|
|
procedure TJvBackgroundClientsEditor.SetButtons;
|
|
var
|
|
SrcEmpty, DstEmpty: Boolean;
|
|
begin
|
|
SrcEmpty := SrcList.Items.Count = 0;
|
|
DstEmpty := DstList.Items.Count = 0;
|
|
IncludeBtn.Enabled := not SrcEmpty;
|
|
IncAllBtn.Enabled := not SrcEmpty;
|
|
ExcludeBtn.Enabled := not DstEmpty;
|
|
ExAllBtn.Enabled := not DstEmpty;
|
|
end;
|
|
|
|
function TJvBackgroundClientsEditor.GetFirstSelection(List: TCustomListBox): Integer;
|
|
begin
|
|
for Result := 0 to List.Items.Count - 1 do
|
|
if List.Selected[Result] then
|
|
Exit;
|
|
Result := LB_ERR;
|
|
end;
|
|
|
|
procedure TJvBackgroundClientsEditor.SetItem(List: TListBox; Index: Integer);
|
|
var
|
|
MaxIndex: Integer;
|
|
begin
|
|
with List do
|
|
begin
|
|
SetFocus;
|
|
MaxIndex := List.Items.Count - 1;
|
|
if Index = LB_ERR then
|
|
Index := 0
|
|
else
|
|
if Index > MaxIndex then
|
|
Index := MaxIndex;
|
|
Selected[Index] := True;
|
|
end;
|
|
SetButtons;
|
|
end;
|
|
|
|
end.
|