16. august 2002 - 12:01
Der er
4 kommentarer og
1 løsning
StringGrid og colonne størrelse
I mange programmer er det muligt at dobbelt klikke mellem to kolonner hvor efter den kolonne der er til venstre for markøren tilpasser sig længden af den tekst der er i kolonnen. Hvordan får jeg denne egenskab på min StringGrid?
18. august 2002 - 12:24
#5
Ja da!!!
Der er ellers et udemærket eksempel i hjælpen, men here goes:
Først noget type-erklæring (behøves ikke, men det kan gøre det lettere senere hen):
type
TFile = class(TObject)
private
vName: String;
vDir: String;
vSize: Integer;
vID: Integer;
published
property Name: String read vName write vName;
property Size: Integer read vSize write vSize;
property Dir: String read vDir write vDir;
property ID: Integer read vID write vID;
end;
PFile = ^TFile;
procedure TForm1.AddToListView(TheFile: PFile);
begin
with lvFiles.Items.Add do
begin
Caption := TheFile^.Name;
SubItems.Add(TheFile^.Dir);
SubItems.Add(IntToStr(TheFile^.Size));
SubItems.Add(IntToStr(TheFile^.ID));
end;
end;
Fra hjælpen:
This example requires only a blank form. All other objects: TListView, TListColumns, TListItems, are created dynamically. You must add comctrls to the uses clause of the unit file.
procedure TForm1.FormCreate(Sender: TObject);
const
Names: array[0..5, 0..1] of string = (
('Rubble', 'Barney'),
('Michael', 'Johnson'),
('Bunny', 'Bugs'),
('Silver', 'HiHo'),
('Simpson', 'Bart'),
('Squirrel', 'Rockey')
);
var
I: Integer;
NewColumn: TListColumn;
ListItem: TListItem;
ListView: TListView;
begin
ListView := TListView.Create(Self);
with ListView do
begin
Parent := Self;
Align := alClient;
ViewStyle := vsReport;
NewColumn := Columns.Add;
NewColumn.Caption := 'Last';
NewColumn := Columns.Add;
NewColumn.Caption := 'First';
for I := Low(Names) to High(Names) do
begin
ListItem := Items.Add;
ListItem.Caption := Names[I][0];
ListItem.SubItems.Add(Names[I][1]);
end;
end;
end;
Håber det bragte mere forståelse end forviring!
//hermandsen