AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Panel - Farbe wechseln

Ein Thema von yasR · begonnen am 28. Sep 2009 · letzter Beitrag vom 28. Sep 2009
Antwort Antwort
Seite 1 von 3  1 23      
yasR

Registriert seit: 20. Sep 2009
39 Beiträge
 
#1

Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:18
Hey,

mein Panel soll nach einem OnClick Ereignis für kurze Zeit (ca. 10 Millisekunden) eine andere Farbe bekommen.
Gibt es dafür eventuell schon fertige Routinen oder könnt ihr mir sagen wie man das löst?


Delphi-Quellcode:
procedure TForm5.Panel10Click(Sender: TObject);
begin



end;
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:27
Weißt du wie du generell die Farbe änderst?

Du musst das Problem in kleinere unterteilen. Und wenn du bei nem Unterproblem nicht weißt, wie dus machen kannst, dann kannst du hier in der DP suchen und wenn du nichts gefunden hast darfst du fragen

Also ich helfe dir mal:

Farbe wechseln
Warten
Farbe zurücksetzen

Das ist dein "Schlachtplan" wenn du die Farbe eines Panels ändern kannst dann hast du schon 2/3 geschafft
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
yasR

Registriert seit: 20. Sep 2009
39 Beiträge
 
#3

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:30
procedure TForm5.Panel10Click(Sender: TObject);
begin
Panel10.Color := RGB(195,195,195);
sleep(10);
Panel10.Color := clred;
end;

ist das denn elegant? ;-P
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:31
Klappt doch^^

Elegant.. joo. Wüsste nicht wie mans wirklich anders machen sollte. Du kannstes natürlich noch in ne procedure verbauen. Aber ansonsten hätte ichs jetzt auch so gemacht.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
yasR

Registriert seit: 20. Sep 2009
39 Beiträge
 
#5

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:34
merke aber gerade das es nicht klappt -.-
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:36
Doch es klappt. Kann nur sein, dass 10ms zu kurz sind.

Was klappt denn nicht?

EDIT: Ah du brauchst wahrscheinlich DelayDelay bzw ein Application.ProcessMessages nach dem ersten Farbwechsel.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:38
Delphi-Referenz durchsuchendelay Es gibt in der Code Lib einen Beitrag dazu. Das ist eine Alternative zu Sleep mit dem Unterschied das das Programm nicht einfriert während der Zeit. Weiß nicht ob das bei so kurzen Zeit einen Unterschied macht.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
yasR

Registriert seit: 20. Sep 2009
39 Beiträge
 
#8

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:40
procedure TForm5.Panel11Click(Sender: TObject);
begin
Panel11.Color := clGreen; // RGB(195,195,195);
sleep(5000); // mal etwas mehr
Panel11.Color := clWhite;
end;


nach dieser Procedure klappt es aber nicht o.O. Es passiert nichts ;-(


EDIT: Okay, ich werde mal Delay testen ^^
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:42
Ich hab ja gesagt du sollst es so machen:

Delphi-Quellcode:
procedure TForm5.Panel11Click(Sender: TObject);
begin
  Panel11.Color := RGB(195,195,195);
  Application.ProcessMessages;
  sleep(10); // mal etwas mehr
  Panel11.Color := clWhite;
end;
Das Programm kommt sonst nicht dazu das Fenster neu zu malen bevor sleep ausgeführt wird und man sieht nichts von der Farbänderung.

Edit: Delay ist quasi ein Sleep mit eingebautem Application.ProcessMessages
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#10

Re: Panel - Farbe wechseln

  Alt 28. Sep 2009, 13:44
Da du ja nun schon ein Bitmap als Hintergrund hast, zeichne dieses mit der anderen Hintergrundfarbe neu, starte einen Timer und zeichne es dann wieder mit der alten Farbe, aber bei 10ms könnte man den Timer weglassen und einfach nur ein Sleep verwenden.

Die Hintergrundfarbe kannst du eh ändern, wie du willst, bei deinen abgerundeten Panels würde man die eh nicht sehn (versteckt sich ja hinter dem Bitmap) und selbst bei einem normalen Panel übernimmt oftmals das (XP)-Design die Darstelltung, welches nicht grad die Angabe des zugehörigen Color-Attributes beachtet.

[edit]
das Zuweisen von Color lößt nicht sofort ein Neuzecihnen aus, das wirst du Manuell anstoßen müssen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:34 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