 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Muecke Gast
|
Verfasst am: 15.01.2014, 13:30 Titel: if x = (1 to 100) Then .... |
|
|
Hallo miteinander,
Gerade versuche ich mein Programm Maus fähig zu machen
um die Klicks auf einzelne Dinge zu registrieren Frage ich die Maus Aktuell so ab:
Code: | Dim As Integer Maus_x, Maus_y, Maus_Ergebnis, Maus_r, Maus_E
Do
Maus_Ergebnis = GetMouse (Maus_x, Maus_y, Maus_r, Maus_E) '' Lade Mauskoordinaten
If Maus_Ergebnis <> 0 Then
Else
Locate 70, 40: Print Maus_x '' X Koordinate
Locate 72, 40: Print Maus_y '' Y Koordinate
Locate 75, 40: Print Maus_r '' Z Koordinate
Locate 34, 30: Print "E = ";Maus_E
End If
If Maus_x > 05 And Maus_x < Fenster_Breite-5 And Maus_y > 8 And Maus_y < 28 And Maus_E = 1 Then '' Koordinaten Datei URL abfragen
Dim As String Alt_Datei = Datei '' Alten Datei Namen Merken
Datei = LoadSaveDialog (,fil,5) '' Datei Öffnen Dialog WIN-API
If Alt_Datei <> Datei And Datei <> "" Then '' Prüfen ob Datei sich verändert hat
Locate 03, 9: Print Datei '' Datei inkl. Pfad ausgeben
'' DateiStrucktur Prüfen
'' Frame Auslesen
'' X-Achse Lesen
'' 0 Punkt Korrektur
'' Y Startwert Lesen uns ausgeben
EndIf
EndIf
Loop While Inkey = "" |
doch die Zeile
Code: | If Maus_x > 05 And Maus_x < Fenster_Breite-5 And Maus_y > 8 And Maus_y < 28 And Maus_E = 1 Then '' Koordinaten Datei URL abfragen
|
finde ich schon etwas lang
daher dachte ich mir man kann die Abfrage bestimmt anders gestalten z.B. so:
Code: | If Maus_X = (05 To Fenster_Breite-5) And Maus_y = (8 To 28) And Maus_E = 1 Then |
im Kopf überlegt probiert Fehlerausgabe im Netz versucht was darüber zu finden, leider Ohne Erfolg, daher meine Frage an euch, ist so was überhaupt möglich? was ich mir da vorstelle das ich abfrage ob eine Variable in einem Bereich von bis liegt?
oder ist das wie ich es im Oberen Code gemacht habe so schon OK? und vernünftiger? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 15.01.2014, 14:44 Titel: |
|
|
So einen Aufruf gibt es in FreeBASIC nicht. Ich habe mir (sofern ich eine solche Abfrage im Programm mehrmals brauche) selbst eine Funktion dazu geschrieben, z. B.:
Code: | FUNCTION innerhalb(wert AS INTEGER, start AS INTEGER, ziel AS INTEGER) AS INTEGER
IF wert >= start AND wert <= ziel THEN RETURN -1 ELSE RETURN 0
END FUNCTION
' ---
IF innerhalb(Maus_x, 5, Fenster_Breite-5) AND innerhalb(Maus_y, 8, 28) THEN ... |
Ist nicht wesentlich kürzer, aber vielleicht trotzdem lesbarer.
Alternativ kannst du auch beides auf einen Schlag machen mit einer Funktion wie innerhalb(x, y, startX, startY, zielX, zielY) _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Muecke Gast
|
Verfasst am: 15.01.2014, 14:49 Titel: |
|
|
hmm, OK, schade das FB das nicht kann
das mit der Funktion ist jedoch eine Gute Idee
das werde ich mir noch durch den Kopf gehen lassen
wie ich das am besten gebrauchen kann.
DANKE für den Tipp. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 15.01.2014, 20:09 Titel: |
|
|
Moderne Anwendungen benützen halt in der Regel die GUI-API von Windows bzw. Fenstermanager/X11-Server bei Linux, wo Du dem Betriebssystem sagst, was Du an Schaltflächen, Checkboxen usw. haben möchtest -> da kümmert sich dann das Betriebssystem um die Mauskoordinaten.
Übrigens ist auch GUI eine Wissenschaft für sich. So versuchte bekanntlich Sun seinerzeit auch bei Java mit dem AWT eine plattformneutrale GUI-Programmierung anzustreben, wurde aber zwischenzeitlich durch Swing verdrängt.
@alle/Experten: Vielleicht wäre an dieser Stelle auch für FreeBasic eine Kurzübersicht interessant, damit in einer GUI-Anwendung das Rad nicht neu erfunden werden muss. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Muecke Gast
|
Verfasst am: 15.01.2014, 20:14 Titel: |
|
|
also das mit der GUI-API bzw. Fensterverwaltung etc. habe ich mir schon mal angeschaut was ich dazu so gesehen und gefunden habe, was ich aber nicht ganz so einfach empfunden hatte
daher dachte ich mir ich bleibe in dem Bereich der mir zumindest ab und an etwas sagt .
Danke für den Tipp. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 15.01.2014, 20:43 Titel: |
|
|
GUI für FreeBASIC ist ein Thema für sich. Man kann natürlich WinAPI, GTK oder wx-c (wxWidgets Wrapper) nutzen, es gibt aber auch einige FB-eigene GUIs. Eine sehr gute FB-GUI ist sGUI.
Das Problem dabei ist meist, dass man damit z. B. sehbeeinträchtigte Personen ausschließt, da diese GUIs, anders als etwa die WinAPI, nicht mit Screenreadern zusammenarbeiten können.
Für wx-c gibt es für FB auch einen Designer, der mittlerweile in einen FreeBASIC Editor eingebaut wurde. Damit kann man sich die Oberfläche zusammenklicken und erhält fertigen, lauffähigen FB-Code.
Im Portal haben wir auch einiges an Tutorials, etwa Lutz Ifers WinAPI Tutorial oder auch eine kleine Einführung in Eventsysteme, mit denen man sich eigene GUIs zusammenbauen kann. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|