AGB  ·  Datenschutz  ·  Impressum  







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

Button Farbe ändern ?

Ein Thema von Cookienation · begonnen am 11. Okt 2016 · letzter Beitrag vom 11. Okt 2016
Antwort Antwort
Seite 1 von 2  1 2      
Cookienation

Registriert seit: 11. Okt 2016
5 Beiträge
 
#1

Button Farbe ändern ?

  Alt 11. Okt 2016, 12:04
Hi !
Ich programmiere mir gerade einen Gambling Simulator.
Wer Gambling kennt, weiß, dass die Buttons 0, 1-6 und 7-14 Farbig sein sollten
Aber bei Lazarus kann man die Farbe eines Buttons nicht ändern :/
Einer eine Idee, wie man das sonst umsetzen könnte?
Danke

Simulator:

http://www.mediafire.com/file/q65eb3...sInstaller.exe

[/edit]
Ich lade jedes mal, wenn der Benutzer ein Bild anklickt, das Bild zum jeweiligen Skin.
Das sieht so aus:

Delphi-Quellcode:
procedure TShopForm.SkinAnzeigen;
begin
    if lblPreis.Caption <> 'then
      lblCoins.Caption := 'Coins';

    lblItemName.Caption := Selected;
    case Selected of
      'M9 Bayonet':
      begin
        lblPreis.Caption := '121000';
        Image1.Picture.LoadFromFile('M9.png');
      end;
      'M9 Bayonet | Crimson Web':
      begin
        lblPreis.Caption := '349000';
        Image1.Picture.LoadFromFile('M9 Crimson Web.png');
      end;
      'M9 Bayonet | Lore':
      begin
        lblPreis.Caption := '714000';
        Image1.Picture.LoadFromFile('M9 Lore.png');
      end;
      'M9 Bayonet | Black Laminate':
      begin
        lblPreis.Caption := '182000';
        Image1.Picture.LoadFromFile('M9 Black Laminate.png');
      end;
      'M9 Bayonet | Gamma Doppler':
      begin
        lblPreis.Caption := '374000';
        Image1.Picture.LoadFromFile('M9 Gamma Doppler.png');
      end;
      'M9 Bayonet | Autotronic':
      begin
        lblPreis.Caption := '340000';
        Image1.Picture.LoadFromFile('M9 Autotronic.png');
      end;
      'M9 Bayonet | Bright Water':
      begin
        lblPreis.Caption := '145000';
        Image1.Picture.LoadFromFile('M9 Bright Water.png');
      end;
      'M9 Bayonet | Freehand':
      begin
        lblPreis.Caption := '221000';
        Image1.Picture.LoadFromFile('M9 Freehand.png');
      end;
      'M9 Bayonet | Damascus Steel':
      begin
        lblPreis.Caption := '127000';
        Image1.Picture.LoadFromFile('M9 Damascus Steel.png');
      end;
      'M9 Bayonet | Doppler':
      begin
        lblPreis.Caption := '223000';
        Image1.Picture.LoadFromFile('M9 Doppler.png');
      end;
      'M9 Bayonet | Marble Fade':
      begin
        lblPreis.Caption := '338000';
        Image1.Picture.LoadFromFile('M9 Marble Fade.png');
      end;
      'M9 Bayonet | Tiger Tooth':
      begin
        lblPreis.Caption := '272000';
        Image1.Picture.LoadFromFile('M9 Tiger Tooth.png');
      end;
      'M9 Bayonet | Rust Coat':
      begin
        lblPreis.Caption := '93000';
        Image1.Picture.LoadFromFile('M9 Rust Coat.png');
      end;
      'M9 Bayonet | Ultraviolet':
      begin
        lblPreis.Caption := '802000';
        Image1.Picture.LoadFromFile('M9 Ultraviolet.png');
      end;
      'M9 Bayonet | Blue Steel':
      begin
        lblPreis.Caption := '179000';
        Image1.Picture.LoadFromFile('M9 Blue Steel.png');
      end;
      'M9 Bayonet | Boreal Forest':
      begin
        lblPreis.Caption := '321000';
        Image1.Picture.LoadFromFile('M9 Boreal Forest.png');
      end;
      'M9 Bayonet | Case Hardened':
      begin
        lblPreis.Caption := '223000';
        Image1.Picture.LoadFromFile('M9 Case Hardened.png');
      end;
      'M9 Bayonet | Fade':
      begin
        lblPreis.Caption := '222000';
        Image1.Picture.LoadFromFile('M9 Fade.png');
      end;
      'M9 Bayonet | Forest DDPAT':
      begin
        lblPreis.Caption := '290000';
        Image1.Picture.LoadFromFile('M9 Forest DDPAT.png');
      end;
      'M9 Bayonet | Night':
      begin
        lblPreis.Caption := '165000';
        Image1.Picture.LoadFromFile('M9 Night.png');
      end;
      'M9 Bayonet | Safari Mesh':
      begin
        lblPreis.Caption := '128000';
        Image1.Picture.LoadFromFile('M9 Safari Mesh.png');
      end;
      'M9 Bayonet | Scorched':
      begin
        lblPreis.Caption := '177000';
        Image1.Picture.LoadFromFile('M9 Scorched.png');
      end;
      'M9 Bayonet | Slaughter':
      begin
        lblPreis.Caption := '268000';
        Image1.Picture.LoadFromFile('M9 Slaughter.png');
      end;
      'M9 Bayonet | Stained':
      begin
        lblPreis.Caption := '169000';
        Image1.Picture.LoadFromFile('M9 Stained.png');
      end;
      'M9 Bayonet | Urban Masked':
      begin
        lblPreis.Caption := '87000';
        Image1.Picture.LoadFromFile('M9 Urban Masked.png');
      end;
    end;
  end;
Geht das noch irgendwie leichter & schneller?
Danke

Geändert von mkinzler (11. Okt 2016 um 12:22 Uhr) Grund: Tag korrigiert
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 12:09
Hallo,

http://bugs.freepascal.org/view.php?id=9285
Heiko
  Mit Zitat antworten Zitat
Cookienation

Registriert seit: 11. Okt 2016
5 Beiträge
 
#3

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 12:12
Hallo Hoika,

ich verstehe da nicht ganz, was du mir damit sagen willst.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 12:32
Hallo Hoika,

ich verstehe da nicht ganz, was du mir damit sagen willst.
Er will damit sagen, dass bereits ein Bug im BugTracker eingestellt wurde. Allerdings ist es bei Windows so, dass die Buttons von Windows selbst gezeichnet werden und deshalb die Änderung der Color Eigenschaft keine Auswirkung hat. Alles was du tun kannst wäre, dass du dir entweder irgendwo einen anderen TColorButton o.ä. suchst oder dir selbst eine Button Komponente entwickelst.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 12:56
Oder Skins verwenden (da werden die Buttons dann nicht von Windows gezeichnet, aber man muß die Farbe über die Skin-Komponente steuern, bzw. einen anderen Skin auswählen)

Oder man schaltet das Theming für diese Button-Instanz aus, dann wird der Button im schönen "alten" Win9x-Style gezeichnet, wo der Button noch auf die Color hört.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Cookienation

Registriert seit: 11. Okt 2016
5 Beiträge
 
#6

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 13:09
Oder man schaltet das Theming für diese Button-Instanz aus, dann wird der Button im schönen "alten" Win9x-Style gezeichnet, wo der Button noch auf die Color hört.
Wie genau geht das ? :S
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 13:26
Winproc überschreiben..
WinHandle = Handle des Button
wp = DC des Button wird von Windows übergeben.
clRed = Der Button ist dann Rot

Delphi-Quellcode:
var
  brush: HBrush;
case Msg of
  WM_CTLCOLORBTN:
    begin
      Color := clRed;
      SetBkMode(wp, TRANSPARENT);
      SetBkColor(wp, Color);

      if (brush <> 0) then
        DeleteObject(brush);

      brush := CreateSolidBrush(Color);
      SetProp(WinHandle, 'brush', brush);
      Result := brush;
      Exit;
  end;
end;
gruss
  Mit Zitat antworten Zitat
Cookienation

Registriert seit: 11. Okt 2016
5 Beiträge
 
#8

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 13:32
Winproc überschreiben..
WinHandle = Handle des Button
wp = DC des Button wird von Windows übergeben.
clRed = Der Button ist dann Rot

Delphi-Quellcode:
var
  brush: HBrush;
case Msg of
  WM_CTLCOLORBTN:
    begin
      Color := clRed;
      SetBkMode(wp, TRANSPARENT);
      SetBkColor(wp, Color);

      if (brush <> 0) then
        DeleteObject(brush);

      brush := CreateSolidBrush(Color);
      SetProp(WinHandle, 'brush', brush);
      Result := brush;
      Exit;
  end;
end;
gruss



Ich hätte eventuell erwähnen sollen, dass ich ein noch ein Anfänger bin.
Also erstmal ein paar Fragen:

1. Wo soll ich den Code bitte einfügen
2. Ich hab den Code mal ins FormCreate eingefügt. Es gab lauter Errors.
3. Was ist msg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 13:47
Zitat:
Ich hätte eventuell erwähnen sollen, dass ich ein noch ein Anfänger bin.
Macht ja nix

Such doch einfach mal im Forum wie man eine Winproc überschreibt.
Einfach einfügen geht so nicht.

gruss
  Mit Zitat antworten Zitat
Cookienation

Registriert seit: 11. Okt 2016
5 Beiträge
 
#10

AW: Button Farbe ändern ?

  Alt 11. Okt 2016, 14:28
Ich geb's einfach auf ^^
Trotzdem danke für die Hilfe
  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 20:58 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