![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
War schon mal da
![]() Registriert seit: 24.05.2009
Beiträge: 46
|
Hallo,
es gelingt mir nicht in einer Gridbox eine Zeile mit Doppelklick auszuwählen. Kann mir da wer helfen? Vielen Dank Gerhard. In der Profanhilfe steht zwar, dass die ListView - Befehle auch bei Gridboxen verwendbar sind. Aber wo finde ich diese Befehle? |
|
|
|
|
|
|
#2 (Direktlink) | |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
Gerhard
Ich mach da immer als "Krücke" noch ein zusätzliches "Waitinput" rein: Zitat:
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
|
#3 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Ich weiß nicht welche Profanversion du hast. Ich mache es meistens mit subclassing, ungefähr so, wobei grid das Handle der Gridbox ist.
Code:
SubClassProc
If SubClassMessage(grid&, 515) 'doppel
case datei$ <> "" : doppelklickaktion
Set("WinProc", 1)
elseIf SubClassMessage(grid&,516) 'rechts
Rechtsklickaktion
Set("WinProc", 1)
EndIf
endproc
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#4 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Die exakte Vorgehensweise, die ich auch in der Listview.dll nutze, ist:
WM_NOTIFY -> NMHDR.code = NM_DBLCLK
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#5 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
Gerhard
Nun hast du auch die Lösungen der "API-Giganten" - da ist natürlich mein primitiver XProfan-Code abgemeldet. Das Schöne dabei ist aber, er funktioniert. Egal, ob Listbox, Gridbox oder ein Listview von Frank So kann man auch mit kleinen Sachen manchen Menschen Freude machen oder Warum einfach, wenn es auch umständlich geht !
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
|
#6 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Zitat:
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
|
|
#7 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
Irgendwie verstehe ich das nicht, Andreas oder dein Satz ist falsch aufgebaut ?
Gerhard wollte doch nur mit Doppelklick einen Eintrag aus einer Gridbox auswählen können und das geht mit meinem Code sehr gut. Lässt man das zusätzliche 'Waitinput' weg, wird mit Einfachklick gewählt. Diesen Code benutze ich schon seit einigen Profan-Versionen. Was ist also falsch daran ? Ihr wisst doch alle, daß ich von API soviel Ahnung habe "wie eine Kuh vom Stabhochsprung", also benutze ich weiterhin XProfan-Pur, wenn es sich machen lässt. Im anderen Falle habe ich ja: Frank, Dieter, Andreas, Andreas, Jac usw... usw...
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
#8 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
@Horst
SubClassProc ist aber reines XProfan, darin wird ja nur eine Message abgefragt. Ich denke mal Andreas meinte mit zwei Waitinputs kannst du dann nur den Doppelklick benutzen. Wenn z.B. in einem Programm bei einem 1 x klick etwas passieren soll und bei einem Doppelklick etwas anderes, dann geht das mit deiner Methode nicht.
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#9 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Zitat:
daran ist nichts falsch. Ich meinte damit nur, dass Du Dir so den Weg verbaust, beides abzufragen, Einzel - und Doppelklick. Aber solange es funktioniert ist es ok
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
|
|
#10 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Eine rein profane Lösung des Doppelklicks ohne Subclassing findet man z.B. auch im Quellcode des Hilfe-Helfers, der ja bei jeder XProfan-Version mit installiert wird. Der Quellcode findet sich im Unterverzeichnis SOURCE als hilfe.prf. Da wird zwischen einfachem Klick und Doppelklick (= 2. Klick auf selbes Element) unterschieden.
Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#11 (Direktlink) |
|
War schon mal da
![]() Registriert seit: 24.05.2009
Beiträge: 46
|
Danke für die schnelle Hilfe. Ich konnte das erst heute auswerten.
zu Horst: Deine Lösung ist originell. Und da ich wirklich nur den Doppelklick auswerten möchte genügt diese Lösung ganz. Mache ich den zweiten Klick (~ als Doppelklick) nach einigen Sekunden wird auch das als Doppelklick gewertet und wenn ich, weil ich mich irrte beim 2. Klick auf eine andere Zeile klicke wird diese ausgewählt. Das kann zu Fehlern führen. Daher schlage ich vor die Zeit bis zum 2. Klick zu begrenzen. Im Beispiel habe ich 300 Millisekunden gewählt (kann aber auch ein anderer Wert sein). Beispiel: Code:
Declare nr%,text$ WhileNot @GetFocus(Ende%) IF GETFOCUS(hGrid&) Waitinput 'das ist zusätzlich gesetzt und gaukelt den Doppelklick vor nr%=GETCURSEL(hGrid&) text$=GETSTRING$(hGrid&,nr%) Messagebox(text$,"",0) ENDIF EndWhile ZU Dieter: mit Subclassing habe ich mich bisher noch nicht befasst. Ist aber wahrscheinlich die bessere Lösung wenn ich Einfach- und Doppelklick auswerten möchte. Wo finde ich die Messagenummern? Zu Frank: WM_NOTIFY fand ich in einem Assembler-Beispielprogramm. Mit der Umsetzung in Profan war ich leider nicht erfolgreich. Zu Roland: ich durchschaue das Programm nicht (ist mein Problem). Aber da ich ohnehin nur den Doppelklick auswerten möchte erscheint mit das Beispiel von Horst als das was ich brauche. Nochmals vielen Dank an Alle. Gerhard. Homepage von GKP Nachtrag: ich arbeite mit XProfan11.2 und mit Windows 7. |
|
|
|
|
|
#12 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Zitat:
wenigstens die Doppelklickzeit des Users berücksichtigen! GetDoubleClickTime sollte besser geeignet sein, als 300 ms Gruß Thomas |
|
|
|
|
|
|
#13 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.083
|
In AutoCAD gibts die Funktion "Doppelklick aufs Mausrad" (Die Idee wurde vermutlich bei einem Besuch im Domina-Studio geboren...)
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
#14 (Direktlink) | |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
@Gerhard
Zitat:
Danke - das mit der Zeiteingabe übernehme ich von dir
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
|
#15 (Direktlink) |
|
War schon mal da
![]() Registriert seit: 24.05.2009
Beiträge: 46
|
Hallo,
hier eine Korrektur zu meinem Beitrag von heute 11:21 Ich habe den falschen Code erwischt. Hier ist der richtige: Code:
Declare nr%,text$,A&,B&
WhileNot @GetFocus(Ende%)
IF GETFOCUS(hGrid&)
A& = (3600000 * Val(@Substr$(@Time$(0),1,":"))) +(60000 * Val(@Substr$(@Time$(0),2,":"))) \
+ (1000 * Val(@Substr$(@Time$(1),1,"."))) + Val(@Substr$(@Time$(1),2,"."))
Waitinput 'das ist zusätzlich gesetzt und gaukelt den Doppelklick vor
B& = (3600000 * Val(@Substr$(@Time$(0),1,":"))) +(60000 * Val(@Substr$(@Time$(0),2,":"))) \
+ (1000 * Val(@Substr$(@Time$(1),1,"."))) + Val(@Substr$(@Time$(1),2,".")) - A&
If (B& < 300) ' Auswertung nur dann wenn der Zeitunterschied kleiner als 300mS ist
nr%=GETCURSEL(hGrid&)
text$=GETSTRING$(hGrid&,nr%)
Messagebox(text$,"",0)
ENDIF
EndIf
EndWhile
|
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Gridbox-Änderungen | horsthorn | Anregungen & Bugreports | 7 | 05.06.2009 17:57 |
| Programm-Icon in Gridbox | horsthorn | XProfan | 26 | 22.05.2009 15:41 |