AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi ListView Position der Node-Selection/Editbox ändern
Thema durchsuchen
Ansicht
Themen-Optionen

ListView Position der Node-Selection/Editbox ändern

Ein Thema von dGeek · begonnen am 12. Nov 2016 · letzter Beitrag vom 13. Nov 2016
Antwort Antwort
dGeek
(Gast)

n/a Beiträge
 
#1

ListView Position der Node-Selection/Editbox ändern

  Alt 12. Nov 2016, 19:38
Ist es möglich, die Node-Selection eines Nodes einer TreeView in der Position zu verändern?

Wenn ein Node sagen wir mal einen ganzen Satz beinhaltet, dann ist es nicht sonderlich kompliziert mit der Maus in den Editiermodus dieses Nodes zu gelangen.
Enthält der Node aber nur sehr wenige Zeichen oder eben gar keine, ist die Fokus-Box nur ein paar Millimeter weit.

Im AdvancedCustomDrawItem-Event steht schon folgendes:
Delphi-Quellcode:
var
 aFocusRect: TRect;
begin
 aFocusRect := Node.DisplayRect(True);
 
 if Stage = cdPostPaint then
  begin
   aFocusRect.Width := TTreeView(Sender).Width - aFocusRect.Left;
   DrawFocusRect(DC, aFocusRect);
  end;

 //
end;
Das erweitert die Selektierung bis zum rechten Ende des TreeView. Aber egal wo ich klicke, ich gelange nur in den Editiermodus, wenn ich an der originalen Stelle der Fokus-Box klicke.
Visuell ist die Fokus-Box also größer und wie gewünscht, aber technisch hat sie wohl noch die Originalgröße.

Geändert von dGeek (12. Nov 2016 um 19:53 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: ListView Position der Node-Selection/Editbox ändern

  Alt 12. Nov 2016, 23:36
Sowas löse ich sehr unelegant:

Ist mir der Text zu kurz, hänge ich einfach ein paar Leerzeichen dran, solang der Text nicht irgendwo inhaltlich ausgewertet werden muss, ist das (halbwegs) ok.

Eventuell nimmst Du statt des Leerzeichens auch das geschützte Leerzeichen (#160), dann werden die künstlichen "Lücken" gleichmäßig lang.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ListView Position der Node-Selection/Editbox ändern

  Alt 13. Nov 2016, 00:02
Ist ja auch klar. Nur weil DU Irgendwas beiter zeichnest, ist die Eingabebehandlung der Maus nicht ebenfalls geändert.


Aber ich würde mich eher fragen, wer auf die saublöde Idee gekommen ist, dass RowStyle nicht das macht, was es machen sollte.
Delphi-Referenz durchsuchenTTreeView.RowStyle

solang der Text nicht irgendwo inhaltlich ausgewertet werden muss, ist das (halbwegs) ok.
Genau andersrum, denn wenn jemand die Oberlächenwerte auswertet, dann ist das nicht OK.
Das geht dann auch gleich bei der Lokalisierung weiter, wo dann plötzlich was Anderes in der Oberfläche steht, oder bei Buttons/Menüs, wenn dort automatisch ein & eingefügt wurde.

Man kann nicht umsonst an jeden einzelnen Node "interne" Extradaten (Data) hängen.
$2B or not $2B

Geändert von himitsu (13. Nov 2016 um 00:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ListView Position der Node-Selection/Editbox ändern

  Alt 13. Nov 2016, 00:06
[del]
$2B or not $2B
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: ListView Position der Node-Selection/Editbox ändern

  Alt 13. Nov 2016, 01:20
Stichwort VirtualTreeView. Der sollte sowas (eventuell mit der Option toFullRowSelect) eigentlich problemlos können (und noch viel viel mehr). Habe es nicht explizit ausprobiert, meine aber, sowas schonmal gemacht zu haben.

Es sei denn hier geht es um FMX. Dann habe ich nix gesagt.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: ListView Position der Node-Selection/Editbox ändern

  Alt 13. Nov 2016, 10:46
solang der Text nicht irgendwo inhaltlich ausgewertet werden muss, ist das (halbwegs) ok.
Genau andersrum, denn wenn jemand die Oberlächenwerte auswertet, dann ist das nicht OK.
Das geht dann auch gleich bei der Lokalisierung weiter, wo dann plötzlich was Anderes in der Oberfläche steht, oder bei Buttons/Menüs, wenn dort automatisch ein & eingefügt wurde.

Man kann nicht umsonst an jeden einzelnen Node "interne" Extradaten (Data) hängen.
Naja, genau deshalb schrieb ich ja auch "halbwegs" und ganz am Anfang, dass ich das dann sehr unelegant löse.
Mir ist also durchaus klar, dass das unprofessionell ist, aber wenn man es nur für Software benötigt, die man selbst nutzt, mag das angehen.

Selbstverständlich nutze ich, wenn ich über 'nen Treeview auf irgendwelche Daten zugreifen muss, Das Attribute Data. Derweil: Damit ist die Verwaltung so wunderbar einfach und man muss da nicht rgendwie rumhampeln, um an die gewünschte Information zu kommen.
  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 16:59 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