text wird nur manchmal angezeigt [gelöst]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Yuvilee

Betreff: text wird nur manchmal angezeigt [gelöst]

BeitragDo, Sep 18, 2008 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,
ich beschaeftige mich jetzt seit 2 tagen mit BB. ich versuche mir derzeit mit hilfe von robs tutorials und den inhalten dieses forums das absolute basiswissen anzueignen. nach ein paar kleinen unterhaltungen in eurem chat habe ich beschlossen als uebung erstmal einen einfachen taschenrechner zu programmieren, bei dem man die nummern auf dem ziffernfeld anklicken kann. mit dem projekt will ich feststellen, ob BB als hobby fuer mich in frage kommt.

ich habe jetzt mit rect und text felder angeordnet, die das nummernpad darstellen. (anklicken kann man bisher noch nichts Wink )
die rechtecke werden fehlerfrei angezeigt. die nummern liegen natuerlich auf den feldern. mein problem is, dass wenn ich das programm soweit im testmodus laufen lasse, ab und an verschiedene mit text geschriebene zahlen/zeichen nicht angezeigt werden bzw unter den rechtecken verschwinden (vermutung).
die zahlen/zeichen werden nicht zufaellig nicht angezeigt. soll heissen mal stehen da alle zahlen von 1 bis 9 und nur die null ganz unten fehlt und mal werden nur die zahlen 1 bis 4 angezeigt.

das ganze ist kein flimmern. wenn ich das programm im testmodus starte bleiben die zahlen, die man sieht auch stehen und die, die nicht angezeigt werden, tauchen auch nicht nochmal kurz auf. bei jedem testlauf werden andere zahlen/zeichen nicht angezeigt. ich kann keine regelmaeßigkeit beim auftreten des fehlers erkennen.

hier der code:
Code: [AUSKLAPPEN]

Graphics 640, 480, 16, 0
AppTitle ("Taschenrechner")
HidePointer

schrift1 = LoadFont("arial", 30)

SetBuffer BackBuffer ()


While Not KeyHit (1)
   ; zeile 1
   Color 140, 140, 140       ; dunkleres grau
   Rect 200, 145, 50, 50, 1    ; x-achse, y-achse, breite, hoehe, 1=gefuellt / 0=leer
   Rect 255, 145, 50, 50, 1
   Rect 310, 145, 50, 50, 1
   Color 160, 160, 160       ; helleres grau
   Rect 365, 145, 50, 50, 1

   ; zeile 2
   Color 140, 140, 140
   Rect 200, 200, 50, 50, 1
   Rect 255, 200, 50, 50, 1
   Rect 310, 200, 50, 50, 1
   Color 160, 160, 160
   Rect 365, 200, 50, 50, 1

   ; zeile 3
   Color 140, 140, 140
   Rect 200, 255, 50, 50, 1
   Rect 255, 255, 50, 50, 1
   Rect 310, 255, 50, 50, 1
   Color 160, 160, 160
   Rect 365, 255, 50, 50, 1

   ; zeile 4
   Color 140, 140, 140
   Rect 200, 310, 160, 50, 1
   Color 160, 160, 160
   Rect 365, 310, 50, 50, 1

   ; zeile 5
   Rect 200, 365, 160, 50, 1
   Rect 365, 365, 50, 50, 1
   

      ; nummern
      SetFont schrift1
      Color 0, 0, 0            ; schwarz
      Text 218, 158, "7"
      Text 273, 158, "8"
      Text 328, 158, "9"
      Text 218, 212, "4"
      Text 273, 212, "5"
      Text 328, 212, "6"
      Text 218, 267, "1"
      Text 273, 267, "2"
      Text 328, 267, "3"
      Text 273, 322, "0"

      ; zeichen
      Color 255, 255, 255         ; weiss
      Text 383, 158, "+"
      Text 383, 212, "-"
      Text 383, 267, "*"
      Text 383, 322, "/"
      Text 280, 377, "Enter"
wend
Cls


ich hoffe ihr koennt mir helfen =)

MfG
Yuvilee

EDIT:
- zahlen auch in gaensefuesschen gesetzt
- [repeat - forever] durch [While Not KeyHit (1) - wend] ersetzt
danke an darkralf
problem besteht leider weiterhin
  • Zuletzt bearbeitet von Yuvilee am Fr, Sep 19, 2008 5:17, insgesamt 3-mal bearbeitet

darkralf

BeitragDo, Sep 18, 2008 23:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Statt

Repeat
Forever

würde ich zunächst einmal

While Not KeyHit (1)
Wend

nutzen. Somit ist das Programm über ESC zu beenden.


Ansonsten würde ich der Ordnung halber dazu tendieren, bei Text auch "Gänsefüßchen" zusetzten.

Sprich:

Text 273, 158, "8"


Keine Ahnung obs daran liegt, könnte aber sein.


Edit: Wo ist denn das Flip in deinem Beispiel???
Das ist kein Fehler! Das ist ein Feature.
 

Yuvilee

BeitragDo, Sep 18, 2008 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
danke schonmal =D
das war ja eine schnelle antwort.

ok hab das mit dem

While Not KeyHit (1)
wend

mal gemacht - mit esc beenden ist immer gut Wink
- und auch die gaensefuesschen gesetzt. leider war das nicht des raetsels loesung fuer das problem.


EDIT:
code "ueberarbeitet.

und ich hab kein flip drin =S
hmm. ich schu mir das mit der flip funktion mal an. dachte ich brauch es nicht, weil danach ja (vorerst) nichts mehr kommt

Edit2:
wenn ich
Code: [AUSKLAPPEN]
Flip
Until KeyHit(1)

noch hinten dran haenge, bleibt das problem. nur laesst sich das ganze nicht mehr mit esc beenden.
wenn ich flip weglasse und auch das Code: [AUSKLAPPEN]
SetBuffer BackBuffer()
wegnehme, dann flimmern die zahlen. allerdings alle zahlen und zeichen. ohne das eine fehlt. das laesst mich vermuten, dass in dem von mir oben geposteten code folgendes passiert:
eigentlich wuerden die ganzen zahlen und zeichen gerne flimmern. da es aber gefreezt wird, werden nur die zahlen und zeichen angezeigt, die beim zeitpunkt des freezes da waren.
  • Zuletzt bearbeitet von Yuvilee am Do, Sep 18, 2008 23:59, insgesamt einmal bearbeitet

darkralf

BeitragDo, Sep 18, 2008 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du auf den BackBuffer malst/schreibst, wird dir ohne Flip auf dem FrontBuffer nichts angezeigt.


https://www.blitzforum.de/help/Flip



Code: [AUSKLAPPEN]

Graphics 640, 480, 16, 0
AppTitle ("Taschenrechner")
HidePointer

schrift1 = LoadFont("arial", 30)

While Not KeyHit (1)
   SetBuffer BackBuffer ()
   Cls
   ; zeile 1
   Color 140, 140, 140       ; dunkleres grau
   Rect 200, 145, 50, 50, 1    ; x-achse, y-achse, breite, hoehe, 1=gefuellt / 0=leer
   Rect 255, 145, 50, 50, 1
   Rect 310, 145, 50, 50, 1
   Color 160, 160, 160       ; helleres grau
   Rect 365, 145, 50, 50, 1

   ; zeile 2
   Color 140, 140, 140
   Rect 200, 200, 50, 50, 1
   Rect 255, 200, 50, 50, 1
   Rect 310, 200, 50, 50, 1
   Color 160, 160, 160
   Rect 365, 200, 50, 50, 1

   ; zeile 3
   Color 140, 140, 140
   Rect 200, 255, 50, 50, 1
   Rect 255, 255, 50, 50, 1
   Rect 310, 255, 50, 50, 1
   Color 160, 160, 160
   Rect 365, 255, 50, 50, 1

   ; zeile 4
   Color 140, 140, 140
   Rect 200, 310, 160, 50, 1
   Color 160, 160, 160
   Rect 365, 310, 50, 50, 1

   ; zeile 5
   Rect 200, 365, 160, 50, 1
   Rect 365, 365, 50, 50, 1
   

      ; nummern
      SetFont schrift1
      Color 0, 0, 0            ; schwarz
      Text 218, 158, "7"
      Text 273, 158, "8"
      Text 328, 158, "9"
      Text 218, 212, "4"
      Text 273, 212, "5"
      Text 328, 212, "6"
      Text 218, 267, "1"
      Text 273, 267, "2"
      Text 328, 267, "3"
      Text 273, 322, "0"

      ; zeichen
      Color 255, 255, 255         ; weiss
      Text 383, 158, "+"
      Text 383, 212, "-"
      Text 383, 267, "*"
      Text 383, 322, "/"
      Text 280, 377, "Enter"
      Flip
wend
Cls



Das ist kein Fehler! Das ist ein Feature.
 

Yuvilee

BeitragFr, Sep 19, 2008 0:07
Antworten mit Zitat
Benutzer-Profile anzeigen
achsoo, ich kann die ineinander verschachteln!
verschachtelt ist das problem geloest! es werdenen nun immer alle zahlen und zeichen angezeigt.
danke vielmals darkralf. *thumbup*

ich werde mich als naechstes genauer mit schleifen beschaeftigen. die entziehen sich noch meinem verstaendnis. am besten mit ein paar uebungen.
da ich auch gern verstehe, was ich da geschrieben habe, werd ich mir besonders den wend (gehoert soweit ich weiss auch zu einer schleifenart) befehl ansehen.

problem geloest, kann von miraus geschlossen werden

FireballFlame

BeitragFr, Sep 19, 2008 2:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Noch eine Korrektur an darkralfs Code:
"SetBuffer BackBuffer ()" gehört nicht in die Schleife. Normalerweise schreibt man es einmal unter den Graphics-Befehl, das reicht.

Auch der SetFont-Befehl kann vor die Schleife, wenn du nur eine Schriftart benutzt.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group