FileRequester / neuen Ordner erzeugen
Übersicht

![]() |
4pacBetreff: FileRequester / neuen Ordner erzeugen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi liebe Coderz,
hat schon jemand von Euch ein Workaround gefunden, wie man einen FileRequester bauen kann, der einem gestattet, ein Verzeichnis neu anzulegen, wenn man ihn z.B. benutzt um ein Zielverzeichnis zum abspeichern einer Datei festzulegen? Defaultmäßig geht das leider nicht beim B+ FileRequester, obwohl so eine Funktion sogar in eher spartanischen Interfaces wie z.B. dem von Winzip absolut üblich ist. Viele Grüße, Thomas |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
unter Win98 ist sowas gar nicht möglich mit den Standarddialog - gleiches Prog unter XP: mit Button "neuen Ordner erzeugen" - auf Win98 ohne... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
Echt ![]() Grüße, Thomas |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaub ich versteh dich nicht ganz.
du willst ein requestfile-dialog, wo man einen neuen Ordner anlegen kann? geht bei mir einwandfrei. Oder was meinst du sonst ??? |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
warum geht es dann nicht bei mir?
http://www.blitzbase.de/befehlegui/requestdir.htm (screenshot inside - win98SE) |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
achso, na dass ist ja der DirRequester. Okay, dass geht auch bei mir nicht.
MfG |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
http://www.blitzbase.de/befehlegui/requestfile.htm
Tada, da gehts und es ging doch um nen FILERequester oder nicht?? Naja, geht das bei dir nicht Thomas? walski |
||
buh! |
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm...ich bräuchte natürlich eigentlich einen DirRequester, für das Output einer Stapelverarbeitung, und habe mich insoweit falsch ausgedrückt. Aber vielleicht kann ich das Problem einfach umgehen, indem ich anstatt einers DirRequesters einen FileRequester verwende, und die Function dementsprechend ein wenig umcode. Das ist ein guter Ansatz, ich danke Dir, Walski.
Die erste wirklich große Gelegenheit, BlitzPlus in meinem Job einzusetzen, für ein paar effiziente kleine Stapelverarbeitungen mit einer brauchbaren Win-GUI. Grüße, Thomas |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
das wirst du nicht hinkriegen mit filerequest | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich weiß zwar nicht warum, aber ich habs mal gemacht:
Code: [AUSKLAPPEN] Function ADVDirRequest$() Local DirRequest Local DriveSelect Local DriveLabel Local DirBox Local CurPath Local OK Local Cancel Local NewFolder DirRequest = CreateWindow("Select a Folder",46,150,400,300,Desktop(),1) DriveSelect = CreateComboBox(288,3,100,100,DirRequest,0) AddGadgetItem DriveSelect,"" SelectGadgetItem DriveSelect,0 SetGadgetLayout DriveSelect,1,0,1,0 DriveLabel = CreateLabel("Select a Drive:",203,4,80,20,DirRequest,0) SetGadgetLayout DriveLabel,1,0,1,0 DirBox = CreateListBox(1,60,390,190,DirRequest,0) AddGadgetItem DirBox,"" SelectGadgetItem DirBox,0 SetGadgetLayout DirBox,1,0,1,0 CurPath = CreateLabel("Pfad:",2,25,300,35,DirRequest,0) SetGadgetLayout CurPath,1,0,1,0 OK = CreateButton("OK",3,252,100,20,DirRequest,0) SetGadgetLayout OK,1,0,1,0 Cancel = CreateButton("Cancel",288,252,100,20,DirRequest,0) SetGadgetLayout Cancel,1,0,1,0 NewFolder = CreateButton("Create Folder",139,252,100,20,DirRequest,0) SetGadgetLayout NewFolder,1,0,1,0 DisableGadget(DirRequest) FillDriveList(DriveSelect) CPath$=GadgetItemText$(DriveSelect,SelectedGadgetItem(DriveSelect))+"\" FillFolderBox(DirBox,CPath$) SetGadgetText CurPath,CPath$ EnableGadget(DirRequest)LEvent = 0 While LEvent<>$803 LEvent = WaitEvent() If LEvent=1025 Select EventSource() Case DriveSelect CPath$ = GadgetItemText$(DriveSelect,SelectedGadgetItem(DriveSelect))+"\" SetGadgetText CurPath,CPath$ FillFolderBox(DirBox,GadgetItemText$(DriveSelect,SelectedGadgetItem(DriveSelect))+"\") Case DirBox NItem = SelectedGadgetItem(DirBox) CPath$ = CPath$ + GadgetItemText(DirBox,NItem) + "\" If Right$(CPath$,4)="\..\" Then CPath$= Mid(CPath$,1,Len(CPath$)-4) Cpath$ = Mid(Cpath$,1,RInstr(Cpath$,"\")) EndIf FillFolderBox(DirBox,CPath$) Case NewFolder nFolder$ = InputBox$() If nFolder$<>"" Then CreateDir CPath$ + "\" + nFolder$ EndIf FillFolderBox(DirBox,CPath$) Case OK FreeGadget DirRequest Return CPath$ Case Cancel Return "" End Select EndIf FlushEvents SetGadgetText CurPath,CPath$ Wend FreeGadget DirRequest Return "" End Function ; ----Function Begins---- Function FillDriveList(Gadget) ClearGadgetItems(Gadget) For i=65 To 90 temp = ReadDir(Chr$(i)+":\") If temp Then AddGadgetItem Gadget,Chr$(i)+":" EndIf Next If CountGadgetItems(Gadget)>0 Then SelectGadgetItem Gadget,0 EndIf End Function Function FillFolderBox(Gadget,Dir$) FlushEvents CDir = ReadDir(Dir$) If CDir Then ClearGadgetItems(Gadget) While MoreFiles(CDir) CFile$ = NextFile$(CDir) If FileType(Dir$ + CFile$)=2 Or CFile$=".." And (Not CFile$=".") Then AddGadgetItem(Gadget,CFile$) EndIf Wend EndIf End Function Function RInstr(Bay$,Hash$,Start=0) If Start>Len(Bay$) Then Return 0 EndIf If Start+Len(Hash$)>Len(Bay$) Or Start=0 Then Start = Len(Bay$)-Len(Hash$) EndIf For i=Start To 1 Step -1 If Mid(Bay$,i,Len(Hash$))=Hash$ Then Return i EndIf Next Return 0 End Function Function InputBox$() Local InputBox,NewFolderLabel,NewFolderText,OK,Cancel,LEvent InputBox = CreateWindow("Create new Folder",50,150,300,80,Desktop(),1) NewFolderLabel = CreateLabel("New Folder's Name:",6,9,100,20,InputBox,0) SetGadgetLayout NewFolderLabel,1,0,1,0 NewFolderText = CreateTextField(4,30,280,20,InputBox,0) SetGadgetText NewFolderText,"" SetGadgetLayout NewFolderText,1,0,1,0 OK = CreateButton("O.K.",108,5,50,20,InputBox,0) SetGadgetLayout OK,1,0,1,0 Cancel = CreateButton("Cancel",166,5,100,20,InputBox,0) SetGadgetLayout Cancel,1,0,1,0 LEvent = 0 While LEvent<>$803 LEvent=WaitEvent() If LEvent = 1025 Then Select EventSource() Case OK temp_text$ = TextFieldText$(NewFolderText) FreeGadget InputBox Return temp_text$ Case Cancel FreeGadget InputBox Return "" End Select EndIf ; Do Something Wend FreeGadget InputBox Return "" ; ----Function Begins---- End Function Jaja, scheiße gecodet, weiß ich selber. Die hälfte is von diesem GUI Editor der als Sample bei B+ dabei is, die andre Hälfte is halt super unordentlich runtergecodet ohne auf Lokale Variablen etc zu achten. Naja, kannst die Datei halt einfach includen und dann sowas machen: ChosenDir$ = ADVDirRequest$() if ChosenDir$<>"" then Notify ChosenDir$ endif ich wollte auch zuerst ne TreeView nehmen, aber B+ ist so ein vedammter Müll, das ich mir das einfach nicht angetan hab! So, jetzt habe ich wirklich KEIEN Zeit mehr und muss mein dummes Musik-Referat vorbereiten. walski |
||
buh! |
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Walski - Wow, nicht übel, mein Lieber! Funktioniert und fügt sich gut in mein Framework. Das Layout holpert noch ein Bisschen, aber das kriege ich schon hingebogen.
Ich hab das ganze Wochenende an diesem Kram herumgebastelt, hauptsächlich auf der Jagd nach einem einzigen Bug, den ich jetzt gefunden habe. Danke für Deine Hilfe! Grüße, Thomas |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
NP, das Layout (sowohl das wirkliche Layout als auch das des Codes) sind wie gesagt sowas von fürn Arsch, das ist fast unglaublich!
walski |
||
buh! |
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ walski - Für mich war bereits Dein Ansatz wertvoll - zu sehen, wie Du das löst. Aus Deinem Code habe ich jetzt letztlich nur die Inputbox() gezockt, weil sie mir uldra-einleuchtend erschien, und ich nicht mit Code arbeiten mag, den ich nit verstehe. Und weil ich den Rest gar nicht brauchte, Dir-/File-Liste und so. Dafür ein paar andere Sachen, die ich mir selbst dazugecodet habe. Danke nochmal!
Grüße, Thomas |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kein Problem ![]() Ja, mich hat das RICHTIG aufgeregt mit der Inputbox, dass es da kein fertiges Ding für gibt. Aber naja, auch die Inputbox war eher so hingepfuscht als normal programmiert ![]() walski |
||
buh! |
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
walski hat Folgendes geschrieben: Aber naja, auch die Inputbox war eher so hingepfuscht als normal programmiert ;)walski
Naja, das Layout habe ich noch ein Wenig zurechtgerückt ![]() ![]() [EDIT] Damit Du auch mal siehst, wozu Du da Tipps gegeben hast, ein Screenshot von dem Batch Copy & Rename Tool, das ein Modul, halt einen "Wizard" oder Assistenten einer etwas umfangreicheren Software darstellt, die ansonsten in VB gecodet wird (nicht von mir): ![]() Das Tool zum Download verfügbar zu machen, hat kaum Sinn, da kann keiner was mit anfangen außer den Leuten in meiner Firma, weil es ganz speziell auf die dort anfallenden Arbeitsabläufe zugeschnitten ist. Naja, sonst würde es ja auch kaum Sinn machen sich hinzusetzen und einen Batch Renamer zu coden, weil´s die ja schon wie Sand am Meer als Freeware gibt. [/EDIT] Grüße, Thomas |
||
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
[EDIT] Ist an sich ein völlig neues Thema, ich hab deswegen einen neuen Thread draus gemacht [/EDIT] | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group