Forum | | | | H.Brill | Könnte man bei GetState() auch den aktuellen Mausklick (rechts/links/mitte) erhalten ?
Bekomme das im Moment nicht hin : Wenn in eine Gridbox geklickt wird, sollte bei Linksklick die Editboxen gefüllt werden und bei Rechtsklick ein Popup-Menu erscheinen und das Ausgewählte ausgeführt werden.
Hier mal ein Minimal Beispiel :
Declare Handle Grid, edit1, edit2, edit3
Declare Int ende, zeile, select, szeile
Declare String spalten, leerzeile
spalten = "Artikel;0;120;Menge;0;60;Preis;0;80"
ende = 0
Window 800, 600
@Create("Text", %HWnd, "Artikel :", 10, 70, 70, 25)
edit1 = @Create("Edit", %HWnd, "", 90, 70, 240, 25)
@Create("Text", %HWnd, "Menge :", 350, 70, 70, 25)
edit2 = @Create("Edit", %HWnd, "", 440, 70, 120, 25)
@Create("Text", %HWnd, "Preis :", 10, 110, 70, 25)
edit3 = @Create("Edit", %HWnd, "", 90, 110, 240, 25)
Grid = @Create("GridBox", %HWnd, spalten, 0, 10, 180, 400, 300)
AddString(Grid, "Eier|10|0.25")
AddString(Grid, "Butter|5|1.25")
AddString(Grid, "Käse|2|2.50")
WhileNot ende
WaitInput
If @Clicked(Grid)' Eintrag in der Gridbox geklickt ?
zeile = @GetCurSel(Grid)
If @GetState(Grid, zeile)
select = 1
SetText edit1, GetText$(Grid, zeile, 0)
SetText edit2, GetText$(Grid, zeile, 1)
SetText edit3, GetText$(Grid, zeile, 2)
EndIf
If %MouseKey = 2
CreateMenu
AppendMenu 111,"&Leerzeile einfügen"
AppendMenu 112,"&Oberhalb Satz einfügen"
AppendMenu 113,"&Unterhalb Satz einfügen"
TrackMenu %MouseX,%MouseY
If @MenuItem(111)
szeile = @GetcurSel(Grid) + 1
InsertString(Grid, szeile, leerzeile)
ElseIf @MenuItem(112)
szeile = @GetCurSel(Grid) - 1
InsertString(Grid, szeile, @GetText$(Edit1) + "|" + @GetText$(Edit2) + "|" + @GetText$(Edit3))
ElseIf @MenuItem(113)
szeile = @GetCurSel(Grid) + 1
InsertString(Grid, szeile, @GetText$(Edit1) + "|" + @GetText$(Edit2) + "|" + @GetText$(Edit3))
EndIf
EndIf
EndIf
EndWhile
End
Habs auch mal mit %MouseKey = 1 für Linksklick probiert. Ich denke, wenn GetState() noch 2 - 3 weitere Werte für die Mausklicks zurückliefern könnte, ginge das einfacher.
Ist insofern schwierig, da GetState() wohl auch auf einen Rechtsklick reagiert und somit die Editfelder wieder über- schrieben statt ausgelesen werden.
Wie bekommt man jetzt sowas richtig gebacken ? |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 12.09.2015 ▲ |
| |
| | | Sag mal wenn ich links klicke dann wird alles gefüllt und wenn ich rechts klicke dann wird auch alles gefüllt und ein PopupMenü angezeigt.
Zumindest funzt es so bei mir bei XP. Geht das bei Dir nicht? |
| | | | |
| | RGH | Zwei Sachen:
%MouseKey wird beim ersten Auslesen auf 0 zurückgesetzt! So etwas wie
kann also nicht funktionieren. Hier wäre %MousePressed zu nehmen (siehe Hilfe!)
select als Variable kann Probleme bereiten, da dies ein Befehlswort ist. Zumindest bereitet es bei der korrekten Formattierung hier im Forum Probleme!
So funktioniert es, wie von Dir gewünscht:
Declare Handle Grid, edit1, edit2, edit3
Declare Int ende, zeile, xselect, szeile
Declare String spalten, leerzeile
spalten = "Artikel;0;120;Menge;0;60;Preis;0;80"
ende = 0
Window 800, 600
@Create("Text", %HWnd, "Artikel :", 10, 70, 70, 25)
edit1 = @Create("Edit", %HWnd, "", 90, 70, 240, 25)
@Create("Text", %HWnd, "Menge :", 350, 70, 70, 25)
edit2 = @Create("Edit", %HWnd, "", 440, 70, 120, 25)
@Create("Text", %HWnd, "Preis :", 10, 110, 70, 25)
edit3 = @Create("Edit", %HWnd, "", 90, 110, 240, 25)
Grid = @Create("GridBox", %HWnd, spalten, 0, 10, 180, 400, 300)
AddString(Grid, "Eier|10|0.25")
AddString(Grid, "Butter|5|1.25")
AddString(Grid, "Käse|2|2.50")
WhileNot ende
WaitInput
If @Clicked(Grid)' Eintrag in der Gridbox geklickt ?
zeile = @GetCurSel(Grid)
If (%MousePressed = 1) and (GetState(Grid, zeile))
xselect = 1
SetText edit1, GetText$(Grid, zeile, 0)
SetText edit2, GetText$(Grid, zeile, 1)
SetText edit3, GetText$(Grid, zeile, 2)
ElseIf %MousePressed = 2
CreateMenu
AppendMenu 111,"&Leerzeile einfügen"
AppendMenu 112,"&Oberhalb Satz einfügen"
AppendMenu 113,"&Unterhalb Satz einfügen"
TrackMenu %MouseX,%MouseY
If @MenuItem(111)
szeile = @GetcurSel(Grid) + 1
InsertString(Grid, szeile, leerzeile)
ElseIf @MenuItem(112)
szeile = @GetCurSel(Grid) - 1
InsertString(Grid, szeile, @GetText$(Edit1) + "|" + @GetText$(Edit2) + "|" + @GetText$(Edit3))
ElseIf @MenuItem(113)
szeile = @GetCurSel(Grid) + 1
InsertString(Grid, szeile, @GetText$(Edit1) + "|" + @GetText$(Edit2) + "|" + @GetText$(Edit3))
EndIf
EndIf
EndIf
EndWhile
End
Gruß Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 12.09.2015 ▲ |
| |
| | H.Brill | Danke, so wollte ich es haben. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 13.09.2015 ▲ |
| |
| | Jörg Sellmeyer | [OFFTOPIC]Ich wollte den Thread in das normale Forum (per "Ausschneiden") verschieben, da sich das Problem ja als keines herausgestellt hat. Leider funktioniert das nicht.[/OFFTOPIC] |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 13.09.2015 ▲ |
| |
| | | [OFFTOPIC]Das Thema ist jetzt in "XProfan Forum", ich habs da nicht hin verschoben. Ich muss aber noch mal zusehen dass das Verschieben und Abtrennen von Unterthemen sicher funktioniert und das man Themen zu Unterthemen verschieben kann.[/OFFTOPIC] |
| | | | |
| | Jörg Sellmeyer | [OFFTOPIC]Ok - dann scheint es doch funktioniert zu haben. Ich hab jedenfalls nur ne Fehlerseite gesehen, als ich es gemacht habe.
P.S.: Diese Offtopic-Beiträge lösche ich später wieder. [/OFFTOPIC] |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 13.09.2015 ▲ |
| |
| | | Kannst Du mir bitte den Fehlercode nennen? 500 oder 404? Das wäre mir Wichtig. Hat der Vorgang sehr lange gedauert oder ging es sehr fix? |
| | | | |
| | Michael W. | | | | XProfan X3System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 14.09.2015 ▲ |
| |
|
AntwortenThemenoptionen | 6.135 Betrachtungen |
ThemeninformationenDieses Thema hat 5 Teilnehmer: |