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:

warum funktioniert dieses programm nicht?

 
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
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 30.06.2006, 16:57    Titel: warum funktioniert dieses programm nicht? Antworten mit Zitat

Code:

declare sub neu
declare sub alt
declare sub menue
call menue
sub menue
    screen 18
    color 14,1
    cls
    ?"Texteditor 1.0"
    ?""
    ?"1. New"
    ?"2. Open..."
    ?"3. Quit"
do
    getmouse x,y,,taste
loop until taste=1
select case x
case 0 to 80:
    select case y
    case 325 to 455:
    call neu
    case 456 to 635:
    call alt
    end select
end select

end sub

sub neu
color 14,1
cls
sleep
end sub

sub alt
color 14,1
cls
sleep
end sub



anstelle das die subs aufgerufen werden schliesst sich das programm immer automatisch wenn man irgendwo hin klickt. Was ist falsch?
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 30.06.2006, 17:10    Titel: Antworten mit Zitat

schreib ma irgendwie noch ein

dim as integer x,y,taste

vor dme "do" dazu, vielleicht musst du die variablen erst deklarieren bevor du sie benutzt, könnte sein..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 30.06.2006, 17:23    Titel: Antworten mit Zitat

Ist das der komplette code?
Wenn ja, dann hab ich den Fehler:

Du musst Screen aufrufen, da getmouse in der konsole nicht funktioniert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 30.06.2006, 17:55    Titel: Antworten mit Zitat

was meinst du damit ? ich hab doch screen 18 drin
@MR.D : Leider klappts mit dim x,y,taste as integer auch nicht.
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 30.06.2006, 18:53    Titel: Antworten mit Zitat

Hi alphonsospringer,
wenn du in deinen Code folgenden Schnipsel einfügst:
Code:
select case x
  case 0 to 80:
    select case y*8
      case 325 to 455:
      call neu
    case 456 to 635:
      call alt
    Case Else
      ?Chr(7)
    end select
end select
kriegste schon mal mit, daß etwas passiert grinsen
Btw:Variablen dimensionieren ist nie verkehrt..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 30.06.2006, 19:03    Titel: Antworten mit Zitat

alfonsospringer hat Folgendes geschrieben:
was meinst du damit ? ich hab doch screen 18 drin
@MR.D : Leider klappts mit dim x,y,taste as integer auch nicht.


Ups, sry. Hab ich übersehen.

Mach mal hinter der schleife folgendes(also vor dem select case):

Code:
Print x,y: Sleep 3000



Dann kannst du besser sehen, was in x und in y drin is.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 30.06.2006, 19:28    Titel: Antworten mit Zitat

alfonsospringer hat Folgendes geschrieben:
was meinst du damit ? ich hab doch screen 18 drin
@MR.D : Leider klappts mit dim x,y,taste as integer auch nicht.

Wo hast du es denn Eingebaut?!
Code:
declare sub neu
declare sub alt
declare sub menue
call menue
sub menue
    dim as integer x,y,taste
    screen 18
    color 14,1

Und es geht bei mir

.
Wieso beendet sich das Programm eigentlich bei einem Klick ins Nichts?
Absicht?
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 30.06.2006, 19:47    Titel: Antworten mit Zitat

was macht
Code:

select case y*8

?

ich hab das screen 18 ganz am anfang des subs wie du es da stehen hast
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 30.06.2006, 19:59    Titel: Antworten mit Zitat

Ich hatte den Verdacht, daß du falsche Positionen abfragst und so habe ich y mit 8
multipliziert, um 'vernünftige' Werte zu bekommen..
Ich kann in Bedingungsabfragen auch rechnen(du natürlich auch..)
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 30.06.2006, 22:28    Titel: Antworten mit Zitat

ich hab in die vor und hinter die schleife mal ein print x,y reingepackt und festgestellt, dass die werte vor und nach dem klicken unterschiedlich sind. Wie kann das sein ? Ich komme hier einfach nicht weiter. Es muesste doch eigentlich funktionieren so wie es ist.
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 30.06.2006, 23:09    Titel: Antworten mit Zitat

So, probier mal dies:
Code:
Declare Sub Neu
Declare Sub Alt
Declare Sub Menue
Menue
?"Fertich.."
Sleep

Sub Menue
  Dim x, y, Taste, xSize, ySize
  Screen 18
  Color 14,1
  ScreenInfo xSize, ySize
  Cls
  ?"Texteditor 1.0"
  ?
  ?"1. New"
  ?"2. Open..."
  ?"3. Quit"
  ?xSize, ySize
Do
  GetMouse x,y,,Taste
Loop Until Taste=1
?x, y
Sleep 1000
Select Case x
  Case 0 To 100
    Select Case y
      Case 32 To 48
        Neu
      Case 49 To 65
        Alt
      Case 66 To 102
        Exit Sub
      Case Else
        ?Chr(7)
    End Select
  End Select
End Sub

Sub Neu
  Color 15, 1
  Cls
  ?"New"
  Sleep
End Sub

Sub Alt
  Color 11, 1
  Cls
  ?"Open"
  Sleep
End Sub
Sollte jetzt eigentlich gehen..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 01.07.2006, 12:25    Titel: Antworten mit Zitat

Code:

do
getmouse x,y,,taste
locate 8,1
print x,y
loop until taste=1
print x,y


warum sind die x und y werte, die ich in und nach der schleife bekomme unterschiedlich? Das kann doch icht sein.
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 01.07.2006, 13:39    Titel: Antworten mit Zitat

Kanns auch nicht, probiers mal so:
Code:
Dim x,y,taste
do
  getmouse x,y,,taste
  locate 8,1, 0 ' ,0 bedeutet Cursor-Ausgabe abschalten, nur Kosmetik
  print x,y;"      "
loop until taste=1
print x,y
Sleep

Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..

Zuletzt bearbeitet von ytwinky am 01.07.2006, 14:41, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 01.07.2006, 13:43    Titel: Antworten mit Zitat

wofür die " "

übrigens hab ich das mysterium aufgeklärt. Solange ich in der schleife bin gibt er das 10fache des eigentlichen y wertes an. Ich weiss zwar nicht warum, aber iss so. Nun zumindest weiss ich jetzt wie es ght. Vielen dank. Ich würde mich aber weiterhin über antworten auf meine letzte frage im thread maus tutorial freuen
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 01.07.2006, 14:02    Titel: Antworten mit Zitat

Nimmersatt vor lachen auf dem Boden rollen
Die Leerzeichen nach y sollen eine Lücke in der Ausgabe schaffen,
damit nach der ausgegeben Zahl nicht noch Reste der vorigen Zahl stehenbleiben und die Fehlersuche durcheinanderbringen grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 01.07.2006, 14:23    Titel: Antworten mit Zitat

jaja, ich weiss dass ch gerne leuten löcher in den bauch frage.
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 01.07.2006, 14:43    Titel: Antworten mit Zitat

Kuckma oben, ich habe die Cursorausgabe abgeschaltet, weil sie nervt..
Um meinen Bauch brauchst DU dir keine Gedanken zu machen lachen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 01.07.2006, 15:24    Titel: Antworten mit Zitat

noch so' doofes loch: Was ist die Cursorausgabe ? (Ja, ich habe keine allgemeinbilung auf diesem bereich happy)
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 01.07.2006, 16:01    Titel: Antworten mit Zitat

Code:
locate 8, 1, 1 ' ,1 bedeutet Cursor-Ausgabe einschalten, nervt auf Dauer
und
Code:
locate 8, 1, 0 ' ,0 bedeutet Cursor-Ausgabe abschalten, Ruhe is..
..dann wieselt der Cursor nicht mehr auf dem Bildschirm herum..
s. Locate-Hilfe..
..ich weiß, das hätte ich dir nicht sagen müssen grinsen
btw:
Welche Version der Hilfe-Datei hast du eigentlich?
Hast du auch die englische Hilfe?
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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