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:

Frage zu Color

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 12.04.2008, 22:32    Titel: Frage zu Color Antworten mit Zitat

Hallo,

Ich habe mal eine Frage:
Wie kann man abfragen welche Farbe gerade ausgewählt ist, also welche Farbe man bei der letzen COLOR-Anweisung genommen hat?

Also ungefähr so:
Code:
 If Color = 1 then ....


Danke schon mal im vorraus...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 12.04.2008, 22:40    Titel: Antworten mit Zitat

Hallo,

das könntest du wie folgt machen:
Code:
DECLARE SUB KOLOR (Farbe%)

Dim Shared LetzteFarbe As Integer

CLS
PRINT "Hallo"
KOLOR 12
PRINT "Hallo"
PRINT LetzteFarbe
KOLOR 10
PRINT LetzteFarbe
SLEEP
END


SUB KOLOR (Farbe%)
COLOR Farbe%
LetzteFarbe=Farbe%
END SUB

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 12.04.2008, 22:46    Titel: Antworten mit Zitat

Ok danke cool

Kann man das auch aus dem Speicher (also mit peek) oder so lesen, ohne SUB??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


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

BeitragVerfasst am: 12.04.2008, 22:58    Titel: Antworten mit Zitat

geht auch ohne... der code gibt immer die farbe an der aktuellen cursorposition zurück.
Code:
PRINT SCREEN(POS(0), CSRLIN, 1)

_________________
» 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
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 13.04.2008, 11:27    Titel: Antworten mit Zitat

Ich wollte eigentlich ein SUB machen womit man Texte mit INTERRUPT ausgeben kann...
Und damit ich nicht immer die Farbe als Parameter schreiben muss, wollte ich die Farbe die zuletzt gewählt wurde benutzen.

Code:
 CALL PRINTTEXT (Text$, Farbe)

Das mit CSRLIN und POS(0) weiß ich auch.

Code:

Declare Sub PRINTTEXT (Text$, Farbe%)
'$Include: 'Qb.Bi'
Dim Shared Regs as RegTypeX

SUB PRINTTEXT (Text$, Farbe%)
 X% = Pos(0)
 Y% = CSRLIN
 For I% = 1 To Len(Text$)
  Regs.Ax = &H900 + Asc(Mid$(Text$, I%, 1)) 'Zeichen
  Regs.Bx = Farbe%                          'Farbe
  Regs.Cx = 1                               'Anzahl
  Locate Y%, X%
  Call InterruptX (&H10, Regs, Regs)
  X% = X% + 1
 Next
End Sub


Und Ich wollte halt den Parameter "Farbe" nicht mit Übergeben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 13.04.2008, 11:31    Titel: Antworten mit Zitat

Hallo,

dann deklariere doch eine Variable wie Farbe% shared, sodass du nur bei einer Änderung der Farbe irgendwas angeben musst:
Code:
Declare Sub MeinPrint (Text$)
Dim Shared Farbe%

Farbe%=10
MeinPrint "Hallo"
MeinPrint "Zeile 2"
Farbe%=12
MeinPrint "Test. Test."
SLEEP

SUB MeinPrint (Text$)
COLOR Farbe%  'Interruptaufruf statt der
PRINT Text$   'Standard-Befehle einsetzen
END SUB

_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 13.04.2008, 16:43    Titel: Antworten mit Zitat

Zum ursprünglichen Post: Du sprichst hier eine nicht unwichtige Lücke im Befehlssatz von QB an: Im Gegensatz zum beispielsweise bereits 1985 herausgekommenen Commodore Amiga, wo es in der dortigen graphics.library analog zu SetAPen() und SetBPen() auch ein GetAPen() und GetBPen() gegeben hat, haben sowohl IBM bei ihrem Grafikkarten-BIOS als auch Microsoft bei ihrem Befehlssatz eine entsprechende COLOR() (und auch PALETTE())-Funktion komplett vergessen, so dass eine COLOR-Ersatz-SUB-Prozedur wie von Sebastian gezeigt, welche den eingestellten Wert in einer globalen Variable speichert, der einzige "Temporary Workaround" darstellt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
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 QBasic. 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