deutsche Hilfe hat geschrieben: Beschreibung
Erstellt eine Baum-Ansicht eines Verzeichnis-Baums, genau wie der Explorer dies tut. Es ermöglicht dem Anwender, durch sein Dateisystem zu navigieren und eine Datei oder ein Verzeichnis auszuwählen.
ExplorerTreeGadget mit Datei als Vorauswahl
Re: ExplorerTreeGadget mit Datei als Vorauswahl
Re: ExplorerTreeGadget mit Datei als Vorauswahl
Richtig!
Auswählen, aber nicht im Aufruf der Funktion. Hier gilt nur "Verzeichnis"
Oder liege ich da ganz falsch ?
Auswählen, aber nicht im Aufruf der Funktion. Hier gilt nur "Verzeichnis"
Oder liege ich da ganz falsch ?
michel51
Mac OS X Snow Leopard (10.6.8 ) Intel
PureBasic V 5.11(X64), V 5.21(x64)
Zum Lernen ist niemand zu alt.
Mac OS X Snow Leopard (10.6.8 ) Intel
PureBasic V 5.11(X64), V 5.21(x64)
Zum Lernen ist niemand zu alt.
Re: ExplorerTreeGadget mit Datei als Vorauswahl
Nein, stimmt schon, mal abgesehen von den Pattern. Aber schau mal :michel51 hat geschrieben:Richtig!
Auswählen, aber nicht im Aufruf der Funktion. Hier gilt nur "Verzeichnis"
Oder liege ich da ganz falsch ?
Das ist schlicht falsch, denn das Control kann durchaus beides anzeigen. Da hast du dich dann wohl etwas falsch ausgedrueckt.dann kann das ExplorerTreeGadget NUR Verzeichnisse darstellen und keine Dateien.
Re: ExplorerTreeGadget mit Datei als Vorauswahl
Da hast du sicher nicht so ganz unrecht.edel hat geschrieben:Nein, stimmt schon, mal abgesehen von den Pattern. Aber schau mal :michel51 hat geschrieben:Richtig!
Auswählen, aber nicht im Aufruf der Funktion. Hier gilt nur "Verzeichnis"
Oder liege ich da ganz falsch ?
Das ist schlicht falsch, denn das Control kann durchaus beides anzeigen. Da hast du dich dann wohl etwas falsch ausgedrueckt.dann kann das ExplorerTreeGadget NUR Verzeichnisse darstellen und keine Dateien.

Was war denn die ursprüngliche Frage? Olaf wollte eine Datei mit den ExplorerTreeGadget nicht nur darstellen, sondern auch markieren (als default voreinstellen), wenn die den ersten Post richtig verstanden habe.
Das ist aber nicht möglich, da nur Verzeichnis vorgesehen ist.
Die Darstellung von Dateien im Tree ist sicher möglich und die Auswahl per Mausclick auch (habs jetzt nicht probiert).
michel51
Mac OS X Snow Leopard (10.6.8 ) Intel
PureBasic V 5.11(X64), V 5.21(x64)
Zum Lernen ist niemand zu alt.
Mac OS X Snow Leopard (10.6.8 ) Intel
PureBasic V 5.11(X64), V 5.21(x64)
Zum Lernen ist niemand zu alt.
-
- Beiträge: 27
- Registriert: 26.02.2009 10:11
Re: ExplorerTreeGadget mit Datei als Vorauswahl
Also ich leite vom Namen "ExplorerTreeGadget" eine strukturierte Datei- und Verzeichnisdarstellung ab. Zum Windows Explorer gehören ja auch eine vollständige Anzeige aller Inhalte und standartmäßig zeigt das Gadget ja auch alles an. Die Auswahl lässt sich ja dann mit #PB_Explorer_NoFiles und den anderne "No" Flags einschränken. Zudem arbeitet das Ganze ja auch mit Pattern. Somit sehe ich den Fokus schon auch auf den Dateiinhalt, was eine Vorauswahl (auch gerade im Zusammenhang mit dem Default-Verzeichnis und den Pattern) durchaus Sinn macht.
Die Anpassungen von edel führen zum Erfolg. Jetzt läuft das Ganze komplett richtig. Vielen Dank, Gemeinde!
Die Anpassungen von edel führen zum Erfolg. Jetzt läuft das Ganze komplett richtig. Vielen Dank, Gemeinde!
Re: ExplorerTreeGadget mit Datei als Vorauswahl
CODE von Edel fürs ExplorerTreeGadget:
Hatte gehofft, dass der Code auch fürs ExplorerListGadget funktioniert, leider nicht 
Code: Alles auswählen
Procedure SelectFile(Gadget.i, File.s)
Protected path.s
Protected hItem.i
Protected item.TVITEM
Protected buffer.s{#MAX_PATH}
Protected result.i
path = GetPathPart(File)
If Not path
path = GetGadgetText(Gadget)
path = GetPathPart(path)
EndIf
file = GetFilePart(file)
SetGadgetText(Gadget,path)
hItem = SendMessage_(GadgetID(Gadget),#TVM_GETNEXTITEM, #TVGN_CARET, 0)
If hItem
hItem = SendMessage_(GadgetID(Gadget),#TVM_GETNEXTITEM, #TVGN_CHILD, hItem)
If hItem
item\mask = #TVIF_TEXT | #TVIF_HANDLE
item\pszText = @buffer
item\cchTextMax = #MAX_PATH
While hItem
item\hItem = hItem
SendMessage_(GadgetID(Gadget), #TVM_GETITEM, 0, item)
If CompareMemoryString(@file,@buffer,#PB_String_NoCase) = #PB_String_Equal
SendMessage_(GadgetID(Gadget),#TVM_SELECTITEM, #TVGN_CARET, hItem)
result = #True
Break
EndIf
hItem = SendMessage_(GadgetID(Gadget),#TVM_GETNEXTITEM, #TVGN_NEXT, hItem)
Wend
EndIf
EndIf
ProcedureReturn result
EndProcedure
If OpenWindow(0, 0, 0, 400, 200, "ExplorerTreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ExplorerTreeGadget(0, 10, 10, 380, 180, "C:\Windows\*.exe")
SetActiveGadget(0)
Debug SelectFile(0,"notepad.exe")
;SelectFile(0,"C:\Windows\notepad.exe")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Repeat
PureBasic
ForEver
PureBasic
ForEver
Re: ExplorerTreeGadget mit Datei als Vorauswahl
Mit Hilfe der Suche:
Code: Alles auswählen
EnableExplicit
Define EventID
Procedure FindListItem(GadgetID.w,Expression.l,fMode.b=0,Column.b=0,iStart.l=0)
Protected hwndListbox.l, Position.l, ItemCount.l, Length.l, i.l, Label.s
Protected LVITEM.LV_ITEM
If Not IsGadget(GadgetID) : ProcedureReturn -1 : EndIf
hwndListbox = GadgetID(GadgetID) : Position = -1
If fMode
Position = Expression
Else
ItemCount = CountGadgetItems(GadgetID) - 1
Length = lstrlen_(Expression)
For i=iStart To ItemCount
Label = GetGadgetItemText(GadgetID,i,Column)
If CompareMemoryString(Expression,@Label,0,Length) = 0
Position = i : Break
EndIf
Next
EndIf
SendMessage_(hwndListbox,#WM_VSCROLL,#SB_TOP,0)
SendMessage_(hwndListbox,#LVM_ENSUREVISIBLE,Position,1)
If Position > SendMessage_(hwndListbox,#LVM_GETCOUNTPERPAGE,0,0)-1
SendMessage_(hwndListbox,#WM_VSCROLL,#SB_PAGEDOWN,0)
SendMessage_(hwndListbox,#WM_VSCROLL,#SB_LINEUP,0)
EndIf
LVITEM\mask = #LVIF_STATE
LVITEM\state = #LVIS_SELECTED
LVITEM\stateMask = #LVIS_SELECTED
SendMessage_(GadgetID(GadgetID), #LVM_SETITEMSTATE, Position, @LVITEM)
SetActiveGadget(GadgetID)
ProcedureReturn Position
EndProcedure
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ExplorerListGadget(1,0,0,WindowWidth(0),WindowHeight(0),"C:\Windows\*.exe",0)
FindListItem(1,@"notepad.exe",0,0,0)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: ExplorerTreeGadget mit Datei als Vorauswahl
Code: Alles auswählen
LVITEM\mask = #LVIF_STATE
LVITEM\state = #LVIS_SELECTED
LVITEM\stateMask = #LVIS_SELECTED
SendMessage_(GadgetID(GadgetID), #LVM_SETITEMSTATE, Position, @LVITEM)
Ich glaube es würde sich für mich lohnen etwas intensiver in die Win-Api einzusteigen.....
Zuletzt geändert von Darie am 11.07.2011 23:46, insgesamt 1-mal geändert.
Repeat
PureBasic
ForEver
PureBasic
ForEver
Re: ExplorerTreeGadget mit Datei als Vorauswahl
Also bei mir wird der Eintrag markiert:


Re: ExplorerTreeGadget mit Datei als Vorauswahl
sehr komisch, bei mir leider nicht..... mmmmmhhhhh
zumindest in meinem Programm nicht, wenn ich das Snippet selber ausführe, ist "notepad.exe" markiert, dann such ich mal in meinem Code weiter.... Danke nochmal..
zumindest in meinem Programm nicht, wenn ich das Snippet selber ausführe, ist "notepad.exe" markiert, dann such ich mal in meinem Code weiter.... Danke nochmal..
Zuletzt geändert von Darie am 11.07.2011 23:56, insgesamt 1-mal geändert.
Repeat
PureBasic
ForEver
PureBasic
ForEver