Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi Wie Punkte hinter ListView Eintraegen abschneiden? (https://www.delphipraxis.net/67619-wie-punkte-hinter-listview-eintraegen-abschneiden.html)

Mackhack 17. Apr 2006 18:30


Wie Punkte hinter ListView Eintraegen abschneiden?
 
Hi,

Wie kann ich es realisieren dass die Eintraege in einer ListView keine ... haben wenn die ColumnWidth nicht breit genug ist um den Eintrag vollstaendig anzeigen zu lassen.

Mit Copy/Pos/Del abschneiden? Oder gehts auch einfacher?

mkinzler 17. Apr 2006 19:02

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
Du könntest versuchen mie Länge der Teilstrings anpassen auf Breite / (Breite pro Zeichen)

Mackhack 17. Apr 2006 19:14

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
Hi,

Zitat:

Zitat von mkinzler
Du könntest versuchen mie Länge der Teilstrings anpassen auf Breite / (Breite pro Zeichen)

wie meinst du das mit Anpassen? Etwa die Spaltengroesse? Wenn ja, dann muss ich leider sagen dass das net geht da ich verhindern will dass eine horizontale Scrollbar erscheint aber die ... mich stoeren!

mkinzler 17. Apr 2006 19:20

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
Nein nicht die Spaltengröße, sondern die Länge der Strings (Items). Sind diese < 255 Zeichen sind dies ShortStrings, bei welchen an Stelle 0 die Länge des Strings steht. man kann also einfach die Länge anpassen, ohne das der Originalinhalt verloren get.

Mackhack 17. Apr 2006 19:24

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
Ich stehe auf dem Schlauch.

Hast du ne Beispielzeile Code fuer mich?

Danke!

marabu 17. Apr 2006 20:36

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
Eigentlich finde ich die Ellipsis am Ende des abgeschnittenen Textes korrekt - aber vielleicht hilft dir das hier weiter:

Delphi-Quellcode:
procedure TDemoForm.ListViewCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  r: TRect;
begin
  r := Item.DisplayRect(drLabel);
  Sender.Canvas.TextRect(r, r.Left + 2, r.Top + 2, Item.Caption);
  DefaultDraw := false;
end;
Grüße vom marabu

Mackhack 17. Apr 2006 20:53

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
Danke Marabu,

aber was ist denn drlabel?

mkinzler 17. Apr 2006 20:59

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
Ich habe mal meinen (theoetischen) Vorschlag praktisch ausprobiert und vestellen müssen, das es nicht ganz so geht, da man die Länge der Items nicht mit setLength manipulieren kann. Man kann dies zwar umgehen, aber es ist sehr unellegant. Außerdem gibt es keinen Event für das Resizen der Columns. Deshalb mußt du wohl mit den ... leben müssen oder Achims Vorschalg ausprobieren.

Mackhack 17. Apr 2006 21:07

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
Hi,

werde ich dann :-)

Jedoch habe ich das in einem anderen Programm bereits gesehen dass die ein ListView nehmen und es auch keine ... gibt!

Danke euch vielmals!

//Edit: Kann mir noch schnell wer sagen was das drlabel ist?

mkinzler 17. Apr 2006 21:13

Re: Wie Punkte hinter ListView Eintraegen abschneiden?
 
drLabel ist eine Konstante füt TDisplayCode für den Parameter Code von TListItem.DisplayRect


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr.
Seite 1 von 2  1 2      

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