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:

MINI PAINT

 
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
qbay



Anmeldungsdatum: 08.06.2008
Beiträge: 84

BeitragVerfasst am: 26.03.2011, 17:15    Titel: MINI PAINT Antworten mit Zitat

hey Leute wie gehts?
also ich versuche ein kleines MS PAINT ähnliches Programm zu schreiben
aber da gibs noch einpaar schwierigkeiten
also erstens Löschen sich die Zeichnungen immer selbst
zweitens funktioniert der Kreis-Befehl nicht richtig, also nur in eine richtung

mit dem Programm kann man Linien, Vierecke bzw. Rechtecke und Kreise zeichnen durch das drücken von a , b oder der c-taste und durch erneutes drücken bestätigt man die Grafik.

Schauts euch am besten an und sagt mir was ihr davon haltet

Code:


DIM SHARED AS INTEGER work_page, x, y, xstart, ystart, Radius
DIM SHARED AS STRING Auswahl
DECLARE SUB Linie
DECLARE SUB Viereck
DECLARE SUB Kreis

'Bildschirmmodus 640x480x8 mit zwei Seiten initialisieren
SCREEN 18, ,2
COLOR 2, 15
work_page = 0
x = 320
y = 240
DO   
    SLEEP 1   
    ' Eine Seite beschreiben, während die andere angezeigt wird   
    SCREENSET work_page, work_page XOR 1     
    ' Überprüfe die Pfeiltasten und aktualisiere die Koordinaten   
    ' x, y entsprechend.
    xstart = x
    ystart = y
    Auswahl = INKEY$ 
   
    SELECT CASE Auswahl
    CASE CHR(97)
        Linie
    CASE CHR(98)
        Viereck
    CASE CHR(99)
        Kreis
    END SELECT
   
    IF MULTIKEY(&h4D) AND x < 639 THEN x += 1   
    IF MULTIKEY(&h4B) AND x >   0 THEN x -= 1   
    IF MULTIKEY(&h50) AND y < 479 THEN y += 1   
    IF MULTIKEY(&h48) AND y >   0 THEN y -= 1   
    CLS   
    CIRCLE(x, y), 10, , , , ,F
    PRINT "Koordinaten : " & " x : " & x & " y : " & y
    ' Seite wechseln   
    work_page = work_page XOR 1
LOOP UNTIL INKEY = CHR(27)
' Bis ESC gedrückt wird weitermachen
' Setze aktive und sichtbare Bildschirmseite wieder auf 0
SCREENSET
PRINT "Beliebige Taste zum Beenden druecken."
GETKEY

SUB Linie
    DO
        SLEEP 1
        SCREENSET work_page, work_page XOR 1     
        IF MULTIKEY(&h4D) AND x < 639 THEN x += 1   
        IF MULTIKEY(&h4B) AND x >   0 THEN x -= 1   
        IF MULTIKEY(&h50) AND y < 479 THEN y += 1   
        IF MULTIKEY(&h48) AND y >   0 THEN y -= 1   
        CLS   
        CIRCLE(x, y), 10, , , , ,F   
        LINE (xstart, ystart)-(x, y), 0
        PRINT "Koordinaten : " & " x1: " & xstart & " y1: " & ystart & " x2: " & x & " y2: " & y
        ' Seite wechseln   
        work_page = work_page XOR 1
    LOOP UNTIL INKEY = CHR(97)
END SUB

SUB Viereck
    DO
        SLEEP 1
        SCREENSET work_page, work_page XOR 1     
        IF MULTIKEY(&h4D) AND x < 639 THEN x += 1   
        IF MULTIKEY(&h4B) AND x >   0 THEN x -= 1   
        IF MULTIKEY(&h50) AND y < 479 THEN y += 1   
        IF MULTIKEY(&h48) AND y >   0 THEN y -= 1   
        CLS   
        CIRCLE(x, y), 10, , , , ,F   
        LINE (xstart, ystart)-(x, y), 0, B
        PRINT "Koordinaten : " & " x1: " & xstart & " y1: " & ystart & " x2: " & x & " y2: " & y
        ' Seite wechseln   
        work_page = work_page XOR 1
    LOOP UNTIL INKEY = CHR(98)
END SUB

SUB Kreis
    DO
        SLEEP 1
        SCREENSET work_page, work_page XOR 1     
        IF MULTIKEY(&h4D) AND x < 639 THEN x += 1   
        IF MULTIKEY(&h4B) AND x >   0 THEN x -= 1   
        IF MULTIKEY(&h50) AND y < 479 THEN y += 1   
        IF MULTIKEY(&h48) AND y >   0 THEN y -= 1   
        CLS   
        CIRCLE(x, y), 10, , , , ,F
        Radius = xstart - x
        Radius = Radius * (-1)
        CIRCLE (xstart, ystart), Radius, 0                ' Zeichnet einen Kreis
        PRINT "Koordinaten : " & " x1: " & xstart & " y1: " & ystart & " Radius: " & Radius       
        ' Seite wechseln   
        work_page = work_page XOR 1
    LOOP UNTIL INKEY = CHR(99)
END SUB

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
XOR



Anmeldungsdatum: 23.07.2010
Beiträge: 161

BeitragVerfasst am: 26.03.2011, 18:49    Titel: Antworten mit Zitat

Zum problem mit dem kreis,
hast du noch nie was vom Pytagoras gehoert?
Nach bestaetigen der Form verschwindet sie.
Mit ESC konnte ich nicht beenden.
Eventuel Maus benutzen.

Ich hatte gerade langeweile und habe dein programm mal nen bissle veraendert

Code:
#Define FALSE &H00
#Define TRUE Not FALSE

Const Weite = 800
Const Hohe = 600
Const FullScreen = FALSE
Const BACK_R = 255
Const BACK_G = 255
Const BACK_B = 255
Const FRONT_R = 255
Const FRONT_G = 0
Const FRONT_B = 0

#Define DRAW_QUADS &H01
#Define DRAW_LINES &H02
#Define DRAW_CIRCLE &H03

Dim As Any Ptr Vorschau, ScreenP
Dim Flag As UInteger
Dim As Byte AP,BP,CP
Dim As Integer X,Y,B,XA,YA,BA
Dim As Integer SX,SY

ScreenRes Weite, Hohe, 32, ,IIf(FullScreen,1,0)

Line (0,0)-(Weite,Hohe),RGBA(BACK_R,BACK_G,BACK_B,255),bf

Vorschau = ImageCreate(Weite,Hohe,RGBA(255,0,255,2550),32)  ''<- Objekt, das gerade gezeichnet wird
ScreenP = ImageCreate(Weite,Hohe,RGBA(BACK_R,BACK_G,BACK_B,255),32)   ''<- Screen

Do
   Sleep 1, 1                                     ''<- um den Prozessor nicht zu stark zu belasten
   
   If MultiKey(30) And Not(AP) Then            ''<- wenn taste "A" getrueckt wird
      If Flag = DRAW_QUADS Then                ''<- wenn gerade Quads aktivirt sind
         Flag = FALSE                          ''<- dann werden sie ausgeschaltet
      Else
         Flag = DRAW_QUADS                     ''<- ansonnsten an
      EndIf
      AP = TRUE
   EndIf
   If Not(MultiKey(30)) And AP Then AP = FALSE ''<- Wenn die Taste wieder lossgelassen wird
   
   If MultiKey(48) And Not(BP) Then            ''<- das gleiche fuer "B"
      If Flag = DRAW_LINES Then
         Flag = FALSE
      Else
         Flag = DRAW_LINES
      EndIf
      BP = TRUE
   EndIf
   If Not(MultiKey(48)) And BP Then BP = FALSE ''<- und "C"
   
   If MultiKey(46) And Not(CP) Then
      If Flag = DRAW_CIRCLE Then
         Flag = FALSE
      Else
         Flag = DRAW_CIRCLE
      EndIf
      CP = TRUE
   EndIf
   If Not(MultiKey(46)) And CP Then CP = FALSE
   
   XA = X
   YA = Y
   BA = B
   GetMouse X,Y,,B                ''<- MausPosition
   
   If B = 1 And BA = 0 Then       ''<- Wenn Maus von nichtgedrueckt auf gedrueckt springt
      SX = X                      ''<- startposition festlegen
      SY = Y
   EndIf
   
   If B = 1 Then                  ''<- Wenn maus gedruekt wurde
      If XA <> X Or YA <>Y Then   ''<- und sich die Maus Position veraendert hat
         Line Vorschau,(0,0)-(Weite,Hohe),RGBA(255,0,255,0),bf ''<- Obj. bild reinigen
         Select Case Flag         ''<- und zeichnen
            Case DRAW_QUADS
               Line Vorschau,(SX,SY)-(X,Y),RGB(FRONT_R,FRONT_G,FRONT_B),b
            Case DRAW_LINES
               Line Vorschau,(SX,SY)-(X,Y),RGB(FRONT_R,FRONT_G,FRONT_B)
            Case DRAW_CIRCLE
               Circle Vorschau,(SX,SY),((SX-X)^2+(SY-Y)^2)^0.5,RGB(FRONT_R,FRONT_G,FRONT_B) ''<- um den richtigen radius zu haben, wird der Pytagoras benutzt
         End Select
         Put(0,0),ScreenP,PSet       ''<- screen bild
         Put(0,0),Vorschau,TRANS       ''<- objekt bild
      EndIf
   EndIf
   
   If B = 0 And BA = 1 Then        ''<- wenn maustaste losgelassen wird
      Put ScreenP,(0,0),Vorschau,Trans  ''<- objekt endgueltig zeichnen
      Line Vorschau,(0,0)-(Weite,Hohe),RGBA(255,0,255,0),bf
   EndIf
   
Loop Until MultiKey(1) Or InKey = Chr(255)+"k"  ''<- beenden mit ESC oder X-Button

ImageDestroy(Vorschau)
ImageDestroy(ScreenP)
End


Zuletzt bearbeitet von XOR am 26.03.2011, 19:47, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 26.03.2011, 19:39    Titel: Antworten mit Zitat

@XOR

du hast im code
Code:
Sleep 1


in nutzung.

sinvoller wäre jedoch
Code:
Sleep 1, 1


sonst "breakst" du beim ersten tastendruck nämlich das sleep 1 für immer weg.

http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgSleep

PS: die angabe in der deutschen Befehlsreferenz, das das flag unter 100ms ignoriert wird ist falsch. siehe:
http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/rtlib/libfb_time_sleepex.c?revision=5465&view=markup
http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/libfb_gfx_sleep.c?revision=5465&view=markup


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]


Zuletzt bearbeitet von ThePuppetMaster am 27.03.2011, 13:50, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
XOR



Anmeldungsdatum: 23.07.2010
Beiträge: 161

BeitragVerfasst am: 26.03.2011, 19:50    Titel: Antworten mit Zitat

Habe es Oben eingebaut.
Zitat:
sonst "breakst" du beim ersten tastendruck nämlich das sleep 1 für immer weg.

Ich wusste nicht das es bei einem tastendruck auch jedes weitere sleep "gebreakt" wird
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 26.03.2011, 20:04    Titel: Antworten mit Zitat

ThePuppetMaster hat Folgendes geschrieben:

PS: die angabe in der deutschen Befehlsreferenz, das das flag unter 100ms ignoriert wird ist falsch. siehe: http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/rtlib/libfb_time_sleepex.c?revision=5465&view=markup

Die Quelldatei sagt so ziemlich gar nix über die Funktionsweise von Sleep aus. Was ist der Unterschied zwischen fb_Delay und fb_Sleep? Wo wird der Parameter "kind" wie verwendet?

Zitat:
Ich wusste nicht das es bei einem tastendruck auch jedes weitere sleep "gebreakt" wird
Wird's auch nicht.
_________________
» 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
qbay



Anmeldungsdatum: 08.06.2008
Beiträge: 84

BeitragVerfasst am: 26.03.2011, 21:16    Titel: Antworten mit Zitat

hey danke leute
also erstmal XOR dein Beispiel funktioniert wirklich gut
ich weis das ist nervig aber kannst du dein beispiel noch etwas erläutern

vorallem :
Zitat:

#Define FALSE &H00
#Define TRUE Not FALSE


is mir noch ein Rätsel
Makros im allgemeinen versteh ich nich mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
XOR



Anmeldungsdatum: 23.07.2010
Beiträge: 161

BeitragVerfasst am: 26.03.2011, 21:39    Titel: Antworten mit Zitat

das
Code:
#Define FALSE &H00

bedeutet, das alle "FALSE" - worte im Ptogramm durch "&H00" also "0" ersetzt werden.
bei
Code:
#Define TRUE Not FALSE

werden alle "TRUE"s durch "Not FALSE" ersetzt, hier dann noch das "FALSE" durch "0".
Im Code der dann Compilirt wird steht dann also fuer FALSE -> &H00 und fuer TRUE -> Not &H00
beschreibund von define hier
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 26.03.2011, 23:26    Titel: Antworten mit Zitat

Um das mit dem Sleep mal zu klären:

Der Sleep-Befehl ist recht stark verteilt auf die verschiedenen Dateien des Codes.
Es gibt zunächst einmal drei verschiedene Varianten. Das normale Sleep, das Sleep in -lang qb und das Sleep mit zweitem Parameter.
Das QB-Sleep (fb_SleepQB) gibt eigentlich nur weiter an das normale Sleep (fb_Sleep), nur das aus Millisekunden normale Sekunden werden.
Das Sleep mit zweitem Parameter (fb_SleepEx) prüft diesen Parameter und ruft bei 0 das normale Sleep auf und bei 1 fb_Delay.
Beim normalen Sleep (fb_Sleep) wird geprüft, ob der Grafikbildschirm geöffnet ist.
Falls ja, geht das ganze an die gfxlib weiter, die ihr eigenes Sleep hat (fb_GfxSleep).
Hier wird dann auch das gemacht, was in der Referenz steht, nämlich alles unter 100ms ignoriert.
Danach wird dann fb_Delay aufgerufen.
Alternativ wird fb_ConsoleSleep aufgerufen und auch hier wird die Prüfung auf die 100ms gemacht.
Es folgt wieder fb_Delay.
Die Trennung ist wegen der Tastenerkennung nötig, da Console und GFX verschiedene Eingabepuffer haben.
fb_Delay ruft schließlich das Sleep des Systems auf, welches sich aus den verschiedenen Includes ergibt.

Folglich stimmen alle Angaben der Referenz.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 27.03.2011, 14:03    Titel: Antworten mit Zitat

gfx: http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/libfb_gfx_sleep.c?revision=5465&view=markup

delay für unix: http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/rtlib/unix/libfb_sys_delay.c?revision=5465&view=markup

win: http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/rtlib/win32/libfb_sys_sleep.c?revision=5465&view=markup

in beiden sources findet sich kein einzigster punkt, der darauf hinweist, das eine veränderung der sleepzeiten eintritt.

also, wo soll das im source zu finden sein?

Ich sehe hier nur, das bei eingaben grösser 100ms 50ms schritte verwendet werden.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 27.03.2011, 14:22    Titel: Antworten mit Zitat

ThePuppetMaster hat Folgendes geschrieben:
in beiden sources findet sich kein einzigster punkt, der darauf hinweist, das eine veränderung der sleepzeiten eintritt.
Hö? Hat auch niemand behauptet. Aber wenn du dir das gfxlib-Sleep anschaust, siehst du, dass bei Verzögerungen unter 100msec das Pollen der Tastatur wegfällt. Bei Verzögerungen ab 100msec dagegen wird Sleep abgebrochen, sobald sich der Zustand des Tastaturpuffers geändert hat, also sobald eine Taste gedrückt wurde. Je nachdem, ob "kind" 0 oder 1 ist, wird fb_GfxSleep (bzw auf der Konsole das Äquivalent) oder direkt fbDelay aufgerufen.
_________________
» 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
qbay



Anmeldungsdatum: 08.06.2008
Beiträge: 84

BeitragVerfasst am: 27.03.2011, 15:19    Titel: Antworten mit Zitat

XOR hat Folgendes geschrieben:
das
Code:
#Define FALSE &H00

bedeutet, das alle "FALSE" - worte im Ptogramm durch "&H00" also "0" ersetzt werden.
bei
Code:
#Define TRUE Not FALSE

werden alle "TRUE"s durch "Not FALSE" ersetzt, hier dann noch das "FALSE" durch "0".
Im Code der dann Compilirt wird steht dann also fuer FALSE -> &H00 und fuer TRUE -> Not &H00
beschreibund von define hier


Damit ich das richtig verstehe
jede Ausgabe des Programmes, wie z.B. wenn der Mauszeiger über dem SCREEN ist, wird als FALSE angegeben?
Code:

#Define FALSE &H00


und das wird ersetzt durch &H00, Richtig?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 27.03.2011, 15:31    Titel: Antworten mit Zitat

FALSE wird hier lediglich als Äquivalent zu 0 (=&h00) festgelegt. Z. B. ergibt
Code:
PRINT 1 = 2

die Ausgabe 0, eben weil der Ausdruck falsch ist. Mit dem #DEFINE kannst du jetzt den Ausdruck FALSE ebenfalls verwenden:
Code:
DIM ausdruck AS INTEGER
ausdruck = (1 = 2)   ' eindeutig ein falscher Ausdruck
PRINT ausdruck       ' Ergebnis: 0
IF ausdruck = 0 THEN PRINT "Fehler"      ' geht immer
#DEFINE FALSE &h00
IF ausdruck = FALSE THEN PRINT "Fehler"  ' geht erst nach dem #DEFINE

Die FALSE-Methode ist halt in der Regel leichter lesbar (obwohl ich mit =0 auch noch nie Probleme hatte)
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
qbay



Anmeldungsdatum: 08.06.2008
Beiträge: 84

BeitragVerfasst am: 27.03.2011, 15:59    Titel: Antworten mit Zitat

@nemored

ehrlichgesagt verstehe ich es nich
wenn in deinem Beispiel die Variabel ausdruck immer "0" ergibt
wozu brauch ich überhaupt #DEFINE FALSE &h00 ??

tut mir leid aber was das angeht bin ich echt Begriffsstutzig peinlich
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 27.03.2011, 16:09    Titel: Antworten mit Zitat

es ist nur eine vereinfachung zum lesen und scheiben des quellcodes. Etwas, das mehr für den menschlichen part sinvoller ist, als für die maschine.

Wenn man den Quellcode liest, dann sieht man das wort "false" (Englisch für "Falsch" oder "nicht erfüllt") was leichter zu verstehen ist als eine 0.

In manchen zusammenhängen kann 0 auch für andere dinge stehen. Daher kann man hier eine differenzierung treffen.

z.B. gibt ein API aufruf eine 0 zurück. nutzt man hier das wort false, kann man es verständlicher lesen als eine 0.

0 könnte in anderen fällen z.B. auch bedeuten, das alles ok war. oder hat eine ganz andere bedeutung. daher legt man eine definition eines wortes an, und verknüpft diese mit einem wert.

so kann man z.B. werte wie -1 mit false belegen, oder 0 oder 1 ... andere funktionen möchten es vieleicht anders, wie auch immer, man kann hier einfach eine vereinfachung beim lesen des quellcodes hervorrufen.

ist natürlich nicht zwingend. man kann das machen, wie man mag.

persönlich nutze ich false und true definitionen auch nicht, und schreibe beispiele teilweise auch auf normale numerische wertigkeiten um, da false man 0 oder auch mal -1 sein kann, und man anhand der definition den realen rückgabewert erst dann erkennt, wen man auch die definition des wortes kennt.


false = 0 kann man auch mit &H00 oder &H0, &H000000, &H00000000, 0, usw. vergleichen. manchmal ist es einfach einfacher andere schreibweisen zu nutzen.

ein farbwert wie 2846527 im dezimalen ist im HEX einfach verständlicher .. z.B. &HFFAA77 .. man erkennt die RGB komponenten R:FF G:AA B:77 und deren wertigkeit auf anhieb, was bei dezimaler schreibweise nicht so einfach gehen würde.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
XOR



Anmeldungsdatum: 23.07.2010
Beiträge: 161

BeitragVerfasst am: 27.03.2011, 23:07    Titel: Antworten mit Zitat

Ich mache das immer gerne so mit den Marcos.
Ich habe an code oben noch ein bischen rumgebastelt.
Tasten:
-> F1 -> Quadrate zeichnen
-> F2 -> Linien zeichnen
-> F3 -> Kreise zeichnen
-> F4 -> Frei Hand zeichnen
-> F5 -> Folle Quadrate zeichnen
-> F6 -> Folle Kreise zeichnen
-> F7 -> einen bereich mit einer Farbe fuellen
-> F8 -> Farbe auswahl
-> n -> neu
-> STRL + Z -> rueckgaengig
-> ESC -> beenden
Hier der Link
Ihr durft euch den code veraendern, copieren und mit ihm machen was ihr wollt.
Ich werde nicht wohl nicht mehr an diesem Programm arbeiten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
qbay



Anmeldungsdatum: 08.06.2008
Beiträge: 84

BeitragVerfasst am: 28.03.2011, 16:29    Titel: Antworten mit Zitat

ok danke für eure hilfe leute^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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