AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf den canvas einer TListView zeichnen?

Ein Thema von softtouch · begonnen am 19. Sep 2024 · letzter Beitrag vom 20. Sep 2024
Antwort Antwort
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
237 Beiträge
 
Delphi 12 Athens
 
#1

AW: Auf den canvas einer TListView zeichnen?

  Alt 19. Sep 2024, 15:56
Die listview soll einfach normal wie immer aussehen, und soll einfach nur eine Linie von 0,0 - 400,400 haben (das ist natürlich nur zum Testen).
ich kann auch kein transparentes Panel drüber legen und in dem zeichnen, dann kann ich die items nicht mehr selektieren.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.919 Beiträge
 
Delphi 12 Athens
 
#2

AW: Auf den canvas einer TListView zeichnen?

  Alt 19. Sep 2024, 16:12
Dafür wäre die TVirtualTreeView bestens geeignet. Die einfache TListView verwendet ich so gut wie gar nicht mehr...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#3

AW: Auf den canvas einer TListView zeichnen?

  Alt 19. Sep 2024, 16:14
Die listview soll einfach normal wie immer aussehen, und soll einfach nur eine Linie von 0,0 - 400,400 haben
In deinem Screenshot geht die Linie ja auch von 0,0 - 400,400. Oben links wird sie halt vom Column-Header übermalt. Willst du denn auch in den Headerbereich malen?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
237 Beiträge
 
Delphi 12 Athens
 
#4

AW: Auf den canvas einer TListView zeichnen?

  Alt 19. Sep 2024, 18:06
Nein, eigentlich will ich dioe Linie rechts am Ende der letzten Spalte zeihcne, und zwar von item x nach item y.

So ungefähr wie im Bild.
Angehängte Grafiken
Dateityp: jpg lv.jpg (81,3 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#5

AW: Auf den canvas einer TListView zeichnen?

  Alt 19. Sep 2024, 19:17
Etwa so?

Der Code dazu im OnAdvancedCustomDraw:
Delphi-Quellcode:
  if Stage = TCustomDrawStage.cdPostPaint then
  begin
    var R1 := Sender.Items[2].DisplayRect(drBounds);
    var R2 := Sender.Items[8].DisplayRect(drBounds);
    var P1 := TPoint.Create(R1.Right, R1.CenterPoint.Y);
    var P2 := TPoint.Create(R2.Right, R2.CenterPoint.Y);
    P2.X := ARect.Right - 10;
    P1.X := P2.X - 10;
    Sender.Canvas.Pen.Color := clRed;
    Sender.Canvas.Pen.Width := 2;
    Sender.Canvas.MoveTo(P1.X, P1.Y);
    Sender.Canvas.LineTo(P2.X, P1.Y);
    Sender.Canvas.LineTo(P2.X, P2.Y);
    Sender.Canvas.LineTo(P1.X, P2.Y);
  end;
Angehängte Grafiken
Dateityp: png 19-09-2024_20-13-30.png (42,2 KB, 20x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
237 Beiträge
 
Delphi 12 Athens
 
#6

AW: Auf den canvas einer TListView zeichnen?

  Alt 19. Sep 2024, 19:36
Kommt leider keine Linie bei mir.
cdPostPaint kommt bei mir nicht, immer nur cdPrePaint.

Edit: Jetzt gehts. Die 2 anderen customdraw events waren weg.

Geändert von softtouch (19. Sep 2024 um 19:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
237 Beiträge
 
Delphi 12 Athens
 
#7

AW: Auf den canvas einer TListView zeichnen?

  Alt 20. Sep 2024, 00:03
Nochmals danke an Uwe Raabe, der Code funktioniert, musste nur noch einen refresh im resize event machen, sonst schmiert die Linie.
Im Bild nun das Ergebnis.
Angehängte Grafiken
Dateityp: png Project2_k1clUgRSaI.png (36,8 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#8

AW: Auf den canvas einer TListView zeichnen?

  Alt 20. Sep 2024, 02:52
Joar, einige Komponenten zeichnen nur den neuen Teil, beim Vergrößern, was bei z.B. rechts ausgerichteten Dingen im CustomDraw zu Problemen führt, da womöglich Reste zurückbleiben, wenn sich der Zelleninhalt verschiebt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz