WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   VB Frage: Wert aus anderem form/Beenden-button/Fortschrittsanzeige (http://www.wcm.at/forum/showthread.php?t=106380)

Seidl 25.08.2003 15:19

Du könntest versuchen die "AutoRedraw"-Property des Formulars auf TRUE zu setzen. Das kann allerdings unter Umständen viel Rechenleistung fressen.

Nestrus 25.08.2003 15:51

Ich hab jetzt mit AutoRedraw und FontTransparent des forms und BackStyle des labels gepsielt, aber geholfen hat es nicht... :(
Der Balken geht jetzt zwar (ist nicht an dem gelegen, sondern an komishcen leeren Einträgen in der Liste) aber das label ist immer noch weiß außer ganz kurz in dem Moment, in dem der Text des lables gewechselt wird. :heul: Der Abbrechen-button ist übrigens auch extrem träge...

Aber immerhin hab ich jetzt das mit dem INI hingekriegt, bald kann ich sagen es kann alles was es muss! (Das mit dem balken ist ja nicht so wichtig...)

Seidl 25.08.2003 16:20

Das mit dem Redraw werde ich mir nochmal ansehen wenn's sich heute abend ausgeht.

Was den Abbrechen-Button betrifft, so kann dieser nur reagieren wenn der Code die Steuerung an andere Prozesse abgibt (DoEvent).

wbendl 25.08.2003 16:21

Hi!

Ich denke auch das Problem mit dem weißen Fleck ist bei einem Formular leichter zu lösen.

Ich hab erst nachher gesehen, daß auch einzelne Dateien als Quelle ausgewählt werden können.
Mehrere Ordner hintereinander sind aber auch mit dem Dialogfeld kein Problem.

Mit FSO erfährst du die Dateigröße.
Zur Anzeige vird ein ProgressBar verwendet.
Ich meine aber der Aufwand lohnt sich nicht wirklich. Hauptsache der User sieht, daß das Progamm arbeitet.

Wenn vor der Sprungmarke kein Exit Sub oder Exit Function steht, wird der Code weiter ausgeführt.

@seidl

Dim hWnd As Long

Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Private Const BIF_RETURNONLYFSDIRS = 1
Private Const MAX_PATH = 260

Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)

Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
ByVal lpString2 As String) As Long

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
ByVal lpbuffer As String) As Long

Property Get SelectedFolder() As String

SelectedFolder = BrowseForFolder(hWnd, "Bitte wählen Sie einen Ordner:")

End Property

Private Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String

Dim iNull As Integer
Dim lpIDList As Long
Dim lResult As Long
Dim sPath As String
Dim udtBI As BrowseInfo

With udtBI
.hwndOwner = hwndOwner
.lpszTitle = lstrcat(sPrompt, "")
.ulFlags = BIF_RETURNONLYFSDIRS
End With

lpIDList = SHBrowseForFolder(udtBI)

If lpIDList Then
sPath = String$(MAX_PATH, 0)
lResult = SHGetPathFromIDList(lpIDList, sPath)
Call CoTaskMemFree(lpIDList)
iNull = InStr(sPath, vbNullChar)
If iNull Then sPath = Left$(sPath, iNull - 1)
End If

BrowseForFolder = sPath

End Function


mfg

WB

Seidl 25.08.2003 16:57

@ wbendl: Besten Dank für den API-Aufruf! :) Den kann ich sicher nochmal brauchen.

Nestrus 26.08.2003 16:38

Bis auf das Refresh-Problem ist es jetzt eh schon ganz gut.
Leider kann ich hier nicht das fetig gepackte Setupfile anhängen, weil es ja ganze 652KB hat. (Und das, obwohl ich sogar eine andere progressbar genommen hab.)

Das Refreshproblem ist eigentlich gar nicht so schlimm, denn bei kleieren Kopierjobs fällt es gar nicht auf und sowiso sollte das Programm ja eigentlich erst gerstartet werden, wenn man am gehen ist damit es über Nacht die tägliche Sicherung erledigt.


Noch mals vielen Dank für eure Hilfe!
(Ein Tipp wegen dem Problem wäre natürlich schon noch super - ich will ja etwas gescheites machen...)


PS: Wer das Setup will: Ich kann es ja per mail verschicken...
PPS: Die Pfade sind dan standardmäßig auf d: (Quelle) und n: Ziel gestellt, also nicht wundern wenn eine Fehlermeldung kommt...

Nestrus 28.08.2003 11:10

Hmm... denn keiner einen Idee, wie man diesen kleinen Schönheitsfehler ausbessern könnte?

Seidl 28.08.2003 11:20

Aufgeschoben ist nicht aufgehoben. Bin leider zur Zeit ziemlich gestresst. Spätestens am Wochenende sollte ich aber Zeit haben, mir die Sache nochmal anzusehen.

Nestrus 29.08.2003 08:02

Ja okay, ist schon früh genug, ich wollte keine Kritk üben oder jemanden stressen...
Ich bin mir im Forum blos gewohnt die Beiträg immer nach oben zu schieben.

wbendl 29.08.2003 10:40

Hi!

Schick deinen Code an wb-soft@blackbox.net, ich schau mir das am Wochenende an.

Dein Beispiel hab ich mir angesehen. Wie schon gesagt, ich würde dafür nur eine Form verwenden. Dadurch würde das Problem wahrscheinlich von selbst verschwinden.

mfg

WB


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag