Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TListView Änderung der Größe von Collumns verhindern (https://www.delphipraxis.net/185058-tlistview-aenderung-der-groesse-von-collumns-verhindern.html)

Cubysoft 11. Mai 2015 20:05

TListView Änderung der Größe von Collumns verhindern
 
Hey,

ich habe diesmal ausnahmsweise eine relativ kurze Frage: Ich arbeite mit einem TListView Style: vsReport und möchte schlicht verhindern, dass Benutzer die Größe der Collumns anpassen können. Ich habe derzeit zwar die MaxWidth gesetzt, aber das führt nicht zu dem Ergebnis, das ich gerne hätte. Setzt man nämlich die MaxWidth, kann man die Collumns immernoch vergrößern, nur springen diese dann wieder zurück. Da ich aber sämltliche Items in dem Listview selbst zeichne, sieht das dann entsprechend lustig aus.

Anmerkung: Die Collumns müssen anklickbar bleiben, wegen der Sortierung..

Danke!

Popov 11. Mai 2015 20:23

AW: TListView Änderung der Größe von Collumns verhindern
 
Man kann die Größe der Columns zwar zuerst ändern, dass sollte sich aber nicht auf die Spaltenbreite auswirken. Die Änderung sollte eigentlich nicht übernommen werden.

Du solltest für die Spalte übrigens MaxWidth gleich MinWidth setzten.

Volker Z. 11. Mai 2015 21:55

AW: TListView Änderung der Größe von Collumns verhindern
 
Hallo,

wenn Du das Ändern der Spaltenbreite im der Listview unterbinden möchtest, dann musst Du Dich IMHO in die WMNotify einhängen und es dort verhindern. Zum Beispiel so:

Delphi-Quellcode:
interface

uses
  [...]

type
  TListView = class(Vcl.ComCtrls.TListView)
  private
    procedure WMNotify (var Msg : TWMNotify); message WM_NOTIFY;
  end;

  TForm1 = class(TForm)
    ListView1: TListView;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

implementation

{$R *.dfm}

uses
  Winapi.CommCtrl;

procedure TListView.WMNotify (var Msg : TWMNotify);
var
  c : Integer;
begin
  c := Msg.NMHdr^.code;
  if (c = HDN_BEGINTRACKA) or (c = HDN_BEGINTRACKW) then
    Msg.Result := 1
  else
    inherited
end;
Die Eigenschaften MinWidth bzw. MaxWidth kannst Du dann getrost ignorieren.

Gruß

Cubysoft 11. Mai 2015 23:53

AW: TListView Änderung der Größe von Collumns verhindern
 
Kann ich dann noch selbst die Größe ändern? Also durch Zuweisungen?

Volker Z. 12. Mai 2015 21:11

AW: TListView Änderung der Größe von Collumns verhindern
 
Hallo,
Zitat:

Kann ich dann noch selbst die Größe ändern? Also durch Zuweisungen?
Wieso denn nicht? Es wird doch nicht mehr als das Ändern der Spaltenbreite per Maus unterbunden. Im Zweifel einfach mal ausprobieren :wink:.

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz