Drag and Drop - Madness continued

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Drag and Drop - Madness continued

Beitrag von georg »

Hallo,


mal was anderes. Ein Programm, das auf verschiedenen Rechnern läuft, und bei dem u.a. ein Link aus dem Browser auf die :drawingArea des XbpDialog gezogen wird.

Code: Alles auswählen

   RootWindow():drawingArea:dropZone := .T.
   RootWindow():drawingArea:DragDrop := {|aState, oData| HandleDragDrop(oData, aState)}
Funktioniert auch ohne Probleme. Nun hat sich ein neuer Benutzer gemeldet, bei dem es NICHT klappt.

Rechnerkonfiguration: Windows 7 64 bit Ultimate mit zwei GB RAM (ja, ich habe ihn drauf hingewiesen, dass 64 bit mit weniger als 4 GB wenig Sinn macht). Drag and Drop des Links z.B. auf den Desktop funktioniert, während beim :dragEnter bereits das "do not drop here" Symbol erscheint.

Ist einem von Euch dieses Problem bereits begegnet? Oder habt Ihr eine Idee, was ich machen kann, um die Fehlerursache (die ja bis jetzt nur auf diesem Rechner auftritt) einzugrenzen und die drag and drop Funktionalität herzustellen?


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Drag and Drop - Madness continued

Beitrag von AUGE_OHR »

georg hat geschrieben:mal was anderes. Ein Programm, das auf verschiedenen Rechnern läuft, und bei dem u.a. ein Link aus dem Browser auf die :drawingArea des XbpDialog gezogen wird.
...
Funktioniert auch ohne Probleme. Nun hat sich ein neuer Benutzer gemeldet, bei dem es NICHT klappt.
das ist immer schlecht wenn es nur auf einem PC reproduzierbar ist ...
georg hat geschrieben:während beim :dragEnter bereits das "do not drop here" Symbol erscheint.
hm ... üblich ist in :dragEnter die Abfrage nach dem Inhalt des Clipboard.

Code: Alles auswählen

  FUNCTION HandleDragEnter( aState,oData,oMLE ) 
    LOCAL cBuffer 
     IF oData:QueryGetFormat(XBPCLPBRD_FILELIST) == .T. 
        RETURN XBP_DROPMODE_COPY 
     ENDIF 
 RETURN XBP_DROPMODE_NONE
in diesem Fall würde nur eine "Filelist" (XBPCLPBRD_FILELIST) akzeptiert.

nun "könnte" es vielleicht bei dem "einem" PC so sein das er mit "speziellen" Ordnern Probleme hat beim DragDrop ? ( ShortName / LongName)

und überhaupt wie "lang" ist der Path der verwendet wird ?
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Drag and Drop - Madness continued

Beitrag von georg »

Hallo, Jimmy -


es handelt sich um eine URL, die ca. 80 Zeichen lang ist, Standard-Zeichensatz (amerikanische Internetseite).

Wie aus dem Code-Ausschnitt zu sehen, verwende ich (bisher) nur die :dragDrop Schnittstelle, der Hinweis auf :dragEnter soll nur belegen, wie sich das Programm verhält, wenn etwas mittels Drag and Drop auf das Programm gezogen wird.

Die gleiche URL lässt sich problemlos als Verknüpfung auf dem Desktop ablegen, was mich um so mehr irritiert.

Ich habe überlegt, hier eine spezielle Version des Programms anzufertigen, in der ich :dragEnter belege und mal über die Statusbar Informationen ausgebe, was gerade "ankommt". Vielleicht finde ich damit ja was raus, aber viel Hoffnung habe ich nicht.

Ich verdächtige einfach die irre (!) Kombination aus 64 bit Windows mit 2 GB RAM :banghead:


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Drag and Drop - Madness continued

Beitrag von AUGE_OHR »

georg hat geschrieben:Ich habe überlegt, hier eine spezielle Version des Programms anzufertigen, in der ich :dragEnter belege und mal über die Statusbar Informationen ausgebe, was gerade "ankommt". Vielleicht finde ich damit ja was raus, aber viel Hoffnung habe ich nicht.
ich "denke" das aus irgend einem Grund bei dem PC schon bei o:DragEnter was "falsches" ankommt.

p.s. URL aus einem Browser ?
georg hat geschrieben:Ich verdächtige einfach die irre (!) Kombination aus 64 bit Windows mit 2 GB RAM :banghead:
wo die Leute so "sparen" ...
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Drag and Drop - Madness continued

Beitrag von georg »

Hallo, Jimmy -


nimm einfach den Link aus der folgenden Zeile:

http://www.xbaseforum.de/viewtopic.php? ... 548#p74442

Den kann man mittels Drag and Drop auf ein Xbase (oder sonstiges Programm, Notepad geht übrigens nicht), ziehen.

64bit OS machen eigentlich (es mag Ausnahmen geben) nur Sinn, wenn mindestens 4 GB RAM installiert sind. Der Rechner läuft permanent mit mindestens 75 % RAM Ausnutzung.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Drag and Drop - Madness continued

Beitrag von AUGE_OHR »

georg hat geschrieben: nimm einfach den Link aus der folgenden Zeile:
http://www.xbaseforum.de/viewtopic.php? ... 548#p74442
em ... äh ... der führt mich hier her ...
georg hat geschrieben:Den kann man mittels Drag and Drop auf ein Xbase (oder sonstiges Programm, Notepad geht übrigens nicht), ziehen.

64bit OS machen eigentlich (es mag Ausnahmen geben) nur Sinn, wenn mindestens 4 GB RAM installiert sind. Der Rechner läuft permanent mit mindestens 75 % RAM Ausnutzung.
ist vielleicht keine "SwapDisk" aktive ?
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Drag and Drop - Madness continued

Beitrag von georg »

Hallo, Jimmy -


klar, ich habe einfach den nächst-besten Link genommen. Aber den kannst Du per Drag and Drop "irgendwohin" ziehen, und in dem Fall ist ein mein Programm die dropZone.

Da der Anwender in Frage relativ wenig Ahnung von PC Software hat, denke ich, dass die Standard-Einstellungen da sind. Ich habe jetzt mal den :dragEnter Slot belegt und gebe eine Meldung über die Statusbar aus und gebe explizit XBP_DROPMODE_COPY zurück.

Mal sehen, was passiert.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Drag and Drop - Madness continued

Beitrag von AUGE_OHR »

georg hat geschrieben:klar, ich habe einfach den nächst-besten Link genommen. Aber den kannst Du per Drag and Drop "irgendwohin" ziehen, und in dem Fall ist ein mein Programm die dropZone.
sorry "das" mit dem link hatte ich völlig falsch "verstanden".

ich habe bei einem "link" immer "mark" / dragdrop gearbeitet und nicht gemerkt das ich den "link" nicht markieren muss.



georg hat geschrieben:Da der Anwender in Frage relativ wenig Ahnung von PC Software hat, denke ich, dass die Standard-Einstellungen da sind. Ich habe jetzt mal den :dragEnter Slot belegt und gebe eine Meldung über die Statusbar aus und gebe explizit XBP_DROPMODE_COPY zurück.
Mal sehen, was passiert.

Code: Alles auswählen

FUNCTION HandleDragEnter( aState,oData,oMLE )
  LOCAL cBuffer
   IF oData:QueryGetFormat(XBPCLPBRD_FILELIST) == .T.
      TONE(1234)      
      RETURN XBP_DROPMODE_COPY
   ELSEIF oData:QueryGetFormat(XBPCLPBRD_TEXT     ) == .T.
      TONE(1234) ; TONE(1234)
      RETURN XBP_DROPMODE_COPY
   ELSEIF oData:QueryGetFormat(XBPCLPBRD_BITMAP   ) == .T.
      TONE(1234) ; TONE(1234)  ; TONE(1234)
      RETURN XBP_DROPMODE_COPY
   ELSEIF oData:QueryGetFormat(XBPCLPBRD_METAFILE ) == .T.
      TONE(1234) ; TONE(1234) ; TONE(1234) ; TONE(1234)
      RETURN XBP_DROPMODE_COPY
   ENDIF
   cBuffer := oMLE:GetData()
   cBuffer += "(Sorry, sample only accepts files!)" + CRLF
   oMLE:SetData( cBuffer )
RETURN XBP_DROPMODE_NONE
da er nun 2 x "pieps" sieht der HandleDragDrop so bei mir aus

Code: Alles auswählen

FUNCTION HandleDragDrop( aState,oData,oMLE )
LOCAL cBuffer := oMLE:GetData()+CRLF
    oMLE:SetData( cBuffer )
RETURN XBP_DROPMODE_COPY

... aber das klärt leider immer noch nicht warum es bei "einem" PC versagt ...
gruss by OHR
Jimmy
Antworten