Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

if x = (1 to 100) Then ....

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Muecke
Gast





BeitragVerfasst am: 15.01.2014, 13:30    Titel: if x = (1 to 100) Then .... Antworten mit Zitat

Hallo miteinander,

Gerade versuche ich mein Programm Maus fähig zu machen lächeln

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 traurig
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 traurig 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: ~/

BeitragVerfasst am: 15.01.2014, 14:44    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Muecke
Gast





BeitragVerfasst am: 15.01.2014, 14:49    Titel: Antworten mit Zitat

hmm, OK, schade das FB das nicht kann traurig

das mit der Funktion ist jedoch eine Gute Idee lächeln
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)

BeitragVerfasst am: 15.01.2014, 20:09    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Muecke
Gast





BeitragVerfasst am: 15.01.2014, 20:14    Titel: Antworten mit Zitat

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 weinen
daher dachte ich mir ich bleibe in dem Bereich der mir zumindest ab und an etwas sagt zwinkern.

Danke für den Tipp.
Nach oben
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 15.01.2014, 20:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz