AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Hintergrundfarbe eines Objekts stetig ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Hintergrundfarbe eines Objekts stetig ändern

Ein Thema von dadark · begonnen am 11. Jan 2007 · letzter Beitrag vom 24. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
dadark

Registriert seit: 11. Jan 2007
2 Beiträge
 
#1

Hintergrundfarbe eines Objekts stetig ändern

  Alt 11. Jan 2007, 15:53
Hallo!
Wir arbeiten in der Schule im Moment mit Delphi, und da es stinkelangweilig ist, muss ichs mir irgendwie interessanter machen :p
Die Idee der letzten Stunde war, die Hintergrundfarbe der ListBox in der wahnsinnig spannende Berechnungen standen, ständig wechseln zu lassen.

Mein Ansatz war (nachdem ich im Internet schon ein wenig recherchiert hatte) in etwa dieser hier:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  while true do begin
    ListBox1.Color := clRed;
    ListBox1.Refresh;
    sleep(500);
    ListBox1.Color := clBlue;
    ListBox1.Refresh;
    sleep(500);
    Application.ProcessMessages;
  end;
end;
Wenigstens mit Lazarus unter Linux tut das aber nicht (ich konnte es in der Schule in der Version noch nicht ausprobieren, wollte aber zu Hause mal schauen obs klappt), sondern hängt nur.
Seht ihr einen Fehler?

Vielen Dank schonmal
Pascal

[edit=SirThornberry]Code-Tags durch Delphi-Tags ersetzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 11. Jan 2007, 15:58
Zitat von dadark:
... tut das aber nicht ...
Gehts etwas genauer?
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
dadark

Registriert seit: 11. Jan 2007
2 Beiträge
 
#3

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 11. Jan 2007, 16:00
Hast du den Satz zuende gelesen? :p
Wie schon gesagt, er hängt halt, es passiert garnix und ich muss den Prozess killen, weil ich ihn auch nicht mehr normal beenden kann.
Er reagiert einfach nicht mehr.
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 11. Jan 2007, 16:28
Mit Sleep hällst du doch gie ganze Anwendung an?!
Wie wäre es mit DelayDelay?
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
dr. love

Registriert seit: 10. Jan 2007
92 Beiträge
 
#5

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 12. Jan 2007, 10:54
Ich würd nen Timer nehmen! Der wechselt dann ganz automatisch nach einer von dir bestimmten Zeit (Interval) immer wieder die Farbe des Editfeldes. Also z.B. rot, grün, blau, gelb,...
eleganter wäre natürlich ein dynamischer farbübergang, also etwas, wo man die einzelfarben gar nicht sieht, sonder nur den übergang vom roten ins blaue oder so, quasi ne farbüberblendung... dann müsstest du schleifen bauen in denen stetig die rgb werte verändert werden... also wenn du da bedarf hast sag nochma bescheid... will jetz auch nich ewig posten un dann interessierts nich
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 23. Mai 2007, 15:40
hey, daran hätte ich großes Interesse
  Mit Zitat antworten Zitat
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 23. Mai 2007, 15:47
Moin,

(Mal abgesehen davon, dass ich von Farb-Wechselnden Eingabeelementen nichts halte).

Das mit den "weichen" Farbänderungen kannst du erreichen, indem du die Differenzen der Farben errechnest und dabei einen Alpha-Wert benutzt, diesen dann in einem regelmäßigen Intervall inkrementierst. (0..10..20 usw.)
Dann kommst bei jedem Intervall der Ziel-Farbe näher und schließlich nimmt das Feld die Zielfarbe selbst an, das ganze kann leicht über Timer (Wenn du willst, ist hier wohl der einfachste und problemloseste Weg) realisieren.

Wie du das machst, entnimmst du am besten der Forumssuche mit dem Suchwort "Alpha*", ich bin mir ziemlich sicher, dass es dazu schon einmal was zu lesen gab.

Gruß,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 23. Mai 2007, 16:42
Nach jedem .Refresh müssen Paint-Message von Windows mit ProcessMessages verarbeitet werden.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
  xcolor : TColor;
begin
  xcolor := clRed;
  for i:=0 to 50 do
  begin
    ListBox1.Color := xcolor;
    ListBox1.Refresh;
    Application.ProcessMessages;
    // Farbe ändern
    case xcolor of
       clRed: xcolor := clGreen;
       clGreen: xcolor := clblue;
       clBlue: xcolor := clRed;
    end;
    Sleep(200);
    if Application.Terminated then Exit;
  end;
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 23. Mai 2007, 16:45
diese Variante ist in dem Fall nicht praktikabel weil die Berechnung dann nicht weiter ausgeführt wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Hintergrundfarbe eines Objekts stetig ändern

  Alt 24. Mai 2007, 07:49
Mir gehts auch nich so sehr um eine wechselnde Hintergrundfarbe für Buttons, sondern vielmehr um eine Idee, wie ich Farben irgendwie sinnvoll inkrementieren kann. Ich zeichne eine Treemap und ich würde gerne haben, das jedes Rechteck eine andere Farbe hat...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz