Fenstertitelleiste mit Farbverlauf
Übersicht

![]() |
pileBetreff: Fenstertitelleiste mit Farbverlauf |
![]() Antworten mit Zitat ![]() |
---|---|---|
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% |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Wie hast Du Dir gedacht, soll das Funktionieren? ![]() 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... ![]() 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 ![]() |
||
- Zuletzt bearbeitet von Ava am Do, Sep 14, 2006 12:30, insgesamt einmal bearbeitet
![]() |
pile |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jetzt bin ich ganz verwirrt. Deine Formel versteh ich überhaupt nicht. Nichtmal wo die erste Klammer aufhören soll. ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, habs jetzt selber hinbekommen ![]() 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% |
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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% |
AvaGast |
![]() 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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group