Alternative zu XbpFileDialog
Moderator: Moderatoren
Alternative zu XbpFileDialog
Hallo,
gibt es eine Möglichkeit mir Textdateien aus einen Ordner anzeigen zu lassen, ohne die ganzen Optionen im XbpFileDialog (also nur ein Fenster mit den Dateien, ein Suchfeld und der Bestätigen/Abbrechen Button).
gibt es eine Möglichkeit mir Textdateien aus einen Ordner anzeigen zu lassen, ohne die ganzen Optionen im XbpFileDialog (also nur ein Fenster mit den Dateien, ein Suchfeld und der Bestätigen/Abbrechen Button).
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Alternative zu XbpFileDialog
XbpFileDialog() ist nun mal der Wrapper für den "Windows Common Dialog".
Das "Problem" bei XbpFileDialog() ist das es "im eigenen" Windows Thread Fenster läuft und darauf hat man aus Xbase++ keinen Zugriff
das was du haben willst kann man sich doch, mittels Formdesigner (XppFD.EXE), selbst zusammen stellen.
1 x XbpListbox() und 2 x XbpPushbutton() sowie ein XbpSLE() und dann CLASS Code generieren und schon hast du dein eigenes Fenster
nun musst du "nur" noch die Listbox() füllen und die beiden Button "o:Activate" Callback Slots bestücken mit der gewünschten Aktion. wenn du damit dann noch Probleme hast : weiter Fragen stellen ... wir werden antworten
gruss by OHR
Jimmy
Jimmy
Re: Alternative zu XbpFileDialog
Wenn mir jemand veraten könnte wie ich die Listbox fülle, das wäre super. Ich weiß nicht wie ich die einzelnen Dateien ansprechen soll.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9387
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 362 Mal
- Kontaktdaten:
Re: Alternative zu XbpFileDialog
:AddItem() befüllt das/ein Listbox-Array. Das ginge auch mit einem XbpBrowse/XbpQuickbrowse, das ein Array direkt als Datenquelle verwendet, was den Vorteil hätte, dass man direkt auf die Rückgabe von Directory() zugreifen könnte, während die Listbox nur eindimensional arbeitet. Möglicherweise kannst Du beim Versuch, das umzusetzen, eine Menge Sachen lernen, aber vielleicht bist Du mit dem XbpFileDialog besser dabei.
Herzlich,
Tom
Tom
Re: Alternative zu XbpFileDialog
Bevor ich gleich in den Bildschirm schlage, frag ich nochmal nach.
Mein "directory" Befehl funktioniert leider nicht wie gewünscht. Wenn ich das Array manuell fülle, funktioniert es.
Ich habe jetzt so ziemlich alle Varianten die ich zu directory gefunden habe ausprobiert, aber bekomme immer ne Fehlermeldung das der Parameter von "addItem" nicht passt. "directory" sollte mir doch nen String ins array legen oder versteh ich da was falsch?
Mein "directory" Befehl funktioniert leider nicht wie gewünscht. Wenn ich das Array manuell fülle, funktioniert es.
Code: Alles auswählen
LOCAL i := 0,;
aTxtFiles := directory("C:\Users\Public\Documents\*"),;
nLen := Len( aTxtFiles )
DO WHILE ++i <= nLen
oListBox:addItem( aTxtFiles[i] )
ENDDO
RETURN oListBox
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9387
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 362 Mal
- Kontaktdaten:
Re: Alternative zu XbpFileDialog
Directory() liefert ein zweidimensionales Array. Der Dateiname steht an Stelle 1, Konstante "F_NAME" aus DIRECTRY.CH.
Entweder:
Oder:
Entweder:
Code: Alles auswählen
oListBox:addItem( aTxtFiles[i,1] )
Code: Alles auswählen
#include 'directry.ch'
oListBox:addItem( aTxtFiles[i,F_NAME] )
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Alternative zu XbpFileDialog
wer Directory() mit XbpQuickbrowse() verwenden will kann das Alaska Demo
nehmen.
---
wie schon gesagt kann man bei XbpFileDialog() nicht viel "einstellen" weil es die SHBrowseForFolderA API verwendet
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
viewtopic.php?f=23&t=8227
zu XbpFileDialog() noch dieser Thread
viewtopic.php?f=32&t=9981
was mich wieder zur Listbox() bringt
für eine Listbox() gäbe es noch den Windows API "Trick" um eine Listbox "on-fly" zu füllen.damit kann man bis zu 32Kb "im Stück" (schnell) in eine Listbox schieben.
Code: Alles auswählen
..\SOURCE\samples\basics\QBrowse\QBROWSE1.prg
---
wie schon gesagt kann man bei XbpFileDialog() nicht viel "einstellen" weil es die SHBrowseForFolderA API verwendet
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
viewtopic.php?f=23&t=8227
zu XbpFileDialog() noch dieser Thread
viewtopic.php?f=32&t=9981
was mich wieder zur Listbox() bringt
für eine Listbox() gäbe es noch den Windows API "Trick" um eine Listbox "on-fly" zu füllen.
Code: Alles auswählen
oListBox := XbpListbox():new( ... )
...
// statt einer FOR / NEXT
//
// FOR i := 1 TO 100
// oListBox:additem(LTRIM(STR(i)))
// NEXT
PimpMyXb(oListBox)
PROCEDURE PimpMyXb(oListBox,cMask)
LOCAL hWnd
LOCAL iAttr
DEFAULT cMask TO "*.*"
hWnd := oListBox:getHWND()
iAttr := DDL_READWRITE + DDL_DIRECTORY
SendMessageA( hWnd, LB_DIR, iAttr , cMask )
RETURN
gruss by OHR
Jimmy
Jimmy