Deutsch
Forum

GetState(N1, N2)

 

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?
 
12.09.2015  
 




RGH
Zwei Sachen:

%MouseKey wird beim ersten Auslesen auf 0 zurückgesetzt! So etwas wie
If %MouseKey = 1

    <...>

ElseIf %MouseKey = 2

    <...>

EndIf


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]
 
13.09.2015  
 




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?
 
13.09.2015  
 




Michael
W.
Ich bekam ne 404
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
14.09.2015  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

6.135 Betrachtungen

Unbenanntvor 0 min.
Ralf Netz22.05.2021
Michael W.11.08.2018
HofK08.08.2018
Jörg Sellmeyer25.05.2018
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie