Drag&Drop
-
Ich versteh das nicht, bin gestern Abend eingeschlafen ohne was zu verändern geh heute um 13:40Uhr an den Rechner will Compilieren und es geht, dann will ich die Dra&Drop funktion testen und es Funktioniert. Diese willkür bin ich sonst nur von Window Programen gewohnt, aber ich bin froh und das ist das wichtigste oder
thx & cux mosta
[ Dieser Beitrag wurde am 30.03.2003 um 14:03 Uhr von mosta editiert. ]
-
Omega-X:
Junge, Junge, was hast du denn wieder geraucht?
Glaubst du wirklich, dass dir jemand folgen kann?[ Dieser Beitrag wurde am 30.03.2003 um 14:04 Uhr von Jansen editiert. ]
-
#include <shellapi.h>
Verursacht bei mir maßig Fehler, was kann da los sein, spinnt der Compiler oder ich? Naja als erstes wird die shellapi.h aufgerufen und dann die vcl wenn ich rumdrehe kommt ein Exception Fehler.Was mache ich falsch, fehlt mir ne .lib oder sowas
[ Dieser Beitrag wurde am 31.03.2003 um 08:32 Uhr von mosta editiert. ]
-
@Jansen, sieht aus wie Lagerfett (stinkt auch so), Rauch giftgrün, schmeckt wie Havanna. Wirkung: Keine, aber ich hab dann 3 Tastaturen.
Kurzform:
void __fastcall TPixi::WmDropFiles(TWMDropFiles& Message) { char buff[MAX_PATH]; HDROP hDrop = (HDROP)Message.Drop; int numFiles = DragQueryFile(hDrop,-1, NULL, NULL); for (int i=0;i<numFiles;i++) { DragQueryFile(hDrop, i, buff, sizeof(buff)); // HIER kannst du jede "gedropte" Datei mit // einem eigenen Algorithmus verarbeiten. Zum Beispiel // die Dateien öffnen oder die Namen mal vormerken. FormShow(Sender); } DragFinish(hDrop); }
FormShow(Sender) wertet den ParamString aus und gibt weiter an Open(Sender). Dieses Vorgehen ist nutzlos, da FormShow keinen ParamString empfängt. Fehler registrier ich hier keine, aber ich kann die Datei nicht via Drop öffnen lassen. Peinlich, hab keinen Plan, wie das gehen könnte.
@mosta, ich muß zuerst die VCL includieren, sonst bekomm ich Fehler (in der Auswertung der Shellapi.h).
#include <vcl.h> #include <math.h> #include <dos.h> // "DragAcceptFiles" & Co erkennen #include <shellapi.h> #pragma hdrstop #include "PixMain.h" #include "NeuDlg.h" #include "About.h"
Wobei dos.h und math.h nichts mit dem Thema zu tun haben. Schließ ggf.das Projekt und feuer alle .obj und die .tds raus, dann laß alles frisch aufbauen. - Das ist bei mir schon fast eine Rotineübung.
PS: Wie ich den BCB eben geöffnet hab, seh ich im Objectinspector blaue!!! Trennlinien. Die waren bisher immer orangelich. --- Nein, hab das Kraut nicht geraucht, das ist die "grundsolide" Plattform!
(IDE geschlossen, Farbtiefe auf 32bit, dann wieder auf 16bit gesetzt, IDE geöffnet, die Linienfarbe stimmt wieder. --- Nur als Beispiel.
-
@Omega-X das ist bei mir auch so nur ach ich zeig denn Code mal kurz
#include <vcl.h> #include <stdio.h> #include <shellapi.h>
Exception Fehler Zugriffsverletzung
#include <shellapi.h> #include <vcl.h> #include <stdio.h>
Fehler in der shellapi.h undzwar immer irgendtwelche multible declarations?
Help Help Help
-
trage mal in projekt-optionen -> verzeichniss/bedingungen -> bedingungen (definitionen) NO_WIN32_LEAN_AND_MEAN ein.
-
nachdem ich alle temp Dateien gelöscht habe sowie .obj funktioniert es wieder scheiß builder produziert mehr fehler alls ich
-
Original erstellt von <Omega-X>:
FormShow(Sender) wertet den ParamString aus und gibt weiter an Open(Sender). Dieses Vorgehen ist nutzlos, da FormShow keinen ParamString empfängt. Fehler registrier ich hier keine, aber ich kann die Datei nicht via Drop öffnen lassen. Peinlich, hab keinen Plan, wie das gehen könnte.Wie gesagt, ich kann dir nicht folgen. Ich verstehe nicht was du mit FormShow, Sender und Parameterstring willst: Name und Pfad der auf die Form "gedropten" Datei stehen in buff, und mehr wird doch nicht gebraucht!?
-
Aaah, dann muß ich hier aussteigen. buff enthält einen int. Hab keinen Plan, wie ich den String auslesen soll. Wichtig ist erst mal, daß @mostas Prob gelöst wird. Ich kann ja die Ohren spitzen. :p
-
Oh oh,Thema schon geklärt, gibt's nix mehr zum Spicken?
Wollte kein Durcheinander reinbringen. Aber interessieren würde mich, wie man nun an den gedropten FileName rankommt. Ich bekomm nur int, hab verschiedenes versucht. Wie muß ich denn richtig drangehen?
-
Mit "StrPas" kannst du den buffer wieder in einen String umwandeln!
FormShow(StrPas(buff));
-
Na, t-bone, hat's wieder nicht für einen Blick in die Hilfe gereicht?
StrPas ist nur aus Gründen der Abwärtskompatibilität vorhanden. Um einen nullterminierten String in einen AnsiString zu konvertieren, verwenden Sie eine Typumwandlung oder eine Zuweisung.