Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Button Farbe ändern ? (https://www.delphipraxis.net/190513-button-farbe-aendern.html)

Cookienation 11. Okt 2016 12:04

Button Farbe ändern ?
 
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 :)

hoika 11. Okt 2016 12:09

AW: Button Farbe ändern ?
 
Hallo,

http://bugs.freepascal.org/view.php?id=9285

Cookienation 11. Okt 2016 12:12

AW: Button Farbe ändern ?
 
Hallo Hoika,

ich verstehe da nicht ganz, was du mir damit sagen willst.

Aviator 11. Okt 2016 12:32

AW: Button Farbe ändern ?
 
Zitat:

Zitat von Cookienation (Beitrag 1350462)
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.

himitsu 11. Okt 2016 12:56

AW: Button Farbe ändern ?
 
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.

Cookienation 11. Okt 2016 13:09

AW: Button Farbe ändern ?
 
Zitat:

Zitat von himitsu (Beitrag 1350468)
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

EWeiss 11. Okt 2016 13:26

AW: Button Farbe ändern ?
 
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

Cookienation 11. Okt 2016 13:32

AW: Button Farbe ändern ?
 
Zitat:

Zitat von EWeiss (Beitrag 1350475)
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 :D
2. Ich hab den Code mal ins FormCreate eingefügt. Es gab lauter Errors.
3. Was ist msg :o

EWeiss 11. Okt 2016 13:47

AW: Button Farbe ändern ?
 
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

Cookienation 11. Okt 2016 14:28

AW: Button Farbe ändern ?
 
Ich geb's einfach auf ^^
Trotzdem danke für die Hilfe :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr.
Seite 1 von 2  1 2      

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