AGB  ·  Datenschutz  ·  Impressum  







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

Farbe zur Laufzeit verändern?

Ein Thema von Simo · begonnen am 3. Jun 2014 · letzter Beitrag vom 10. Jun 2014
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Simo

Registriert seit: 28. Apr 2014
51 Beiträge
 
#1

Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 08:55
Hey zusammen!!

Ich hätte eine Frage : Wie kann man die Farbe eines Komponentes während der Laufzeit verändern/verschieben.?
Z.b ein Panel.. [ gewölbt (rechts 80% blau, links 20% gelb). Und wenn ich drauf klicke muss sich die blaue Farbe nach rechts verschieben, so dass das ganze Panel fast gelb wird (~ 5% Blau bleibt am Rand rechts..) ??

Wie könne man sowas realisieren??
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 09:07
Bei Komponenten, die über einen Canvas verfügen (also z.B. TGraphicControl oder TCustomControl), kannst Du dazu das OnPaint-Ereignis nutzen. Speziell das TPanel hat zwar auch einen Canvas, aber der ist protected, so dass Du dazu eine Cracker-Klasse brauchen wirst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Simo

Registriert seit: 28. Apr 2014
51 Beiträge
 
#3

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 09:39
Ich weiß leider nicht wie ich das machen soll/kann..-( ? Außerdem wie kriege ich das Panel gewölbt(Rand..) ??
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 09:42
Ich weiß zwar nicht so genau, was Du mit "gewölbt" meinst, aber prinzipiell könntest Du so etwas versuchen:
Delphi-Quellcode:
type
  TPanel = class(ExtCtrls.TPanel)
  private
    (* privates Feld hinzufügen *)
    FLeftValue: integer;
    (* Setter-Methode *)
    procedure SetLeftValue(const Value: integer);
  protected
    (* Paint-Methode überschreiben *)
    procedure Paint; override;
  public
    (* Property hinzufügen für den Zugriff von außen *)
    property LeftValue: integer read FLeftValue write SetLeftValue;
  end;

  TfrmTest = class(TForm)
    TestPanel: TPanel;
    btnUpdate: TButton;
    procedure btnUpdateClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

...

procedure TPanel.Paint;
begin
  inherited;
  Canvas.Brush.Color := clBlue;
  Canvas.FillRect(Rect(0, 0, FLeftValue, Height));
  Canvas.Brush.Color := clYellow;
  Canvas.FillRect(Rect(FLeftValue, 0, Width, Height));
end;

procedure TPanel.SetLeftValue(const Value: integer);
begin
  if FLeftValue <> Value then
    begin
      FLeftValue := Value;
      Invalidate;
    end;
end;

procedure TfrmTest.btnUpdateClick(Sender: TObject);
begin
  TestPanel.LeftValue := TestPanel.LeftValue + 10;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 09:48
1. Was hast du denn schon an Vorarbeit geleistet?
2. Wo ist dein bisheriger Quelltext?
3. Bei welchem KONKRETEN Schritt hast du ein Problem?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 09:49
so dass Du dazu eine Cracker-Klasse brauchen wirst.
Oder man packt eine PaintBox, oder Ähnliches, da rein.

Und wie man Farbverläufe zeichnet ... dazu sollten sich genügend Tutorials/Beispiele finden lassen, oder gar fertige Komponenten.
$2B or not $2B
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 10:17
Ich habe das so verstanden, dass es nicht um Farbverläufe geht, sondern einen gelben und einen blauen Bereich, daher wäre mein Vorschlag auf das Panel (das man pnlMain nennen könnte) zwei weitere Panel zu legen. Eines mit Align: alLeft (nenn es pnlLeft) und eines mit Align: alClient.

Dann kannst du das pnlLeft so groß oder klein ziehen wie du das beim Start ungefähr haben willst und beide Panel wie gewünscht einfärben.

Dem OnClick beider Panel musst du dann die gleiche Prozedur zuweisen, in der dann die Größe des pnlLeft entsprechend verändert wird ala:

Code:
pnlLeft.Width=Round(pnlMain.Width*95/100) //~95% gelb
Ralph
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 10:24
Ich glaube wenn du in mspaint einmal aufmalst was du genau meinst kann man besser helfen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 10:39
Ohne Farbverlauf: (dann sollte man vielleicht besser mal erklären, was "gewölbt" eigentlich bedeuten soll)

TGauge (unter Samples)
zwei TBevel
oder ein Canvas/TImage/TPaintBox, wo man das selber drauf malt
$2B or not $2B

Geändert von himitsu ( 3. Jun 2014 um 10:42 Uhr)
  Mit Zitat antworten Zitat
Simo

Registriert seit: 28. Apr 2014
51 Beiträge
 
#10

AW: Farbe zur Laufzeit verändern?

  Alt 3. Jun 2014, 10:45
Danke alle für Ihre Hilfe,Antwort..
Hier ist der Anhang (unten...)

Wenn auf das Linke Bild (Panel) klicke soll es so werden (Bild rechts.) ??

Geändert von Simo (19. Sep 2014 um 15:31 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 03: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