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:

Malprogramm-problem

 
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
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 11.09.2006, 17:34    Titel: Malprogramm-problem Antworten mit Zitat

ich hab 'n problem mit meinem 'malprogramm'
man kann damit zwar via koordiaten eingabe 'malen'
aber die abragetexte und Print's werden dauerhaft angezeigt und das bild rutscht nach oben, also ist es eher schwer damit zu malen... ich stell man den Code hier rein:

Code:

CLS
Screen 9
Locate 20,60
Print "|------------------|"
locate 21,60
Print "|Q = Beenden       |"
locate 22,60
Print "|L = Linie zeichnen|"
locate 23,60
Print "|P = Punkt Zeichnen|"
locate 24,60
Print "|K = Kreis zeichnen|"
Locate 25,60
Print "|------------------|"
Farbe%= 15
a$="w"
locate 0,0
while a$="w"
    Input "Was möchtest du machen?",b$
        if b$="F" or b$="f" then Input "Welche Farbe? (1-15)",Farbe%
        if b$="q" or b$="Q" then a$="q"
       
        If b$="L" or b$="l" then
                                Print "Koordinaten angeben:"
                                Input "Hoehe X1 = ",x1%
                                Input "Breite Y1 = ",y1%
                                Input "Hoehe X2 = ",x2%
                                Input "Breite Y2 = ",y2%
                                Input "Welche Farbe? (1-15)",Farbe%
                                Line (x1%,y1%) -(x2%,y2%),Farbe%
        End if
         
        If b$="P" or b$="p" then
                                Print "Koordinaten angeben:"
                                Input "Hoehe X1 = ",x1%
                                Input "Breite Y1 = ",y1%
                                Input "Welche Farbe? (1-15)",Farbe%
                                PSet (x1%,y1%),Farbe%
        end if
       
        If b$="K" or b$="k" then
                                Print "Koordinaten angeben:"
                                Input "Hoehe X1 = ",x1%
                                Input "Breite Y1 = ",y1%
                                Input "Welche Farbe? (1-15)",Farbe%
                                Input "Radius angeben :",Radius%
                                Circle (x1%,y1%),Radius%,Farbe%
        End If
       
Wend
sleep 3000

Am besten wär es das Eingabe fenster vom ausgabe fenster zu trennen, sprich Angaben, koordinaten (...) in ein fenster und die grafiken in das andere...

P.S. sorry das ich die anwendung nich kommentiert hab, aber ich hab das teil schon in der schule aufn zettel geschrieben und keine zeit und keinen nerv für's kommentieren gehabt...
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.09.2006, 21:22    Titel: Antworten mit Zitat

dein programm benutzt ja den SCREEN 9. wenn du da in zeile 24/25 schreibst, wird automatsisch "hochgescrollt". warum? ganz einfach: wenn du schreibst
PRINT "hallo"
wird nach dem "hallo" ein zeilenumbruch gemacht, damit die nächste print-anweisung in der nächsten zeile steht.
abhilfe schafft
PRINT "hallo";

oder du schreibst deine texte etwas weiter oben.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 12.09.2006, 16:07    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:

oder du schreibst deine texte etwas weiter oben.


hab ich versucht (siehe code zeile ??) hab das Locate wieder aus 0,0 gesetzt, aber selbst wenn das funktioniert, das 'gemalte' wird ja trotzdem überschrieben, und mit CLS wird alles gelöscht...
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 14.09.2006, 20:41    Titel: Antworten mit Zitat

Hi versuch es mal so
Code:

Sub ErsteZeile ' Eingabe immer in der ersten Zeile
  Locate 1,1
  Print String(70," ");
  Locate 1,1
End Sub

Screen 18, 4 'größeres Fenster mit nur 16 Farben
Farbe%= 15
Do
  ErsteZeile : Input "(q)uitt , (l)inie (p)unkt (k)reis (b)ox (kf);(bf) gefuellt > ",b$
  b$ = Trim(Ucase(b$))
  If Len(b$) > 1 Then
    f$ = Right(b$,1)
    b$ = Left(b$,1)
  Else
    f$ = ""
  End If
 
  If b$ = "L" Or b$ = "P" Or b$ = "K"  Or b$ = "B" Then
    ErsteZeile : Input "Welche Farbe? (1-15) ",Farbe%
    ErsteZeile : Input "Hoehe X1 = ",x1%
    ErsteZeile : Input "Breite Y1 = ",y1%
    If b$ = "P" Then Pset (x1%,y1%),Farbe%
    If b$ = "L" Or b$ = "B" Then
      ErsteZeile : Input "Hoehe X2 = ",x2%
      ErsteZeile : Input "Breite Y2 = ",y2%
      If b$ = "L" Then Line (x1%,y1%) - (x2%,y2%), Farbe%
      If b$ = "B" Then
        If f$ = "F" Then
          Line (x1%,y1%) - (x2%,y2%), Farbe%,BF
        Else
          Line (x1%,y1%) - (x2%,y2%), Farbe%,B
        End If
      End If
    End If
    If b$ = "K" Then
      ErsteZeile : Input "Radius angeben :",Radius%
      If f$ = "F" Then
        Circle (x1%,y1%),Radius%,Farbe%,,,,F
      Else
        Circle (x1%,y1%),Radius%,Farbe%
      End If
    End If
  End If
  If b$ = "C" Then Cls
Loop Until b$="Q"
ErsteZeile : Print "Bye bye .."
Sleep 3000

Eine Version mit 2 Fenstern ist sehr kompliziert, versuche erst mal die hier verwendeten Anweisungen zu benutzen zwinkern
Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 15.09.2006, 15:37    Titel: Antworten mit Zitat

Danke Volta, hat funktioniert,
allerdings werd ich noch 'n wenig daran arbeiten (soll ja Meins sein und nicht dein xD)

kannst du mir folgendes noch mal erläutern?:
Code:

Sub ErsteZeile ' "sub" is hier unklar, ich kenn das sonst nur von VB von MS..
  Locate 1,1 ' locate ist klar,
  Print String(70," "); '< das mit dem String(70," "); versteh ich nicht...
  Locate 1,1 's.o.
End Sub 'scheint der end-befehl zu sein...


ich bin eben 'n BASIC anfänger...
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 15.09.2006, 18:44    Titel: Antworten mit Zitat

Mark Aroni hat Folgendes geschrieben:
.. allerdings werd ich noch 'n wenig daran arbeiten (soll ja Meins sein und nicht dein xD)
richtig, so war das auch gedacht! grinsen

Sub ErsteZeile < der Name eines Unterprogramms.
Immer wenn im weiteren Basicode dieser Name 'ErsteZeile' steht wird alles zwischen SUB .. END SUB ausgeführt.

String(70," ") < Hier wird ein String gebildet der 70 Zeichen enthält und zwar " " Leerzeichen.

Ich hoffe du machst mit freeBASIC weiter, lächeln
dann solltest du dir die Referenz von Dusky_Joe laden
http://stefan.freebasic.de/DATA/FBRD_06-09-01.chm
und mal bei http://freebasic.de/ umsehen.

Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 15.09.2006, 19:58    Titel: Antworten mit Zitat

Danke für die erklärung^^
kann man in Sub's komplette programme einbauen?
dann könnte man auch ein 10-in-1 tool basteln xD

die refferenz hab ich mir runter geladen und guck ich mir gleich an...
und zum programm:
ich hab erstmal 'nen easteregg eingebaut happy
dann hab ich den Hintergrund weiß gemacht und die legende verändert... wird noch mehr mit passieren...aber vll. erst wenn ich besser mit FB umgehen kann...
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 16.09.2006, 14:06    Titel: Antworten mit Zitat

Hi,
Zitat:
kann man in Sub's komplette programme einbauen?

wenn du die FB-Referenz jetzt hast, lese dir mal das Kapitel 'Prozeduren' durch.
Dort wird das ausführlich erklärt.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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