| |
|
|
- Seite 1 - |
|
Dieter Zornow | Ich habe mich mal an einem Listview versucht, das Directories einliest, dabei werden die zum Eintrag passenden Icons verwendet, eben wie bei Totalcommander oder Freecommander. Das funktioniert auch sehr gut, aber auf meinem Hauptrechner und auf meinem Notebook stürzt das Programm bei nur einem Verzeichnis "Adressen" ab. Unter Profan spätestens beim zweiten öffnen, mit Profan2CPP kompiliert kann ich es bis zu 5x öffnen bevor es abstürtzt. Ich suche nun schön seit Tagen nach einem Fehler und kann nichts finden, da es ja auf jedem Rechner nur diese eine Verzeichnis ist, alle anderen funktionieren einwandfrei. Das Verzeichnis hat keinerlei Besonderheiten und ist auch nicht groß. Weder XPSE noch der in profan2cpp eingebaute Inspector haben einen Fehler im Code gefunden. Könnte mal jemand testen, ob es auf seinem Rechner ebenfalls so ein Phänomen gibt. Lauffähiger Quelltext und Exe mit Profan2Cpp kompiliert liegen bei. Funktioniert wegen Subclassing Doppelklick und Rechtsklick nur unter XProfan 11. Die Hauptbestandteile dürften aber auch in anderen Versionen laufen. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 15.07.2009 ▲ |
|
|
|
|
| |
|
- Seite 2 - |
|
Jörg Sellmeyer | Ich meinte auch die SubClassProc. Was ist denn in Deinem Verzeichnis drin. Wie gesagt: Bei mir stürzt es auch häufiger bei "A" ab aber eben auch bei anderen Verzeichnissen. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 16.07.2009 ▲ |
|
|
|
|
Frank Abbing | Stell mal sicher, dass am Pfadende kein "/", bzw. "" steht. Bzw. dass es dort steht, habs nicht mehr so gut in Erinnerung. Ich meine, ich hätte auch schon diese Probleme damit gehabt bei der Listview.dll. |
|
|
| |
|
|
|
Dieter Zornow | Danke für die Tipps, aber es ändert sich nichts.
@If: mein subclassing ist vielleicht ungewöhnlich und einfach, aber es funktioniert einwandfrei und dürfte somit zulässig sein. Wenn ich das Subclassing herausnehme und auf einfachen Klick reagiere ändert sich nichts am Absturz. @Jörg in dem Verzeichnis sind normale Dateien, hat aber damit auch nichts zu tun, da es mit dem Namen BAdressen ohne Problem geht. @Frank in der Richtung ist alles ok, habe mir schon alle Pfade anzeigen lassen.
Da es scheinbar keine Lösung gibt, muss ich das Ding wohl aufgeben, obwohl es mich brennend interessiert was der Grund ist. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 17.07.2009 ▲ |
|
|
|
|
| Wenn man die subClassProc umgestellt hat, dann reicht ein KompilierenMarkierenSeparierendamit nichts abstürzt.
Ich hab zwar mit imageListen noch nichts angefangen aber ohne Icons kann ich in jedes Verzeichnis wechseln. |
|
|
| |
|
|
|
| Schau mal: KompilierenMarkierenSeparieren
Proc AddAssociatedIcon
Parameters name$,i&,Imagelist&
var Hicon&= External("Shell32","ExtractAssociatedIconA",%hinstance,addr(name$),addr(i&))
External("comctl32.dll","ImageList_AddIcon",Imagelist&,HIcon&) Icon in Imagelist hinzufügen
External("USER32.DLL","DestroyIcon",HIcon&) Handle löschen
messagebox str$(imageList&),name$,0
var a&=External("comctl32.dll","ImageList_GetImageCount",Imagelist&)
messagebox "5","",0
return a&
endproc
|
|
|
| |
|
|
|
| Ohne: KompilierenMarkierenSeparierenstürzt das Programm nicht mehr ab, zumindest das hier: [...] . Ich habe einfach bisl rückwärts "geproggt" (im Sinne des Minimalbeispieles) bis es fehlerfrei funzt. Das heisst natürlich nicht, dass Fehler nicht auch an anderen Stellen entstanden sein können, aber eine funktionierende Basis ist selten schlecht zum Fehlerfinden. ^^ |
|
|
| |
|
|
|
Dieter Zornow | Ok, Danke
Ich werde es mal ausprobieren, wenn das bei mir auch läuft, werde ich den Fehler bestimmt finden, durch hinzutun Schritt für Schritt. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 17.07.2009 ▲ |
|
|
|
|
Dieter Zornow | @IF Dank deiner Vorarbeit funktioniert es nun bei mir einwandfrei. Ich kann Adressen zig mal öffnen. Ich habe zu Beginn erst mal alle Api-Funktionen so umgestellt wie in deinem Beispiel, von Addr() zu Bereich# und bei der Stringzuweisung einer Bereichsvariablen ein Null-Byte angehängt. Schon das hat es gebracht. Ist mir allerdings unverständlich Profan sollte das richtig machen und bei String Bereich#,0 bereits ein Null-Byte anhängen. mit addr(variable) muss dann scheinbar auch sehr vorsichtig umgehen, am besten gar nicht verwenden. Im Anhang ist die neue Version mit Icons und allem, könnte jemand mal testen ob es jetzt überall funktioniert, das wäre super wenn es so wäre.
Auf jeden Fall herzlichen Dank, ich hatte die Hoffnung schon fast aufgegeben, hier noch weiterzukommen. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 17.07.2009 ▲ |
|
|
|
|
| Gern geschehen!
Aus solch reagierendem ListView könnte man auch ein Control machen, dann hätte man es immer und überall und müsste sich nicht ums Drumherum kümmern. create("loadFile",getDir$("@"),10,10,200,200) |
|
|
| |
|
|
|
Frank Abbing | Dein Code liesse sich sicher noch optimieren. So sehen die Icons leider recht bescheiden aus, irgendwas passt noch nicht so ganz. Links eine Fileliste mittels der Listview.dll, rechts das Ergebnis mit deinem Code. |
|
|
| |
|
|
| |
|
- Seite 3 - |
|
|
Dieter Zornow | Ja, die Icons sind blasser, wahrscheinlich weil die Herkunft verschieden ist. Bei der Listview.dll habe ich aber bei mir festgestellt, dass nicht jede Datei ein Icon bekommt, deshalb habe ich eine andere Herkunft gewählt. Mal sehen was sich da machen läßt. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 18.07.2009 ▲ |
|
|
|
|
Frank Abbing |
Bei der Listview.dll habe ich aber bei mir festgestellt, dass nicht jede Datei ein Icon bekommt, deshalb habe ich eine andere Herkunft gewählt.
Hast du mit der neusten Version getestet? Bei der Technik, die ich früher verwendet habe (via COM), war es wohl so. Sollte jetzt aber nicht mehr der Fall sein. Mal als Anregug, ich verwende die API SHGetFileInfo anstelle des von dir verwendeten ExtractAssociatedIcon. Liefert eindeutig bessere Ergebnisse. |
|
|
| |
|
|