-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
12. Dez 2020
Ungefähr so?
FormCreate (Deklration und FormDestroy spare ich mir hier)
IconDictionary := TDictionary<string, Integer>.Create;
VSTInitNode
var
Info: TSHFileInfo;
FileExtension: string;
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
11. Dez 2020
Ich versuche das heute Abend mal umzusetzen. Ich kann noch nicht sagen wann, aber ich melde mich dann hier wieder.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
11. Dez 2020
Das SHGetFileInfo habe ich jetzt im InitNode. Selbst mit einem TThread Queue drumherum bringt das nichts. Canvas erlaubt kein Zeichnen kommt trotzdem irgendwann.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
11. Dez 2020
Ich gebe auf mein VST wird niemals Bilder für die Dateien anzeigen können ohne Fehler zu werfen.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
11. Dez 2020
Gibt es dazu irgendwo Beispiele? Ich kann mir darunter überhaupt nichts vorstellen leider.
Ich hab das immer mit SHGetFileInfo gemacht weil ich dachte das sei richtig.
Und das hier im FormCreate scheint ja mal für absolut gar nichts sinnvoll zu sein
SmallImages := TImageList.Create(Self);
SmallImages.Handle := SHGetFileInfo('', 0, Info, SizeOf(TSHFileInfo), SHGFI_USEFILEATTRIBUTES or...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
11. Dez 2020
Auch wenn ich DestroyIcon(Info.hIcon); verwende, dasselbe Problem. Komische Fehlermeldungen und ein Zusammenbruch des Programms.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
11. Dez 2020
Damit habe ich dasselbe Problem wie mit SHGetFileInfo. Alles ruckelt und ist langsam gefolgt von seltsamen Canvas-Fehlern.
IconCache? Klingt irgendwie kompliziert und für mich nicht umsetzbar. Obwohl es interessant klingt. Würde man da einfach alle Dateiendungen die es gibt durchgehen, SHGetFileInfo aufrufen und sich das Info.iIcon holen?
Ich habe das jetzt so und es ruckelt ohne Ende.
...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
11. Dez 2020
Leider nicht, weil meine Ausgangsfrage nicht beantwortet wurde.
Ich weiß noch immer nicht, wie ich SHGetFileInfo richtig anwende, sodass ich jeweils das Icon habe, was zur Datei gehört.
Kommt das einfach in VSTGetImageIndexEx? Dann hab ich ja wieder die Ruckler und Aussetzer.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Kannst du mir zeigen, wie du das umgesetzt hast?
Hat jede Datei ein festes Icon oder das was zur Datei dazugehört und dynamisch bestimmt?
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Der Code da ist unwichtig, ist ein Fehler beim Kopieren passiert.
Es funktioniert ja ohnehin nicht, egal was ich mache und ob da jetzt eine Zuweisung fehlt.
Ich habe dieses Minimalbeispiel nur gebaut um grob zu zeigen wie alles aufgebaut ist. Und in der Hoffnung, dass ihr mir helfen könnt, SHGetFileInfo() dort richtig einzubauen.
So bekomme ich was angezeigt aber es ruckelt, zuckelt und...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Sorry wegen der langen Antwortzeit. Ich hatte hier Probleme die Datei hochzuladen.
Ich habe hier mal ein Minimalprojekt gebaut. Das zeigt das Problem und auch GANZ grob runtergebrochen meinen Aufbau mit meiner Liste.
Ich glaube hier dran kann man am besten sehen was das Problem ist.
Benötigt wird ein Verzeichnis mit sehr vielen Dateien und Verzeichnissen. Ich nehme dafür gerne das...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Eben dann wird doch alles gezeichnet. Das ist jetzt aber egal.
Ich verstehe gar nichts mehr.
Im InitNode rufe ich 1x SHGetFileInfo auf. Und egal, ob ich da jetzt mit einer ImageList was mache, mit Destroy oder ohne: die Fehler kommen trotzdem.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Also ich habe keine Ahnung wie man damit den ImageIndex aus der ImageList bekommen.
Alle deine Links kenne ich leider schon.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Dazu meine Gegenfrage
Hier in #7 wird es ja auch in jeden GetImageIndex aufgerufen und scheinbar funktioniert es.
https://www.delphipraxis.net/611374-post7.html
Oder ist das alles schon wieder so ein unbekannter Delphi-Fehler?
Hier ist auch ein Beispiel wo SHGetFileInfo ständig aufgerufen wird ohne irgendwas mit Destroy oder so
https://www.delphipraxis.net/1099656-post4.html
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Verstehe ich alles nicht. Ich habe es im Prinzip so gemacht wie hier aus #7
https://www.delphipraxis.net/611374-post7.html
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Wieso "so einiges"?
Ich würde es ja verbessern aber ich verstehe deinen Code nicht, weil da für mich der Kontext fehlt.
Ich habe das eben aber mal mit der ImageList versucht. Egal ob ein Icon schon da drin ist oder nicht, es werden in InitNode immer weiter Icons in die Liste gepackt.
Ich kapiere mittlerweile überhaupt nix mehr und besonders nicht, warum die ImageList angeblich so gut sein...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Ich verstehe deine Aussage aber auch nicht
Das mache ich doch gar nicht.
Und außerdem. Woher will das VST wissen, welchen Index es für welches Node braucht? Dafür muss ich doch zwangsweise in jedem Node 1x GetSHFileInfo aufrufen.
Ich zerstöre da nix. Diese komischen Probleme kommen erst bei mehreren Tausend Einträgen.
Hier nochjmal zusammengefasst wie ich es immer gemacht habe und...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Ungefähr so?
FormCreate
SmallImages := TImageList.Create(Self);
SystemImageList := SHGetFileInfo('', 0, Info, SizeOf(TSHFileInfo), SHGFI_USEFILEATTRIBUTES or SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
SmallImages.Handle := SystemImageList;
SmallImages.ShareImages := True;
VST.Images := SmallImages;
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Deinen Code verstehe ich nicht. Ich mache nichts anderes. Ich lade das Icon und weise den ImageIndex zu.
Ich habe den Code jetzt ausgelagert und komplett von der VST-Unit abgekoppelt. Trotzdem kommen Fehlermeldungen. Bis vor 10.3.3 war das alles gar kein Problem bin ich der Meinung.
Mein Code ist wie gesagt so.
SmallImages := TImageList.Create(Self);
SystemImageList := SHGetFileInfo('',...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Ich rufe SHGetFileInfo in InitNode auf. Das heißt es wird nur ein Icon geladen, wenn es benötigt wird. Ich dachte eigentlich immer, dass das helfen würde.
CoInitialize und CoUnInitialize um SHGetFileInfo hat hier nichts gebracht leider.
Könnte es helfen, wenn ich SHGetFileInfo ganz aus der Unit mit dem VST auslagere und schon dort aufrufe, wo ich meine Liste für das VST erestelle?
Im VST...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Reicht es, wenn ich die Imagelist einfach leere wenn ich das Fenster schließe?
Kannst du mir dafür ein Beispiele geben, wie ich das mit CoInitialize richtig mach?
Einen Fehler hab ich vergessen. "Falscher Parameter" aus der Vcl.Graphics kommt auch gelegentlich. Wie gesagt bei wildem umherscrollen.
Ich dachte immer ein VirtualStringTree hat kein Problem mit Millionen Einträgen. Bei mir sind...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Arbeitet VirtualStringTree intern mit Threads?
Weil ich selber nicht an dieser Stelle. Mit Bitmaps mache ich auch nichts.
Wenn das VST 10000 Einträge hat, jeder Eintrag 6 Spalten und jeweils 2 Icons und man richtig wild rauf und runter fährt, kommt es auch irgendwann zu dem Fehler.
Definitiv kommt es aber zu dem Fehler, wenn man auf einen Spalten-Trenner doppel-klickt, damit die Spalte die...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
10. Dez 2020
Keiner eine Idee was hier an VirtualStringTree falsch sein kann? Wenn ich keine Icons anzeige ist das Problem nicht da.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by DieDolly,
9. Dez 2020
Ich fülle ein VST ganz normal über Init, GetText, Free. So wie es ja sein soll. Das macht auch keine Probleme.
Im Event GetImageIndex macht diese Zeile hier Probleme, wenn ich öfter schnell rauf- und runterscrolle und danach irgendeine der Spaltenbreiten verändere.
Ein paar mal verändern geht, aber sobald ich auf einen Trenner doppelklicke, sodass sich die Spalte eigentlich die Auto-Größe...