Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - will schönere FileList- und DirectoryListBoxen


freq.9 - Do 23.10.03 10:56
Titel: will schönere FileList- und DirectoryListBoxen
Hab hier mal nen Screenshot damit ihr wisst was ich meine: [ Screenshot [http://www.realscripts.de/zeugs/boxen.jpg] ]
Die Links sind ausm Webweaver Editor und rechts das, das sind meine. Wie bekomm ich meine genau so hin ?


ErnestoChe - Do 23.10.03 11:03

Hi,

ab Delphi 6 gibt es die Shell-Komponenten z.B. TShellListView im Reiter
Beispiele der Komponentenleiste.

MFG

- Ernesto -


freq.9 - Do 23.10.03 11:11

Und das sagt mir nun was ? Bin noch ned so Erfahren in Sachen Delphi... Hab es erst 6 Tage !

sche****: hab grad meine .dpr an der ich nu schon 6 Tage arbeite überschrieben !! NEINNN
Boah Glück... hatte noch eine ältere version im Papierkorb.


maximus - Do 23.10.03 11:53

hi,

du wirst ja wohl in der Komponentenleiste das register 'Beispiele' finden? ...einfach delphi mal bisschen genauer ankucken :wink:


mirage228 - Do 23.10.03 12:26

und wie geht das ganze, wenn man kein Delphi6 hat? muss ich mir dann alles selbst machen (ListBox+ImageList+SHGETFILEINFO etc.)?

mfG
mirage228


Tino - Do 23.10.03 12:26

mirage228 hat folgendes geschrieben:
und wie geht das ganze, wenn man kein Delphi6 hat? muss ich mir dann alles selbst machen (ListBox+ImageList+SHGETFILEINFO etc.)?

In deinem Profil hast du aber angegeben das du D6 Pers hast.


mirage228 - Do 23.10.03 12:32

Ich wollte aber gerne eine Lösung für Delphi 3 Professional haben, da ich Delphi6 Personal so gut wie nicht benutze und ich es für evtl. kommerzielle Anwendung auch nicht nutzen darf.
Daher interessierte mich eine einfachere Lösung (als alles manuell zu machen) in Delphi 3 Prof.

mfG
mirage228


ErnestoChe - Do 23.10.03 12:35

Hi,

@mirage228
Ja. Bei Delphi 5 ist im Ordner Demos das Beispiel-Projekt Virtual ListView dabei. Da kann man sich anschauen wie das geht. Ob's das in den niedrigeren Versionen auch gibt weiss ich nicht.

MFG

- Ernesto -


freq.9 - Do 23.10.03 13:28

Naja ich brauch fpr das ShellTreeView auch ein ShellListView und da sind immer diese großen Icons... ich will aber ne Liste. Wie bekomm ich das hin ?


ErnestoChe - Do 23.10.03 13:33

Hi,

ViewStyle auf vsList oder vsReport stellen. Schau dir erstmal in Ruhe alle Eigenschaften im OI an.

MFG

- Ernesto -


freq.9 - Do 23.10.03 13:40

Wenn ich beides in mein Form gepackt hab und dann die sachen zuweise was zu wem gehört dann kommt:
Delphi 6.0 Pers hat folgendes geschrieben:
Access violation at address 00328B69 in module 'designide60.bpl'. Read of address 00000000

... und ich komm da ned mehr raus und muss Delphi über Strg+Alt+Entf > Prozesse killen...


mirage228 - Do 23.10.03 14:07

Verwendet du ein XP-Manifest?

Damit solls in Verbindung mit dem Style vsReport Probleme geben, soweit ich weiss!

mfG
mirage228


freq.9 - Do 23.10.03 14:25

ja ich nutz nen WinXP-Manifest... Wie kann ich das denn wenn beheben bzw. umgehen ?


maximus - Do 23.10.03 17:22

Ich zitiere aus der delphi-praxis:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
...verhindern, dass es unter XP eine Zugriffsverletzung mit TListView gibt?  
Autor: Thomas Stutz  
2 Kommentar(e) zu diesem Tip [Neuer Kommentar schreiben] 
[ Tip ausdrucken ]     

Tip Bewertung (4):   
      





  The TListView with a vsReport style causes an access violation 
  when you run your project with a XP manifest resource. 

  The VCL wrapper has a bug and you must patch sources. 
  Just copy the comctrls.pas unit in the folder with your own 
  project and modify the UpdateColumn method. 
  After compiling the project, a comctrls.dcu is created 
  and you can replace the original comctrls.dcu with the 
  patched one. 

}
 


  Wenn ein XP Manifest als Ressource in eine Exe-Datei eingebunden 
  wird, um einer Applikation das neue XP-Design zu verleihen, 
  gibt es bei der TListView mit Style vsReport eine Zugriffsverletzung 
  und die Anwenung lässt sich nicht starten. 

  Das ist ein VCL Bug und kann behebt werden, indem 
  comctrls.pas modifiziert wird. 
  Kopiere die comctrls.pas in dein Projekte-Verzeichnis und 
  ändere die UpdateColumn Methode wie folgt. 
  Nach dem Kompilieren wird eine Comctrls.dcu Datei erstellt. 
  Die original Comctrls.dcu kann nun durch die modifizierte ersetzt werden. 
}
 


// ComCtrls.pas: 

procedure TCustomListView.UpdateColumn(AnIndex: Integer); 
{...} 
with Column, Columns.Items[AnIndex] do 
begin 
  { PATCH start:} 
  // mask := LVCF_TEXT or LVCF_FMT or LVCF_IMAGE; 
  mask := LVCF_TEXT or LVCF_FMT; 
  if FImageIndex >= 0 then 
    mask := mask or LVCF_IMAGE; 
  { PATCH :end } 
  {...} 
end;


cu,[/quote]


scrooge - Fr 24.10.03 11:48

Komisch, bei mir finde ich kein ComCtrls.pas !!


freq.9 - Fr 24.10.03 13:45

da muss ich aber sagen dass ich mich dem scrooge anschliesse... ich hab auch keine comctrls.pas


mirage228 - Fr 24.10.03 13:47

Die Sourcen, also die PAS Dateien, der Units werden erst ab einer Professional Version von Delphi mitgeliefert.

mfG
mirage228


freq.9 - Fr 24.10.03 13:56

ja und ich hab 6 Pers... was nu ?


Delete - Fr 24.10.03 19:14

Delphi 6 Personal:
C:\Programme\Borland\Delphi6\Source\Rtl\Win

Also bei mir habe ich da eine comctrls.pas. :roll:


Delete - Fr 24.10.03 19:44

Da stellt sich doch die Frage: Woher, @Luckie? Laut allen Borland-Info-Blättern gibt´s die Sourcen nicht in den Personal-Versionen.

Das ist eben so ein Kritikpunkt, den ich bei Borland habe. Offiziell ist nur Delphi 7 100% kompatibel zur neuen Shell von Windows XP. Die Besitzer älterer Versionen schauen in die Röhre, wenn sie nicht gerade eine Pro- oder Enterprise-Version zum Ändern der Sourcen haben.

Bei Microsoft gibt´s mit dem PSDK gleich einen Satz neuer Headerdateien dazu, die man auch mit einem Visual C++ Standard nutzen kann. So was würde ich mir von Borland auch mal wünschen.

Aber das habe ich schon so oft gesagt ... :roll: ... einen Sinn hat´s leider ohnehin nicht.


Delete - Fr 24.10.03 19:50

Die SysUtils uä. habe ich auch nicht. Aber kuck dir mal den Pfad an, das sind wohl nur die Sourcen von den dateien, die als Header Übersetzungen gelten können. Sourcen die bei der D6 Personal dabei sind:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
 Datentr„ger in Laufwerk C: ist SYSTEM
 Datentr„gernummer: 2764-2CB9

 Verzeichnis von C:\Programme\Borland\Delphi6\Source

2003-10-24  19:49       <DIR>          .
2003-10-24  19:49       <DIR>          ..
2003-10-24  19:49                    0 foo.txt
2003-10-22  06:36       <DIR>          Rtl
2003-10-22  06:36       <DIR>          Samples
2003-10-22  06:36       <DIR>          Vcl
               1 Datei(en)              0 Bytes

 Verzeichnis von C:\Programme\Borland\Delphi6\Source\Rtl

2003-10-22  06:36       <DIR>          .
2003-10-22  06:36       <DIR>          ..
2003-10-22  06:36       <DIR>          Common
2003-10-22  06:36       <DIR>          Sys
2003-10-22  06:36       <DIR>          Win
               0 Datei(en)              0 Bytes

 Verzeichnis von C:\Programme\Borland\Delphi6\Source\Rtl\Common

2003-10-22  06:36       <DIR>          .
2003-10-22  06:36       <DIR>          ..
2001-05-22  06:00                1.666 ComConst.pas
2001-05-22  06:00                6.537 RTLConsts.pas
               2 Datei(en)          8.203 Bytes

 Verzeichnis von C:\Programme\Borland\Delphi6\Source\Rtl\Sys

2003-10-22  06:36       <DIR>          .
2003-10-22  06:36       <DIR>          ..
2001-05-22  06:00                7.223 SysConst.pas
               1 Datei(en)          7.223 Bytes

 Verzeichnis von C:\Programme\Borland\Delphi6\Source\Rtl\Win

2003-10-22  06:36       <DIR>          .
2003-10-22  06:36       <DIR>          ..
2001-05-22  06:00               27.622 AccCtrl.pas
2001-05-22  06:00               18.428 AclAPI.pas
2001-05-22  06:00              253.713 ActiveX.pas
2001-05-22  06:00              276.675 CommCtrl.pas
2001-05-22  06:00               36.536 CommDlg.pas
2001-05-22  06:00               23.803 DDEml.pas
2001-05-22  06:00                8.098 Dlgs.pas
2001-05-22  06:00                5.453 FlatSB.pas
2001-05-22  06:00               32.169 ImageHlp.pas
2001-05-22  06:00               38.111 Imm.pas
2001-05-22  06:00                3.517 LZExpand.pas
2001-05-22  06:00               22.772 Mapi.pas
2001-05-22  06:00               45.687 Messages.pas
2001-05-22  06:00              187.859 MMSystem.pas
2001-05-22  06:00               15.245 MultiMon.pas
2001-05-22  06:00               10.023 Nb30.pas
2001-05-22  06:00              160.655 Ole2.pas
2001-05-22  06:00               39.373 OleCtl.pas
2001-05-22  06:00               46.076 OleDlg.pas
2001-05-22  06:00              149.661 OpenGL.pas
2001-05-22  06:00              139.176 PenWin.pas
2001-05-22  06:00               16.825 PsAPI.pas
2001-05-22  06:00               87.758 RegStr.pas
2001-05-22  06:00               41.909 RichEdit.pas
2001-05-22  06:00               25.177 ShellAPI.pas
2001-05-22  06:00                3.762 SHFolder.pas
2001-05-22  06:00              138.794 ShlObj.pas
2001-05-22  06:00               15.979 TlHelp32.pas
2001-05-22  06:00               85.145 UrlMon.pas
2001-05-22  06:00            1.175.246 Windows.pas
2001-05-22  06:00              146.345 WinInet.pas
2001-05-22  06:00               39.768 WinSock.pas
2001-05-22  06:00               79.527 WinSpool.pas
2001-05-22  06:00               27.944 WinSvc.pas
              34 Datei(en)      3.424.831 Bytes

 Verzeichnis von C:\Programme\Borland\Delphi6\Source\Samples

2003-10-22  06:36       <DIR>          .
2003-10-22  06:36       <DIR>          ..
2001-05-22  06:00                8.605 Calendar.pas
2001-05-22  06:00               17.086 ColorGrd.pas
2001-05-22  06:00               10.948 DirOutln.pas
2001-05-22  06:00               10.980 Gauges.pas
2001-05-22  06:00               17.350 Spin.pas
               5 Datei(en)         64.969 Bytes

 Verzeichnis von C:\Programme\Borland\Delphi6\Source\Vcl

2003-10-22  06:36       <DIR>          .
2003-10-22  06:36       <DIR>          ..
2001-05-22  06:00               11.653 Consts.pas
2001-05-22  06:00                1.569 OleConst.pas
2001-05-22  06:00               27.209 StdActns.pas
               3 Datei(en)         40.431 Bytes

     Anzahl der angezeigten Dateien:
              46 Datei(en)      3.545.657 Bytes
              20 Verzeichnis(se),  12.263.514.112 Bytes frei


Delete - Fr 24.10.03 21:18

Hm, vielleicht wird bei einem Service Packs ja teilweise Quellcode mitgeliefert? Du hast doch sicher die D6-Updates eingespielt? Beim D5 SP1 war der Source mit dabei, aber ... hm, schon lange her ... ich weiß nicht mehr genau, ob es separate SPs für die einzelnen Versionen gab, oder ob es nur ein SP für alle Versionen (Standard -> Enterprise) gab/gibt. :(


mirage228 - Fr 24.10.03 22:16

Hi Matthias!

Bei meinem Delphi6 PE (ohne Updates) sind die selben Sources bei, wie Luckie sie aufgezählt hat! Also werden die wohl von anfang an dabei sein (Source zu z.B. SysUtils sind, wie gesagt, nicht vorhanden)

mfG
mirage228


Delete - Fr 24.10.03 23:04

Nein, habe noch keine eingespielt. War bisher zu faul fünf mal die Seriennumer und den Key einzugeben. :evil:


freq.9 - So 26.10.03 14:03

Luckie hat folgendes geschrieben:
Delphi 6 Personal:
C:\Programme\Borland\Delphi6\Source\Rtl\Win

Also bei mir habe ich da eine comctrls.pas. :roll:

Naja muss sagen ich hab da auch eine CommCtrl.pas