Aktuelle Zeit: 10.07.2020 17:39

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit SetClipboard
BeitragVerfasst: 20.07.2019 19:03 
Offline

Registriert: 06.03.2019 21:52
Hallo Leute,

gerade konnten mir RSBasic und Bisonte helfen, eine Doppelklickabfrage zu implementieren, da haut's mir schon wieder einen Knüppel zwischen die Beine:

mit o. g. Doppelklickabfrage wird in einem Jahreskalender das Datum gepickt, ungefähr so:

Code:
Procedure DoppelKlickAbfrage(hWnd, uMsg, wParam, lParam)
  Select uMsg
    Case #WM_LBUTTONDBLCLK
      gn = EventGadget()

       ; einige Berechnungen, um von einer TextGadgetnummer auf das Datum zu schliessen
       ; am Ende dann prüfen, ob Tag im Bereich 1...Ultimo liegt 
     
        If gn >= 0 And gn <= u

          ;Datumstring zusammenbauen
          x$ = Right("0"+Str(gn),2) + "." +  Right("0"+Str(m),2) + "." + Str(jahr)

          ; ins Clipboard
          SetClipboardText(x$)
         
          ; anzeigen
          MessageRequester("Information", x$, #PB_MessageRequester_Ok)

        EndIf
  EndSelect
  ProcedureReturn CallWindowProc_(DoppelKlickAbfrage, hWnd, uMsg, wParam, lParam)
EndProcedure


Jetzt passiert mit dem compilierten Programm Folgendes:

Solange der Messagerequester angezeigt wird, kann ich das Datum per {RechtKlick -einfügen} in eine Textdatei einfügen. Sobald der Messagerequester geschlossen wird, wird nur noch das Zeichen, auf das ich den Doppelklick gemacht habe, aus dem Clipboard eingefügt.

Ohne den Requester funktioniert es überhaupt nicht, dann wird nur das Zeichen, auf das ich den Doppelklick gemacht habe, aus dem Clipboard eingefügt. Warum ist der Datumsstring verschwunden? Und wie kann man das Verschwinden verhindern?

_________________
Der beste Fisch ist der Schnitzel


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit SetClipboard
BeitragVerfasst: 20.07.2019 19:18 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
Ich frage mich gerade was
Code:
gn = EventGadget()
        If gn >= 0 And gn <= u

zu bedeuten hat..
Das gehört nicht in einen Callback, da ein EventGadget() nicht unbedingt anliegt.
Desweiteren ... u ist nicht deklariert, also 0.

Um das Gadget zu ermitteln (also die Gadgetnummer von PB, habe ich in dem vorherigen Beispiel Props eingesetzt.

Dort sieht man in etwa, wie man an die PB Nummer kommt.

Edit : Wenn du zeigst, wie so ein Textgadget aussieht (also der Text der drinsteht), könnte man mal eben ein Beispiel
zimmern...

_________________
PureBasic 5.72 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce RTX 2080 Super | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit SetClipboard
BeitragVerfasst: 20.07.2019 22:04 
Offline

Registriert: 06.03.2019 21:52
Hallo Bisonte,

ich wollte mit meinem Codefragment nur andeuten, was da so passiert.

mit
Code:
gn = EventGadget()

habe ich abgefragt, bei welchem Textgadget der Doppelklick ausgelöst wurde. Hat funktioniert, aber egal.

Das
Code:
 ; einige Berechnungen, um von einer TextGadgetnummer auf das Datum zu schliessen
 ; am Ende dann prüfen, ob Tag im Bereich 1...Ultimo liegt 

sollte eigentlich nur andeuten, dass da noch was gerechnet wird. Unter anderem wird u ausgerechnet (ultimo, der letzte Tag eines Monats, also 31,28 oder 29, 31,30,31,...). Die Prüfung
Code:
 If gn >= 1 And gn <= u
(0 war falsch!)
soll sicherstellen, dass gn keine anderen Werte als minimal 1 und maximal die jeweilige Anzahl der Tage eines Monats hat. Aber, das ist ja eigentlich gar nicht der Punkt, sondern dass der Wert im Clipboard so variiert wie beschrieben. Übrigens auch, wenn ich Deinen Beispielcode für die DoppelKlickabfrage vollständig einbaue.

Und gerade noch probiert: Mit #WM_RBUTTONDOWN funktioniert das korrekt, nur nicht mit #WM_LBUTTONDBLCLK. Warum?

_________________
Der beste Fisch ist der Schnitzel


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 21 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye