AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi ListView, breite ändern - Items neu zeichnen.

ListView, breite ändern - Items neu zeichnen.

Ein Thema von shifter · begonnen am 3. Okt 2006 · letzter Beitrag vom 3. Okt 2006
Antwort Antwort
Seite 2 von 2     12
EWeiss
(Gast)

n/a Beiträge
 
#11

Re: ListView, breite ändern - Items neu zeichnen.

  Alt 3. Okt 2006, 18:24
Zitat von shifter:
Irgend wie versteht mich hier niemand .

Wenn ich Explorer in einder stelle wo ich Bilder habe öffne mit ansicht z.B. Mittelgrosse symbole,
bekomme ich zu sehen Thumbnails mit beschriftung. Wenn ich das Fenster jetzt vergrössere oder verkleinere, passen sich die Items den Fenster an ( ministens von der breite ).
Also wenn Fensterbreite ist X -> passen da z.B. 5 Objekte in der breite. Wenn ich jetzt das Fenster vergrössere X+200px Passen jetzt z.B. 7 Objekte in der Breite.

Und das möchte ich hinkriegen.

gruss
seba
Wiedermal das berühmte subclassing (WinProc)
Der ansatz WM_RESIZE ist nicht verkehrt.!
Reicht aber nicht.

Du benötigst den REC des Listviews.
Holen über die API GetWindowRrec vom hwnd des Listviews.
Die breite des Rec vergleichen mit der Anzahl an objekten dann dadurch teilen und neu zeichnen

gruß
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

Re: ListView, breite ändern - Items neu zeichnen.

  Alt 3. Okt 2006, 19:07
Noch was anderes zu den Thema!
also wenn ich das richtig verstanden habe möchtest du objekte die im Listview
angezeigt werden nicht neuzeichnen sondern reorganisieren abhängig von der breite
der objekte welche du vorher festgelegt hast.

Beispiel:
Ein listview ist unterteil in Row und Col stelle es dir also als gitter vor.
Wenn du nun zwei objekt hast welche 100x100 groß sind dann benötigst du zwei columheader(col) und ein Row
Wird das Listview nun verschoben, verkleinert mußt du dafür sorge tragen das wie oben
beschrieben du den REC des Listview kennst.

Den holst du über GetWindowRec(handle vom listview).
Diesen mußt du immer durch die breite und höhe deiner Objekte teilen.
Da abhängig davon row/cols entfernt bzw.. addiert werden.

Nur breite verändern!
Ist der rec weniger als 200 + space(freiraum zwischen jeden objekt) dann mußt du
dafür sorgen das dein objekt scaliert wird oder aber Col um 1 minimiert wird.

Bei der ersten Methode bleiben beide objekte erhalten aber verkleinert
Bei der zweiten ist nur noch eins vorhanden(sichtbar).

Wenn du beides verschiebst. geht es im grunde genauso.
Also wenn breite mehr als 200 + space dann col addieren und row abziehen wobei das objekt von Row dann
in den neu geschaffenenen Columnheader angezeigt wird.

Hoffe das ist es was du meinst. Sorry für die lange geschichte!

gruß
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: ListView, breite ändern - Items neu zeichnen.

  Alt 3. Okt 2006, 19:33
Das ist exackt was ich brauche.
Aller dings ich komme mit der materie nicht ganz klar.
Aber bevor ich Euch weiter belestige werde ich noch versuchen das selber zu lösen,
klingt aber schririg. Vor allem wie bringe ich ihm dazu es die Items zu zeichnen da wo ich sie brauche.

hmm ..

ich werde versuchen.


danke erstmal.

gruss
seba
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

Re: ListView, breite ändern - Items neu zeichnen.

  Alt 3. Okt 2006, 19:39
Vor allem wie bringe ich ihm dazu es die Items zu zeichnen da wo ich sie brauche. Eigentlich wenn es standard items sind zeichnen sich diese von selbst.
Wenn du aber Thumbnails in der Listview anzeigen willst, mit Rahmen und so
das wird schwieriger.

gruß
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: ListView, breite ändern - Items neu zeichnen.

  Alt 3. Okt 2006, 20:15
Das ist nähmlich der fall, ich will Thumbnails zeichnen mit allem drum und Dran.

Habe erst mit ScrollBox versucht hatt eingentlich ganz gut geklapt aber es war zu langsam.
Ich habe mir erhoft mit ListView geht es schneller.



gruss
seba
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: ListView, breite ändern - Items neu zeichnen.

  Alt 3. Okt 2006, 21:46
Wie kann ich den Abstand zwischen den Thumbnails ( Items ) ändern ???

gruss
seba
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23: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