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

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 11.09.2006, 17:34 Titel: Malprogramm-problem |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.09.2006, 21:22 Titel: |
|
|
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 |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 12.09.2006, 16:07 Titel: |
|
|
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 14.09.2006, 20:41 Titel: |
|
|
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
Gruß Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 15.09.2006, 15:37 Titel: |
|
|
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 15.09.2006, 18:44 Titel: |
|
|
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!
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,
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 |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 15.09.2006, 19:58 Titel: |
|
|
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
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 16.09.2006, 14:06 Titel: |
|
|
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 |
|
 |
|
|
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.
|
|