PDA

Vollständige Version anzeigen : MSG-Box


Ironangel
08.08.2003, 09:10
Hallo,

ich möchte eine MSG-Box aufrufen die genau so aussieht wie die MSG Box im Explorer wenn man Dateien kopiert. Mit fliegenden Ordner und Statusanzeige. Ist sowas möglich?

:bye:

BodoM
08.08.2003, 09:39
Hallo,

sehr interessante Aufgabe. Ich denke es gibt 2 Möglichkeiten.

1. API; nur welche API Funktion es ist kann ich nicht sagen.

2. Du entwickelst ein Formular mit Statusanzeige und "fliegenden Ordner", das genau so wie das Windowsfenster aussieht. Die Statusanzeige kann man ja noch hinbekommen. Mit dem fliegenden Ordner wird schon etwas schwieriger. Aber da gibt es wahrscheinlich einige Experten in diesem Forum, die Dir dabei weiterhelfen können.


Gruß Bodo

Ironangel
08.08.2003, 09:44
Vielleicht sollte ich noch erwähnen das ich keinen Fortschritt irgendwelcher Datensätze anzeigen lassen will. Ich möchte lediglich das wenn ich das Fenster (MSG Box oder Formular) öffne irgendeine Schleife abläuft die sagen wir mal 5 Sekunden dauert. Diese Formular sollte so aussehen wie im Explorer (fliegende Ordner, Statusanzeige Text--> Kopie von..nach..., Restdauer). Es soll einfach nur ein wenig Show mit im Spiel sein :D Hat zwar keinen Sinn aber das Auge isst mit :p

BodoM
08.08.2003, 09:52
Beiliegende DB habe ich mal irgendwo heruntergeladen.

Es ist eine Fortschrittsanzeige. Du musst aber Zeiten etc. selbst berechnen. Event. hilft es Dir.

Aber bleibe mal mit dem Windowsfenster am Ball. Wenn Du was findet kannst Du es im Forum vorstellen.

Smaug
08.08.2003, 10:08
wie wäre es mit einer selbstständig sich schliessenden MsgBox:
Die nachfolgende Funktion öffnet eine Message-Box für 5 Sekunden und schliesst diese dann selbstständig wieder:
Function fctMsgZeit()
‘Die Funktion erfordert einen Verweis auf die Microsoft Scripting Runtime !!
const bytZeit As Byte = 5
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject (“WScript.Shell“) ‘die Shell-Funktion führt ein fremdes Programm aus
intMSG = objWSH.PopUp (“Ich bin in“ & bytZeit & “sec. verschwunden“ & Space(10), bytZeit)
Set objWSH = Nothing
End Function
Das Beispiel stammt (soviel ich weiss) von Sascha Trowitzsch - Danke Sascha für diese nette Funktion !!!! :)
Gruß Smaug :angel:

BodoM
08.08.2003, 10:13
@Smaug
nur kann die eigentliche Aktion während dessen nicht weiter ausgeführt werden.

Ironangel
08.08.2003, 10:21
Na,

da habe ich ja mal was sinnvolles nach meinen ganzen anderen Fragen gefragt :D

@ BodoM,

die DB mit dem Fortschritt ist nicht schlecht vielleicht kann ich sie mit meinem Laienhaftenwissen umstriken.

@ Smaug,

ich glaube eine MSG-Box ist für dieses Vorhaben nicht zu geeignet. Ich bekomme ja keine Statusanzeige und die fliegenden Ordner rein. Ich denke man muss das mit einem Formular realisieren.

:bye:

Ironangel
08.08.2003, 10:25
An die Profis,

kann man das hier gebrauchen?

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre>Kopieren wie der Explorer
Die nachfolgende Funktion kopiert eine Datei im Stile des Windows-Explorers, d.h. mit Fortschrittsanzeige und &quot;fliegenden&quot; Bl&auml;ttern.
&nbsp;
<span class="TOKEN">Public Function</span> fCopy(Source <span class="TOKEN">As</span> String, Dest <span class="TOKEN">As</span> String, _
Ueberschreiben <span class="TOKEN">As</span> <span class="TOKEN">Boolean</span>) <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="REM"> ' Ueberschreiben: True, wenn ohne Warnung &uuml;berschrieben</span>
<span class="REM"> ' werden soll (Entspricht -y beim DOS copy BEFEHL)</span>
&nbsp;
<span class="TOKEN">Dim</span> FileStructur <span class="TOKEN">As</span> SHFILEOPSTRUCT
<span class="TOKEN">Dim</span> FLAG <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
&nbsp;
FLAG = 0
<span class="TOKEN">If</span> InStr(Source, vbNullChar + vbNullChar) &gt; 0 <span class="TOKEN">Then</span> _
FLAG = FLAG + FnF_MULTIDESTFILES
&nbsp;
<span class="TOKEN">If</span> InStr(Source, &quot;*&quot;) &gt; 0 <span class="TOKEN">Then</span> _
FLAG = FLAG + FnF_FILESONLY
&nbsp;
<span class="TOKEN">If</span> Ueberschreiben = <span class="TOKEN">True</span> <span class="TOKEN">Then</span> _
FLAG = FLAG + FnF_RENAMEONCOLLISION
&nbsp;
<span class="TOKEN">With</span> FileStructur
.wFunc = FN_COPY
.pFrom = Check_NullChars(Source)
.pTo = Dest
.fFlags = FLAG
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
&nbsp;
fCopy = SHFileOperation(FileStructur)
<span class="TOKEN">End</span> <span class="TOKEN">Function</span>
&nbsp;</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Thomas_Engel
08.08.2003, 10:30
Hi Ironangel

Das was Du willlst, ist keine MsgBox. Das musst Du Dir selber bauen. Für komplexere MsgBoxen gibts hier ein gutes Tool:
http://www.oggidata.de/msgbox_.htm
Die fliegenden Blätter von Weltkugel zu Verzeichnis ist ein AVI. Das habe ich irgendwo rumliegen,kann ich Dir senden ,wenn Du magst.
Auf alle Fälle musst Du Dir das selbst ein Formular basteln, da ich glaube, dass das in den Windows Common Controls nicht drin ist.

Grüsse
Thomas

Ironangel
08.08.2003, 10:35
Ja, super bitte sende mir die AVI Files

BodoM
08.08.2003, 10:37
@Ironangel

damit kann man nichts anfangen. Das Wesentliche fehlt.

Ironangel
08.08.2003, 10:40
Wieso,

wenn ich die AVI Files in ein Formular packe und das Formular mit einem Countdown belegt müsste das doch gehen! Oder?

BodoM
08.08.2003, 10:56
Mein Hinweis bezog sich Dein Code.

Thomas_Engel
08.08.2003, 11:00
OkyDoke, hier kommt das AVI

Ironangel
08.08.2003, 11:06
Original geschrieben von BodoM
Mein Hinweis bezog sich Dein Code.

Ach so :D

Ironangel
08.08.2003, 11:07
Original geschrieben von Thomas_Engel
OkyDoke, hier kommt das AVI

Genau das File habe ich mir vorhin aus dem Netz geholt. Wie bekomme ich denn ein AVI File in der Formularansicht zum laufen?

:bye:

genschman
08.08.2003, 11:12
da kann ich Dir wiederum nur empfehlen, in die "KnowHow.mdb" aus dem Download-Bereich zu schauen. Da ist ein Beispiel mit drin.

http://www.ms-office-wissen.de/download/details.php?id=189

good luck

genschman

Ironangel
08.08.2003, 11:21
Danke für die Antwort. Ich habe es aber mitlerweile ans laufen bekommen. Mit welchem Programm kann ich denn die Hintergrundfarbe von einem AVI ändern. Geht das überhaupt?

Ironangel
08.08.2003, 11:58
Oder gibt es eine andere Möglichkeit den Hintergrund des Avi File zu ändern?

immelmann
08.08.2003, 13:02
versuch's mal mit dem Tool "aviedit" (oder avedit?)

Gruß Torsten

BodoM
08.08.2003, 16:24
@immelmann

was ist das für ein Tool, und wo finde ich es?