Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 17.04.2008, 14:26 Titel: Maus? |
|
|
Hallo ich habe erst vor kurzer zeit begonnen auf freebasic-basis zu programmieren. Ich bin auch nicht gerade der Pro aber ich habe zuvor mit qbasic einige kleinere Programme erstellt. Nun ist meine Frage ob es oder wie es in freebasic geht eine Maus zu verwenden. Im q basic habe ich das mit meinen Freunden so gemacht, dass wir einen Hintergrund hatten und dann Koordinaten angegeben haben wo man etwas anklicken kann. Würde mich über einige möglichst einfach beschriebene Hilfen freuen. thx schon mal.  |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 17.04.2008, 14:38 Titel: |
|
|
GetMouse()?
Oder was meintest Du? _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 17.04.2008, 15:30 Titel: |
|
|
thx  |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 17.04.2008, 15:58 Titel: |
|
|
Doch noch eine frge ,weil ich habe danach gesucht, wie man flächen anklicken kann habe aner nichts gefunden. ich habe es nur geschafft ein einzelnes Pixel anzuklichen.  |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 17.04.2008, 16:03 Titel: |
|
|
Wie hast Du es denn in QBasic gemacht?
Laut Referenz (Lesen!) gibt GetMouse die Koordinaten des Mauscursors zurück. Da muß man nur überprüfen, ob die innerhalb der gefragten Fläche liegen. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 17.04.2008, 16:15 Titel: |
|
|
der anzuklickende Bereich wurde so angegeben:
IF mouseX% >=186 AND mouse x%<= 455 AND mouseY% >= 57 AND mouse <= 78 THEN >Befehl<
aber genauer weiß ich das auch nicht, da ich selbst den Befehl noch nicht verwendet habe sondern zuvor umgestiegen bin. Mein KUmpel hat den Befehl verwendet und ich habe auch versucht ihn zu kapieren aber er war zu schnell mit seiner erklärung^^.
und was den Zwiten Teil deiner Antwort betrifft: Wie gebe ich eine Fläche an oder wo finde ich das in der FAQ unter Area ist nichts. |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 17.04.2008, 16:46 Titel: |
|
|
Hallo, Sippo,
mal ein paar kleine Tips:
1) für Codeschnippsel verwende bitte Code-Tags (Über dem Eingabefenster steht eine Schaltfläche mit "Code")
2) Gib die Programmzeile richtig wieder und achte auf richtige Zuordnung und Schreibweise der Variablen. Z. B. das hier
sagt gar nichts, denn was ist mouse?
3) Wenn Du nicht weißt, wie man Flächen angibt, dann befaß Dich erstmal mit den Grundlagen von QBasic/FreeBasic. Das ist nämlich bei beiden gleich. Mach Dir bewußt, daß die Werte von GetMouse Bildschirmkoordinaten sind. Was auch sonst?
4) Einen Befehl "Area" kenne ich nicht. Steht auch nicht in der Referenz. Was willst Du damit?
5) Mit einer gescheiten Rechtschreibung wäre Deine Frage viel verständlicher.
Ich würde das so machen:
Code: | IF mouseX% >=186 AND mouse x%<= 455 AND mouseY% >= 57 AND mouseY% <= 78 THEN
Print "Treffer"
EndIf
|
Die Fläche ist mit den Abfragen in der If-Anweisung schon angegeben. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 17.04.2008, 16:52 Titel: |
|
|
oK danke
und für den obrigen Beitrag entschuldige ich mich denn da sieht man ja eigentlich nichts wegen der vielen Variablen.
Aber wie oben steht kenne ich dummerweiise nicht den ganzen code.
Weiteres Problem wie soll ich denn die Variablen definieren? =0? oder einfach nur Code: | DIM mausX% as INTEGER |
Zuletzt bearbeitet von Sippo am 17.04.2008, 16:59, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 17.04.2008, 16:59 Titel: |
|
|
Dann ist es auch schwer, Dein Problem zu verstehen.
Hast Du in QBasic mal versucht, Maus-Routinen einzusetzen? Nur um zu erfahren, welche Vorkenntnisse Du hast.
Prinzipiell sollte GetMouse in eine Schleife eingebaut werden, weil die Funktion eben nur einmal abfragt und dann wiederholt werden muß. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 17.04.2008, 17:03 Titel: |
|
|
Nein in qb habe ich selbst noch keine Maus verwendet nur Koordinaten eingegeben . (Aber immerhin kann ich schon einzelne Pixel anklicken^^)
mit dem Befehl:
Code: | Dim As Integer x, y, buttons, Ergebnis
Dim c as integer
c=0
Screen 13
Do
Ergebnis = GetMouse (x, y, , buttons)
Locate 1, 1
If Ergebnis <> 0 Then
Print "Maus nicht vorhanden oder nicht im Fenster"
Else
Print Using "Maus-Position: ###:### Buttons: "; x; y;
If buttons And 1 Then Print "L"; c = 1
If buttons And 2 Then Print "R"; c = 2
If buttons And 4 Then Print "M"; c = 3
if buttons and 1 and x =50 and y = 50 then goto start
Print Space(5)
End If
Loop While Inkey = ""
End
start:
print "geht!"
sleep
end |
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 17.04.2008, 17:42 Titel: |
|
|
Dann ersetze doch mal die Zeile
Code: | IF buttons AND 1 AND x =50 AND y = 50 THEN GOTO start |
durch die vielzitierte Anweisung
Code: | IF buttons AND 1 AND x >= 186 AND x <= 455 AND y >= 57 AND y <= 78 THEN GOTO start |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 17.04.2008, 17:52 Titel: |
|
|
oh mann darauf hätt ich auch kommen können
danke |
|
Nach oben |
|
 |
|