AGB  ·  Datenschutz  ·  Impressum  







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

Spaltenresize im tlistview

Ein Thema von Jan · begonnen am 26. Feb 2003 · letzter Beitrag vom 2. Mär 2003
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#1

Spaltenresize im tlistview

  Alt 26. Feb 2003, 23:12
Hallo DP!

Ich möchte, zwecks Benutzerfreundlichkeit, speichern, welche Breite den einzelnen Spalten eines Tlistviews vom Benutzer zugewiesen wurden, damit diese gespeichert werden können. Das soll aber nicht nur am Ende des Programms geschehen, sondern sobald der User die Spalten resized hat, soll der neue breite-wert gespeichert werden. Leider habe ich kein "oncolumnresize"-event oder ähnliches finden können, mit dem ich sowas hätte realisieren können. Hat da irgend jemand eine Idee?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Gaius

Registriert seit: 25. Feb 2003
Ort: Frankfurt
9 Beiträge
 
Delphi 7 Enterprise
 
#2
  Alt 27. Feb 2003, 09:05
Hallo,

um mitzukriegen wann eine Größenderung der Columns auftritt, fällt mir nur OnAdvancedCustomDrawItem ein.

Wenn Du in einer Draw-Routine etwas tust, dann achte aber darauf, alles mit Flags abzusichern (z. B. Aktion nur ausführen wenn sich wirklich was geändert hat) damit Du nicht ein Draw-Ereignis provozierst und Deine Routine wieder aufgerufen wird.

Viel Spass
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 27. Feb 2003, 18:40
Hallo Gaius,
Onadvancedcustomdrawitem wird ja nur dann ausgeführt, wenn ein eintrag im tlistview in irgendeiner Weise dargestellt wird, aber hat mit den spalten ja wenig zu tu, und genau die will ich ja in der breite verändern. Abgesehen davon ahbe ich keinen blassen schimmer, wie ich aus diesem event heraus finden soll, ob da nun gerade die Größe einer Spalte geändert wurde, oder nicht.
Hilfe ist also noch immer gefragt!
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 27. Feb 2003, 21:28
Also nach wildem rumsuchen im Netz hab ich folgendes gefunden:


http://www.swissdelphicenter.ch/torr...de.php?id=1264

Aber wie ich damit jetzt genau umgehen soll, und was ich da letztenendes an meinem Prog rumschreiben muss verstehe ich absolut nicht!
Könnte sich das vielleicht mal einer anschauen und mir weiterhelfen?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 27. Feb 2003, 22:19
Hallo,
Zitat von Jan:
Aber wie ich damit jetzt genau umgehen soll, und was ich da letztenendes an meinem Prog rumschreiben muss verstehe ich absolut nicht! Könnte sich das vielleicht mal einer anschauen und mir weiterhelfen?
Es steht ja da:
" Ein OnColumnResize Ereignis kann mit ein wenig Arbeit einer TListView
hinzugefügt werden. Installiere die PBExListview Komponente,
welche von der TListView abgeleitet ist.
Die Komponente besitzt 3 neue Ereignisse:
OnColumnResize, OnBeginColumnResize, OnEndColumnResize "

Es haldelt sich hie rdabei um eine neue Komponente die von der normalen ListView abgeleitet ist. Diese musst Du Compilieren und installieren.
Dann hast Du diese neuen Ereignisse zur Verfügung.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 27. Feb 2003, 22:58
Zitat:
Diese musst Du Compilieren und installieren.
Dann hast Du diese neuen Ereignisse zur Verfügung.
ganz dumm gefragt: Wie geht das?
Und muss ich dafür meinen Jetzigen listview ersetzen?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 1. Mär 2003, 15:12
Weiß denn wirklich niemand wie man sowas macht? wenn das da so beschrieben steht, kann das ja nicht allzu extrem schwer sein. Ich brauche nur infos dazu, welche optionen in delphi ich da benutzen muss.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#8
  Alt 1. Mär 2003, 15:57
Hallo Jan,

ich habe es auch noch nie gemacht, aber so könnte es gehen.
Erste möglichkeit:
Die Unit die beim SDC ist, speicher sie Dir mal auf die Festplatte.
Der Name der Unit steht ja auch da.
Dann klickst Du in Delphi im Menü auf Komponente\Komponente installieren.
In dem Fenster was sich öffnet, klickst Du auf In neues Package.
Dort namen und Pfad der Unit angeben und Namen und Verzeichniss für das neue Package angeben und dann auf OK.
So, nun klickst Du auf Datei alles schliessen in DElphi, so das nur noch die IDE da ist und machst dann auf dieses neue Package ein Doppelklick. Das hat so ein orangenes Symbol. Danach sollte es installiert werden.
Nachteil:
Du wirst Deine jetzigen ListViews austauschen müssen.

Zwei möglichkeit: //Wäre evtl. sinnvoller aber schwieriger
Da Du Delphi Raumschiff hast, hast Du auch die Sources der ganzen Komponenten. Such Dir die für die normale ListView raus. Ergänze den Source um den vom SDC. Dann speichern und gleiche Prozedur wie oben durchführen. Mach Dir aber vorher ne Sicherung der normalen Unit.
Dann sollte man bei der normalen LV die neuen Eigenschaften haben.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#9
  Alt 1. Mär 2003, 17:19
Hallo Daniel B,
Also das 2. Hört sich da wesentlich besser an als das 1.
Nun habe ich schonmal die unit comctrls.pas geöffnet und da den Abschnitt für tlistview rausgesucht. Dann habe ich den code ergänzt und die unit gespeichert, nachdem ich eine Sicherheitskopie gemacht habe.
Dann habe ich auf kompo installieren geklickt, dann in neues package.
Dann hab ich die comctrls.pas ausgesucht und dann als packagenamen comctrls angegeben. wenn ich jetzt bestätige, dann will Delphi direkt speichern und installieren. Das geht aber dann nicht, weil angeblich das package "vcl" bereits comctrls beinhaltet.
Was mache ich falsch?
Wenn du Zeit hast, könnte man sich ja mal im chat treffen.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#10
  Alt 1. Mär 2003, 18:10
Hallo,

leider kann ich sowas nicht testen, da bei PE keine Quelltexte dabei sind.
Du solltest es aber mal mit einem anderen Namen versuchen. Einfach um mal zu sehen ob es überhaupt geht, ne es anders als comctrls als Package-Namen. Ansonsten könntest Du mal die vorhandenen Datein löschen und es einfach nochmal versuchen. Die ComCtrls.pas, .dcu löschen. Und die LV-Kompo von der Palette oben rausschmeissen.
Und dann es nochmal versuchen, oder unter einem anderen Namen mal. Aber sichere Dir mal vorher! das DElphi-Verzeichniss. Mach Dir auf jedenfall gute Sicherungen. Am besten halt Delphi-Verzeichniss und Registry vor dem ausführen, wenn es schief geht, einfach zurück kopieren.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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