  | 
					
						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, 12: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: 4712 Wohnort: ~/
  | 
		
			
				 Verfasst am: 15.01.2014, 13: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, 13: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: 2531 Wohnort: Hofen SH (Schweiz)
  | 
		
			
				 Verfasst am: 15.01.2014, 19: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, 19: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, 19: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.
  | 
   
 
     |