Fenstertitelleiste mit Farbverlauf

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

pile

Betreff: Fenstertitelleiste mit Farbverlauf

BeitragMi, Sep 13, 2006 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich möchte Windowsfenster nachstellen. Soweit kein Problem, nur komm ich mit diesem Fabverlaufeffekt nicht ganz so klar. Also wer Windowsversionen unter WinXP hat oder bei XP das klassische Design ausgewählt hat muss ja nur mal oben im Fenster auf die Titelleiste kucken. Die beihaltet zwei Farben und hat einen Farbverlauf von Dunkelblau zu hellblau. Naja is das standartmäßige, wenn ihr was anderes eingestellt habt, müßt ihr euchd as vorstellen.
Code: [AUSKLAPPEN]

Graphics 1024,768,16,2;Auflösung und Fensterangaben
SetBuffer BackBuffer()
Color 10,36,106;Erste Farbe
Color 166,202,240;Zweite Farbe
Fenstergroesse=400
Repeat
Cls
For x=1 To Fenstergroesse
   Line x,10,x,50
Next
Flip
Forever

Das hab ich bisher, es zeigt nur eine Farbe an. Weiter komm ich noch nicht. Es ist dabei zu bedenken das die Größe des Fensters frei skalierbar ist und sich der Farbverlauf daran anpassen muss.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%
 

Ava

Gast

BeitragMi, Sep 13, 2006 23:33
Antworten mit Zitat
Wie hast Du Dir gedacht, soll das Funktionieren? Very Happy

BlitzBasic denkt nicht mit Dir mit. Es weis nicht, dass Du vorhast, einen Farbverlauf zu erzeugen, wenn Du zweimal hintereinander einfach nur die Farbe änderst... Rolling Eyes

Du musst den Farbcode schon selber berechnen bzw. Blitzbasic rechnen lassen.

Die Formel dafür ist eigentlich ganz einfach:
Farbe1 * ((Breite - Position) / Breite) + Farbe2 * (Position / Breite)

Breite = Fensterbreite in Pixeln
Position = enstspricht bei Dir Deinem "x"

Denk dran, dass Du am besten mit Floats rechnen solltest....



[\edit] fehlende Klammer nachgebessert Rolling Eyes
  • Zuletzt bearbeitet von Ava am Do, Sep 14, 2006 12:30, insgesamt einmal bearbeitet

pile

BeitragDo, Sep 14, 2006 8:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt bin ich ganz verwirrt. Deine Formel versteh ich überhaupt nicht. Nichtmal wo die erste Klammer aufhören soll. Wink
Das BB aus meinem oberen Code nicht von selbst berechnen kann wie der Farbverlauf sein soll, weiß ich, sonst wäre das Problem ja schon gelöst. Ich schrieb ja auch das es nicht funktioniert und war mir im Klaren das er bisher nur mit der zweiten Farbe arbeitet.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

pile

BeitragDo, Sep 14, 2006 8:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, habs jetzt selber hinbekommen Smile

Code: [AUSKLAPPEN]

Graphics 1024,768,16,2;Auflösung und Fensterangaben
SetBuffer BackBuffer()
Fenstergroesse#=400
;Rotwert
   f1a=10;Rotwert-Anfang
   f1e=166;Rotwert-Ende
   f1s=f1e-f1a;Rotwert-Summe
   f1d#=f1s/Fenstergroesse;Farbverlauf vom Rotwert
;Grünwert
   f2a=36;Grünwert-Anfang
   f2e=202;Grünwert-Ende
   f2s=f2e-f2a;Grünwert-Summe
   f2d#=f2s/Fenstergroesse;Farbverlauf vom Grünwert
;Blauwert
   f3a=106;Blauwert-Anfang
   f3e=240;Blauwert-Ende
   f3s=f3e-f3a;Blauwert-Summe
   f3d#=f3s/Fenstergroesse;Farbverlauf vom Blauwert

Repeat
Cls
For x=0 To Fenstergroesse
   Color f1a+(x*f1d),f2a+(x*f2d),f3a+(x*f3d)
   Line x,10,x,50
Next
Flip
Until KeyDown (1)=1


Wenn jemand das einfacher hinbekommt bitte mal Posten, hoffe doch das es mit weniger Code geht, aber es sollte so leicht verständlich sein wie hier.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

Blitzcoder

Newsposter

BeitragDo, Sep 14, 2006 8:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal ein sehr einfacher Code:Code: [AUSKLAPPEN]
Graphics 1024,768,16,2;Auflösung und Fensterangaben
SetBuffer BackBuffer()
Fenstergroesse#=400


Repeat
Cls
rtmp#=0
gtmp#=0
For x=1 To Fenstergroesse
   rtmp#=rtmp+(255/fenstergroesse)
   gtmp#=gtmp+(255/fenstergroesse)

  Color rtmp,gtmp,255
   Line x,10,x,50
Next
Flip
Until KeyHit(1)
End


Allerdings ist der schlecht erweiterbar, und kommt gegen deinen nicht an. Ist eben nur in 30 secs zusammengebau, aber du wolltest ja was einfaches;)

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

pile

BeitragDo, Sep 14, 2006 9:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Mühe. Da ich Windowsfenster nachstellen will, mit allen möglichen Funktionen die anpassbar sind, wie Größe-, Farbe- und Formveränderung ist es glaube nicht so gut wenn man etwas nicht sonderlich erweitern kann. Und wenn ich mir meins genauer ansehe ist es ja eigentlich auch recht kurz, bis auf die "Variablensammlung" am Anfang.
Achja, mir ist bewußt das ich diese Variablen noch mit in die Schleife nehmen muss sobald sich die Fenstergröße ändert Wink .

Blitzcoder

Newsposter

BeitragDo, Sep 14, 2006 10:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Für solche "Variablensammlungen" nimmt man gewöhnlich Dim-Felder oder Types. Vor allem Types sind ein mächtiges Werkzeug. Schau sie dir mal an. Wenn man das einmal verstanden hat, dann kann man damit wirklich sehr, sehr viel machen.

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

pile

BeitragDo, Sep 14, 2006 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Da die Variablen fest vorhanden sind und nicht wieder gelöscht werden, ist es wohl einfacher ein DimArray zu nehmen.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%
 

Ava

Gast

BeitragDo, Sep 14, 2006 12:38
Antworten mit Zitat
Code: [AUSKLAPPEN]


Graphics 640, 480, 16
SetBuffer BackBuffer()


Repeat


   Cls

   drawColorBar(100, 100, 200, 10, 255, 0, 0, 0, 0, 255)
   
   Flip
   

Until KeyHit(1) : End




Function drawColorBar(x, y, width, height, r1, g1, b1, r2, g2, b2)


   For i = 0 To width - 1

      r = r1 * ((width - i) / Float(width)) + r2 * (i / Float(width))
      g = g1 * ((width - i) / Float(width)) + g2 * (i / Float(width))
      b = b1 * ((width - i) / Float(width)) + b2 * (i / Float(width))

      Color r, g, b

      Rect x + i, y, 1, height

   Next


End Function

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group