Fórum listview com duas linhas para cada registro #524008
24/06/2015
0
Queria fazer um listview com duas linhas para cada registro, tipo assim
codigo nome endereco
12 maria rua aquela la
dos santos 100
13 joao rua b
silva 200
codigo nome endereco
12 maria rua aquela la
dos santos 100
13 joao rua b
silva 200
Nei
Curtir tópico
+ 0
Responder
Posts
25/06/2015
Dorivan Sousa
seria uma quebra de linha? mas continuaria na mesma coluna e nao no inicio da prox linha.
codigo nome endereco
12 maria rua aquela la
dos santos 100
13 joao rua b
silva 200
Responder
Gostei + 0
25/06/2015
Dorivan Sousa
se for isso aqui tem como fazer. tem que setar o OwnerDraw para true
fonte: http://stackoverflow.com/questions/1877365/add-2-line-caption-in-a-tlistview
fonte: http://stackoverflow.com/questions/1877365/add-2-line-caption-in-a-tlistview
type
TForm1 = class(TForm)
ListView1: TListView;
procedure FormCreate(Sender: TObject);
procedure ListView1DrawItem(Sender: TCustomListView; Item: TListItem;
Rect: TRect; State: TOwnerDrawState);
private
procedure WMMeasureItem(var AMsg: TWMMeasureItem); message WM_MEASUREITEM;
end;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
ListView1.ViewStyle := vsReport;
ListView1.OwnerDraw := True;
ListView1.OwnerData := True;
ListView1.Items.Count := 1000;
with ListView1.Columns.Add do begin
Caption := 'Multiline string test';
Width := 400;
end;
ListView1.OnDrawItem := ListView1DrawItem;
end;
procedure TForm1.ListView1DrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
if odSelected in State then begin
Sender.Canvas.Brush.Color := clHighlight;
Sender.Canvas.Font.Color := clHighlightText;
end;
Sender.Canvas.FillRect(Rect);
InflateRect(Rect, -2, -2);
DrawText(Sender.Canvas.Handle,
PChar(Format('Multiline string for'#13#10'Item %d', [Item.Index])),
-1, Rect, DT_LEFT);
end;
procedure TForm1.WMMeasureItem(var AMsg: TWMMeasureItem);
begin
inherited;
if AMsg.IDCtl = ListView1.Handle then
AMsg.MeasureItemStruct^.itemHeight := 4 + 2 * ListView1.Canvas.TextHeight('Wg');
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)