![]() |
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: ![]() [/edit] Ich lade jedes mal, wenn der Benutzer ein Bild anklickt, das Bild zum jeweiligen Skin. Das sieht so aus:
Delphi-Quellcode:
Geht das noch irgendwie leichter & schneller?
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; Danke :) |
AW: Button Farbe ändern ?
|
AW: Button Farbe ändern ?
Hallo Hoika,
ich verstehe da nicht ganz, was du mir damit sagen willst. |
AW: Button Farbe ändern ?
Zitat:
|
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. |
AW: Button Farbe ändern ?
Zitat:
|
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:
gruss
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; |
AW: Button Farbe ändern ?
Zitat:
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 |
AW: Button Farbe ändern ?
Zitat:
Such doch einfach mal im Forum wie man eine Winproc überschreibt. Einfach einfügen geht so nicht. gruss |
AW: Button Farbe ändern ?
Ich geb's einfach auf ^^
Trotzdem danke für die Hilfe :) |
AW: Button Farbe ändern ?
![]() ![]() |
AW: Button Farbe ändern ?
Aber nur nochmal was zum Problem. Du fragst hier nach Color, zeigst im Post #1 auch einen Code, aber in dem ist rein garnichts mit Color zu sehn.
Wozu soll der Code dann gut sein? Außer dass jemand bei den vielen LoadFromFile eine TImageList vorschlägt und dich auch gleich wegen der relativen Pfade verhaut. (beim LoadFromFile) Tipp: Bevor du dein Programm über Delphi startest ... geh in das Menü Start > Parameter und gibt da bei Arbeitsverzeichnis ein C:\ ein :twisted: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz