Added changes to propedit so the colum editor changes effect the TListView.

Shane

git-svn-id: trunk@571 -
This commit is contained in:
lazarus 2002-01-03 15:31:27 +00:00
parent 32fc40d9de
commit 00f25d3c89
4 changed files with 82 additions and 33 deletions

View File

@ -6,10 +6,10 @@ interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, LResources, ComCtrls,
StdCtrls, Buttons, ExtCtrls, Arrow;
StdCtrls, Buttons, ExtCtrls;
type
TColumnDlg1 = class(TForm)
TColumnDlg = class(TForm)
Listbox1: TLISTBOX;
Label1: TLABEL;
Edit1: TEDIT;
@ -26,6 +26,8 @@ type
{ private declarations }
FItems : TList;
FSelectedIndex : Integer;
function GetCount: Integer;
function GetItem(Index : Integer): TViewColumn;
Procedure DisplayColumn(Value : Integer);
protected
procedure Button1OnClick(sender : TObject);
@ -40,23 +42,28 @@ type
public
{ public declarations }
constructor Create(AOwner : TComponent); override;
property Items : TList read FItems write FItems;
procedure Clear;
Function Add(S : String) : Integer;
property Count : Integer read GetCount;
property Item[Index : Integer]: TViewColumn read GetItem; default;
// property Items : TList read FItems write FItems;
end;
var
ColumnDlg1: TColumnDlg1;
implementation
constructor TColumnDlg1.Create(AOwner : TComponent);
{ TColumnDlg }
constructor TColumnDlg.Create(AOwner : TComponent);
Begin
inherited;
// if LazarusResources.Find(Classname)=nil then
begin
Caption := 'Column Editor';
Width := 400;
Height := 345;
Height := 300;
OnShow := @FormOnShow;
Position := poScreenCenter;
Listbox1 := TListBox.Create(self);
with Listbox1 do
Begin
@ -64,7 +71,7 @@ Begin
left := 1;
Width := 170;
Top := 1;
Height := 300;
Height := 210;
Visible := True;
OnClick := @Listbox1OnClick;
end;
@ -203,7 +210,7 @@ Begin
end;
procedure TColumnDlg1.Button1OnClick(sender : TObject);
procedure TColumnDlg.Button1OnClick(sender : TObject);
var
ViewColumn : TViewColumn;
Begin
@ -216,7 +223,7 @@ Begin
DisplayColumn(FSelectedIndex);
end;
procedure TColumnDlg1.Listbox1OnClick(sender : TObject);
procedure TColumnDlg.Listbox1OnClick(sender : TObject);
var
I : Integer;
begin
@ -231,7 +238,7 @@ begin
end;
Procedure TColumnDlg1.Edit1OnChange(Sender : TObject);
Procedure TColumnDlg.Edit1OnChange(Sender : TObject);
Var
ViewColumn : TViewColumn;
begin
@ -242,7 +249,7 @@ begin
Listbox1.Selected[FSelectedIndex] := True;
end;
Procedure TColumnDlg1.Edit2OnChange(Sender : TObject);
Procedure TColumnDlg.Edit2OnChange(Sender : TObject);
Var
ViewColumn : TViewColumn;
begin
@ -259,7 +266,7 @@ begin
end;
end;
procedure TColumnDlg1.Button2OnClick(sender : TObject);
procedure TColumnDlg.Button2OnClick(sender : TObject);
var
Index : Integer;
begin
@ -275,7 +282,7 @@ begin
end;
procedure TColumnDlg1.Button3OnClick(sender : TObject);
procedure TColumnDlg.Button3OnClick(sender : TObject);
Var
ViewColumn : TViewColumn;
Index : Integer;
@ -295,7 +302,7 @@ begin
end;
procedure TColumnDlg1.Button4OnClick(sender : TObject);
procedure TColumnDlg.Button4OnClick(sender : TObject);
Var
ViewColumn : TViewColumn;
Index : Integer;
@ -317,7 +324,7 @@ begin
DisplayColumn(Index+1);
end;
Procedure TColumnDlg1.DisplayColumn(Value : Integer);
Procedure TColumnDlg.DisplayColumn(Value : Integer);
Var
ViewColumn : TViewColumn;
begin
@ -338,7 +345,7 @@ begin
end;
procedure TColumnDlg1.RadioGroup1OnClick(sender : TObject);
procedure TColumnDlg.RadioGroup1OnClick(sender : TObject);
Var
ViewColumn : TViewColumn;
begin
@ -351,7 +358,7 @@ begin
end;
end;
Procedure TColumnDlg1.FormOnShow(Sender : TObject);
Procedure TColumnDlg.FormOnShow(Sender : TObject);
var
I : Integer;
ViewColumn : TViewColumn;
@ -371,6 +378,31 @@ begin
end;
procedure TColumnDlg.Clear;
begin
FItems.Clear;
end;
function TColumnDlg.GetItem(Index : Integer): TViewColumn;
begin
Result := nil;
if Index > FItems.Count-1 then exit;
Result := TViewColumn(FItems.Items[Index]);
end;
function TColumnDlg.GetCount: Integer;
begin
Result := FItems.Count;
end;
Function TColumnDlg.Add(S : String) : Integer;
var
ViewColumn : TViewColumn;
begin
ViewColumn := TViewColumn.Create;
ViewColumn.Caption := S;
Result := FItems.Add(ViewColumn);
end;
initialization
{ $I columndlg.lrs}

View File

@ -2637,22 +2637,35 @@ end;
{ TViewColumnsPropertyEditor }
procedure TViewColumnsPropertyEditor.Edit;
var ColumnDlg: TColumnDlg1;
var
ViewColumns : TViewColumns;
Column : TViewColumn;
ColumnDlg: TColumnDlg;
I,X : Integer;
begin
ColumnDlg:=TColumnDlg1.Create(Application);
ColumnDlg:=TColumnDlg.Create(Application);
try
{
For Shane:
Every property of type TViewColumns can be edited by this proc.
The current TViewColumns instance can be found in
TViewColumns(GetOrdValue)
You must somehow assign its values to the ColumnDlg and assign it back
on mrOk. Or u can simply work with it, so that changes are shown at once.
}
ColumnDlg.ShowModal;
ViewColumns := TViewColumns(GetOrdValue);
ColumnDlg.Clear;
for I := 0 to ViewColumns.Count-1 do
Begin
X := ColumnDlg.Add(ViewColumns.Item[i].Caption);
ColumnDlg.Item[x].Width :=ViewColumns.Item[i].Width;
ColumnDlg.Item[x].Alignment :=ViewColumns.Item[i].Alignment;
end;
if ColumnDlg.ShowModal = mrOK then
Begin
ViewColumns.Clear;
for I := 0 to ColumnDlg.Count-1 do
Begin
Column := TViewColumn(ColumnDlg.Item[i]);
X := ViewColumns.Add(Column.Caption);
ViewColumns.Item[x].Width := Column.Width;
ViewColumns.Item[x].Alignment := Column.Alignment;
End;
end;
finally
ColumnDlg.Free;
end;

View File

@ -3,7 +3,7 @@
constructor TViewColumn.Create;
begin
inherited;
FAlignment :=caLEft;
FAlignment :=caLeft;
FCaption := '';
FWidth := 50;
end;

View File

@ -3656,6 +3656,10 @@ end;
{ =============================================================================
$Log$
Revision 1.98 2002/01/03 15:31:27 lazarus
Added changes to propedit so the colum editor changes effect the TListView.
Shane
Revision 1.97 2002/01/01 15:50:16 lazarus
MG: fixed initial component aligning