Dateien in BB "hineinziehen"

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Eingeproggt

Betreff: Dateien in BB "hineinziehen"

BeitragSo, Jun 24, 2007 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei jedem normalen Player kann man Media-Dateien direkt ins Programm ziehen und die werden dann in der Liste aufgenommen oder abgespielt. Ich frage bereits CommandLine ab.
CommandLine enthält aber nur die Datei, von der das Programm gestartet wurde.

Ich will jetzt aber Dateien so hinienzeihen (in Blitz+). Ich nehm mal an, ich komm nicht um die WinAPI herum, aber wenn schon jemand damit Erfahrungen hat, würde er (sie auch, wir wollen geschlechterneutral bleiben Very Happy ) mir ein ordentliches Stück Arbeit abnehmen.

MfG und hoffentlich Danke^^
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

ChristianK

BeitragSo, Jun 24, 2007 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab zwar kein BlitzPlus, aber bei MaxGUI gibt es den Fenster-Style "WINDOW_ACCEPTFILES". Wenn du eine Datei auf das Fenster ziehst, wird eine Nachricht gesendet ( EVENT_WINDOWACCEPT ). Danach kann man den Dateipfad auslesen. Vielleicht gibts das auch in BlitzPlus.

Edit:
Naja, geht wohl doch nicht. Sorry.
Aber das hier könnte dir vielleicht weiterhelfen -> http://www.blitzbasic.com/Comm...opic=34205
  • Zuletzt bearbeitet von ChristianK am Mo, Jun 25, 2007 18:29, insgesamt einmal bearbeitet

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Jun 24, 2007 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso, CommandLine macht doch genau das, was du willst.^^ Erstelle mal eine .exe aus folgendem Code und probiere es mal mit der .exe

Code: [AUSKLAPPEN]
Graphics 600,200,0,2
Print ">"+CommandLine()+"<"
FlushKeys
WaitKey
End

Parsen muss man aber noch selber...
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Eingeproggt

BeitragSo, Jun 24, 2007 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke erstmal, aber ich muss eure schönen Antworten zunichte machen Crying or Very sad

Also ich habe in der Onlinehilfe "Window_Acceptfile" oder ähnliche gefunden.

Und das Problem mit Commandline ist, dass ich es ja schon am Anfang hab, das klappt auch. Nur wenn man mitten während der Ausführung eine Datei hineinzieht, kommt im Graphics-Fenster ein Sperrsymbol von Windows (Durchgestrichener Kreis) und in der Konsole zwar das richtige Symbol, in der Commandline steht trotzdem nix drin...
So hab ichs probiert: (basierend auf hectics Beispiel)
Code: [AUSKLAPPEN]

Graphics 600,200,0,2
Repeat
   Print ">"+CommandLine()+"<"
   Delay 500
Until KeyHit(1)
End
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

FWeinb

ehemals "ich"

BeitragSo, Jun 24, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ich bräuchte das auch für mein Projekt aber leider versteh ich nicht was ihr mit Chomandline() erreichen wolt ?
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs
 

ChristianK

BeitragMo, Jun 25, 2007 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Das könnte weiterhelfen -> www.progamercoder.net/projects...tfiles.zip
Habe ich gestern Nacht gecodet, deshalb ist es vielleicht noch nicht 100% bugfrei.
Außerdem konnte ich es nur mit MaxGUI testen, aber da hat's gut funktioniert.

Die Verwendung ist sehr simpel:

1. Dateien entpacken und in den "userlib"-Ordner kopieren.

2. Nach CreateWindow folgende Zeile einfügen

Code: [AUSKLAPPEN]
WindowAcceptFiles( QueryObject( window, 1 ), 1 )

Das schaltet "Drag and Drop" für das angegebene Fenster ein.

Wichtig: Dieser Befehl darf nur auf ein Fenster angewendet werden.

3. An Ende der Nachrichtenauswertung ( mit Select und Case ) das hier einfügen:

Code: [AUSKLAPPEN]
Default
   files$ = ReturnAcceptedFiles( )
   If( files$ <> "" )
   
      ; Hier werden die Dateinamen ausgewertet.
      
   EndIf

Es wird immer der gesamte Pfad der Datei zurückgegeben.
Wenn mehrere Dateien gleichzeitig auf das Fenster gezogen wurden, werden die Dateinamen durch ein "?" getrennt.

4. "Drag and Drop" sollte zum Schluss wieder ausgeschaltet werden.

Code: [AUSKLAPPEN]
WindowAcceptFiles( QueryObject( window, 1 ), 0 )


Falls etwas nicht funktioniert, einfach fragen. ^^
  • Zuletzt bearbeitet von ChristianK am Do, Aug 23, 2007 13:32, insgesamt 2-mal bearbeitet

aMul

Sieger des Minimalist Compo 01/13

BeitragMo, Jun 25, 2007 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann bestätigen, das es in B3D auch funktioniert.

Allerdings stürzt das Programm beim Beenden immer ab. Ich kenne mich damit zwar nicht aus, aber ich wage mal die Vermutung, das es daran liegt, das man das Fenster vor dem Beenden erst Nicht-Drag&Drop-Able machen muss. Vielleicht kannst du da ja noch was machen Smile
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

FWeinb

ehemals "ich"

BeitragMo, Jun 25, 2007 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja danke geht super aber kann man den Effeckt auch einefach auf nen Textarea anwenden wenn ich das versuche dann geht das nicht aber kann ja sein das man da noch was machen muss

Code: [AUSKLAPPEN]

WindowAcceptFiles( QueryObject(textarea,1 ) )


mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Eingeproggt

BeitragMo, Jun 25, 2007 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Bemühungen!

Hab mich sofort draufgestürzt, nur geht das nicht so, wie ich mir das vorstelle:

Versuch 1:Code: [AUSKLAPPEN]

Global apptit$="MP3 Organizer v2.1"

Global win_main=CreateWindow(apptit,0,0,400,300,0,0)
WindowAcceptFiles(win_main)


So kann ich trotzdem keine Dateien reinziehen. (Windows macht noch immer dieses Sperren-Symbol und "ReturnAcceptedFiles()" gibt dauernd einen leeren String)

Versuch 2:Code: [AUSKLAPPEN]

Global apptit$="MP3 Organizer v2.1"

Global win_main=CreateWindow(apptit,0,0,400,300,0,0)
Include "blitzsys.bb"
hwnd=DLLFindBlitzRuntimeHwnd(apptit)
WindowAcceptFiles(hwnd)


Da kommt die Fehlermeldung aus der blitzsys "Blitz Runtime Window Not Found"

Kann mir bitte jemand sagen, was ich falsch mach?
(QueryObject verwend ich nicht, weils das in Blitz+ nicht gibt)
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

ChristianK

BeitragMo, Jun 25, 2007 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für den Bug, aMul. Sollte in der neuen Version jetzt funktionieren.
Die Funktion WindowAcceptFiles hat einen neuen Parameter "enable", der zum Einschalten von "Drag and Drop" auf 1 und zum Ausschalten, wer hätte es gedacht, auf 0 gesetzt wird.

@ich
In MaxGUI geht das auch mit allen anderen Gadgets. Versuch mal, den zweiten Parameter von QueryGadget auf 2 zu setzen, vielleicht hilfts.

@Eingeproggt

Code: [AUSKLAPPEN]
WindowAcceptFiles(win_main)

Das kann auch garnicht gehen, weil die Funktion immer ein Window Handle erwartet. Wink

QueryObject gibt es (nur) in BlitzPlus, ich hab extra in der OH nachgeguckt:
http://www.blitzmax.com/bpdocs...p;ref=goto
Vielleicht brauchst du nur ein Update.

aMul

Sieger des Minimalist Compo 01/13

BeitragMo, Jun 25, 2007 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ProGamer.Coder hat Folgendes geschrieben:
Sollte in der neuen Version jetzt funktionieren.

Jop, das tut es.

Ein riesengroßes Dankeschön für die DLL, wenn ich die irgendwann mal benutzen sollte kommst du in die Credits Wink
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

ChristianK

BeitragDi, Jun 26, 2007 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Freut mich, wenn du sie brauchen kannst. Very Happy

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Aug 23, 2007 0:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Link da oben nach welchen ich schon seit einiger Zeit prüfe, ist tot. Hat vielleicht jemand noch diese Datei bei sich rumfliegen? Wäre echt nett, wenn dieser jemand es dann mal hochladen könnte.

Oder gibt's eine andere Möglichkeit sowas zu machen?

Ich will Drag&Drop, das ist so'n Zeug, wo man mit der Maus aus dem Explorer aus zB Dateien mit gedrückter Maustaste auf sein eigenes Blitz3D-Fenster ziehen kann, und diese in irgend einer Form vom Blitz3D erkannt und ausgewertet werden.

edit1: Also für mich hat sich das gerade über ICQ erledigt. Ich stelle dann mal den Code demnächst zur Verfügung, falls ProGamer.Coder nichts dagegen hat.
 

ChristianK

BeitragDo, Aug 23, 2007 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, tut mir Leid. Ich habe den Link glatt vergessen. Ist jetzt aktualisiert.

Zitat:
Ich stelle dann mal den Code demnächst zur Verfügung, falls ProGamer.Coder nichts dagegen hat.

Hab natürlich nichts dagegen.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group