| 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 + FREEPROFANWir 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 + FREEPROFANWir 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  ▲ | 
 |  |  |  | 
 
 
 | 
 Antworten| Themenoptionen | 7.048 Betrachtungen | 
 ThemeninformationenDieses Thema hat 5 Teilnehmer: |