| |
|
|
Dieter Zornow | Yo mich hiermal a una Treeview probiert, el el Verzeichnisse de el Platte einliest y cada Elemente abfragbar son. Der Code basiert weitestgehend en el Ejemplo de Uwe (Pascal). Es sí clever gemacht y yo quería el Rad no no neu erfinden. Das Ejemplo de Pascal ha el Nachteil, dass lo por el Assemblerroutinen no con el Windowsstyle 512 funktioniert. XProfan aber dummerweise en vielem esta Stil braucht para ordungungsgemäßen trabajo. Dashalb Yo el código algo verändert, unos pocos Sicherheiten qué el anklicken de no bereiten Laufwerken betrifft y en Ensamblador verzichtet. Es fast fertig, todavía no optimiert, pero se ejecuta. Lo son una Problema, el Yo no encontrar kann. Xprofan stürzt unregelmäßig de, Manchmal kann uno clic y clic y lo passiert gar nichts. Manchmal stürzt lo ya después de wenigen Klicks de. Ist unerklärlich como sí alles en gleichen Routinen läüft. Yo habe lo nun aufgegeben, como lo somit unbrauchbar es y el código begelegt. Tal vez findet sí alguien heraus, como stabil se. Fehler scheinen no disponible a ser, como weder el Inspector todavía XPSE algo a bemängeln haben. Im Augenblick se ejecuta lo sólo bajo XProfan 11, como einiges, no viel, su verwendet se. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 11.09.2008 ▲ |
|
|
|
|
Frank Abbing | Gibst du el PIDL eigentlich irgendwo otra vez frei?
Solche Se bloquea passieren oft, si Estructuras el verkehrte Größe besitzen oder en erneutem Benutzen vorher no vollständig gelöscht fueron. |
|
|
| |
|
|
|
Dieter Zornow | Das kann no ser, como sólo encima Profano no encima API eingelesen se |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 12.09.2008 ▲ |
|
|
|
|
Frank Abbing | Kann no ser? Also Yo sehe einiges a API en el INC, pero si du media...
~SHGetFileInfo(a&,0,SHF#,270,16393) -------------Flags: SHGFI_SMALLICON + SHGFI_PIDL
Das producido una PIDL-Handle, y meines Erachtens después de musst Si es usted el liberación. |
|
|
| |
|
|
|
Dieter Zornow | Sí du hast bastante, 1 Función son una PIDL (SHGetSpecialFolderLocation), el otro jeweils sólo el Icons. Das dürfte pero no el Programa stören, como el sólo jeweils 1 x al Programmanfang aufgerufen se. El Función el du media son eigentlich auch kein PIDL zurück
SHGFI_PIDLIndicates that pszPath is the address of a ITEMIDLIST structure rather than a path name.
Yo denke el problema liegt mehr en XProfan, porque incluso si yo me el Speicher zuknallen sería y alles otro einwandfrei se ejecuta, debería el Programa ebenfalls laufen y no abstürzen. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 12.09.2008 ▲ |
|
|
|
|
Dieter Zornow | Yo denke Yo el Fehler abgegrenzt. es el Función el el Clic el Cruz ermöglicht. Diese braucht uno aber ansonsten muss uno sólo direkt el Eintrag anklicken y el Eintrag füllen, bevor el Klicks en Cruz Wirkung zeigen. Man braucht also hier sólo algo besseres entonces gehts, me fällt aber gerade nichts mehr una.
Es el Übeltäter KompilierenMarcaSeparación
proc Getitem holt über das Kreuz
parameters sel&
declare hit#:dim hit#,16
declare po#:dim po#,8
clear hit#:clear po#
GetCursorPos(po#)
ScreenToClient(tv&,po#)
Long hit#,0=Long(po#,0)
Long hit#,4=Long(po#,4)
Long hit#,8 = 8 Tvht_onitemindent
Long hit#,12 = sel&
var pos& = sendmessage(tv&,4369,0,hit#) TVM_HITTEST
dispose hit#,po#
return pos&
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 12.09.2008 ▲ | |
|
|
|
|
Frank Abbing | Deswegen sí mi Vermutung en el vorvorhergehenden Posting. Solche unvermittelten Se bloquea riechen förmlich después de uno Speicherüberschreibung oder falscher Initialisierung. Tal vez auch uno fehlenden Sicherheitsabfrage, si una API tatsächlich el gewünschte Ergebnis geliefert ha. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | ¡Hola Dieter!
Bin No sicher, wo el Fehler liegt; el veröffendlichte Demo es sí ya algo älter...
En neueren Versionen (bajo XProfan 10) verwende Yo SubClassing, en después de el Message TVN_ITEMEXPANDINGW a fischen. Wenn esta auftritt, enthält el 4. Parámetro el WindowProc (LParam) una Pointer en una NMTREEVIEW-Struktur. NMTREEVIEW se z.B. auch en Selektion uno Items verwendet y enthält Infos para aktuellen y para vorher aktiven Item.
El Stuktur besteht grob dijo de uno NMHDR-, zwei TVITEM- y uno POINT-Struktur Stark vereinfacht y no lauffähig (!!) sähe el para XProfan 10 etwa así de: KompilierenMarcaSeparaciónstruct NMTREEVIEW=hwndFrom&,idFrom&,code&,action&,
maskO&,ItemO&,stateO&,stateMaskO&,TextO&,TextMaxO&,ImageO&,SelectedImageO&,ChildrenO&,ParamO&,
maskN&,ItemN&,stateN&,stateMaskN&,TextN&,TextMaxN&,ImageN&,SelectedImageN&,ChildrenN&,ParamN&,
x&,y&
--Die Bezeichnungen habe ich willkührlich gewählt: O=Old ; N=New
dim TvN#,NMTREEVIEW
proc DlgProc------------------------------------DlgProc-------------------------------------
parameters wnd&,msg&,wparam&,lparam&
if msg&=~WM_NOTIFY
TvN#=lparam&
if TvN#.Code&=~TVN_ITEMEXPANDINGW
TvItem&=TvN#.ItemN&----TvItem&: Eintrag, dessen "+" geklickt wurde
---Weitere Aktionen, z.B. sendmessage(%hwnd,5000,0,0)
endif
endif
return ~CallWindowProc(DlgProc&,wnd&,msg&,wparam&,lparam&)
endproc------------------------------------------------------------------------------------n class=s2>-
Sollte el geklickte Eintrag todavía no Untereinträge haben, voluntad esta eben nachgeladen. Zu testen de paso con SendMessage(Tv&,~TVM_GETNEXTITEM,~TVGN_CHILD,Item&) (Gibt el Handle des 1. ChildItems zurück)
Noch qué: Um Ereignisse por SubClassing abzufragen, sende Yo meist de el WindowProc heraus una selbstdefinierte y como UserMessage angemeldete Message ans Ventana principal, en el WaitInput en el Haupteingabeschleife a durchbrechen. Abhängig de dieser Message (oder ihren Parametern) voluntad entonces irgendwelche Aktionen ausgelöst.
Universelles lauffähiges Snipped tener Yo en el Moment por desgracia, no a Hand Hoffe lo hilft trotzdem
SeeYou Pascal |
|
|
| |
|
|
|
Dieter Zornow | @Uwe, Gracias dir, Yo voluntad lo veces ausprobieren si qué se. Wichtig es sólo, dass lo bajo cada Windowstyle se ejecuta.
Saludo
Dieter |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 15.09.2008 ▲ |
|
|
|