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.
- 
				Olaf.Renns
 - 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
EndIfRepeat
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
EndIfRe: 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

