![]() |
Combobox - Farbe des "Buttons" ändern
Liste der Anhänge anzeigen (Anzahl: 1)
hallo zusammen,
ich habe bei meinem programm nun ein ganz neues design. das einzige was jetzt nicht mehr zum design passt, sind die comboboxen. ich möchte die farbe des combobox-buttons, der sich ja immer rechts befindet und ein dreieck drauf hat, ändern. ich habe es mal mit einem TRect probiert und dann reingezeichnet, würde auch funktionieren, aber wenn man dann die combobox anklickt, wird das TRect wieder "übermalt" von der combobox. kann man das auch anders lösen? oder kennt jemand eine gute komponente bei der man die farbe ändern kann, oder sogar ein image als combobox-button verwenden kann? nach komponenten habe ich auch schon gesucht, leider habe ich aber nichts brauchbares gefunden... P.S. falls ihr nicht genau versteht von was ich die farbe ändern will, habe ich im anhang das "ding" rot eingekreist, das ich verändern will. gruss urbanbruhin |
Re: Combobox - Farbe des "Buttons" ändern
*push*
hat denn wirklich niemand eine idee? ich habe lange rumprobiert, aber ich kriegs einfach nicht hin :wall: immer wenn ich auf die combobox klicke, verschwindet das wieder, das ich über combobox1.canvas reingezeichnet habe... ich wäre wirklich sehr dankbar wenn jemand eine idee hat :angel: :cat: P.S. eine anständige komponente wäre natürlich auch sehr gut. gruss urbanbruhin |
Re: Combobox - Farbe des "Buttons" ändern
Hm, fang doch die WM_PAINT-Message ab und zeichne im Messagehandler davon dein Rect neu.
Wenn du ein Beispiel brauchst, rühr dich ;) |
Re: Combobox - Farbe des "Buttons" ändern
hallo,
danke für deine antwort :angel: ich habe mal die DP durchsucht, und dann ein bisschen rumprobiert. wenn ich aber diesen code hier:
Delphi-Quellcode:
in den quelltext baue, kommt beim starten des programms schon ein zugriffsfehler :gruebel:
private
procedure WndProc(var Message: TMessage); override; ... procedure TForm3.WndProc(var Message: TMessage); begin case Message.Msg of WM_PAINT:begin //paintcombobox; end; end; end; ich bin noch sehr unerfahren mit solchen sachen (TMessage, WndProc, WM_PAINT, ...) ein beispiel wäre darum nicht schlecht... |
Re: Combobox - Farbe des "Buttons" ändern
bei dn rx-tools gibt es eine solche komponente bei der man das image auswählen kann
(rx ist glaube ich in die jedis aufgegangen...) |
Re: Combobox - Farbe des "Buttons" ändern
Zitat:
oder hast du grad ein link? |
Re: Combobox - Farbe des "Buttons" ändern
Dass das den Fehler löst bezweifle ich, aber der Code den du geschrieben hast gehört nicht in die WndProc des Forms, sondern zur ComboBox. :wink:
|
Re: Combobox - Farbe des "Buttons" ändern
und wie kann ich machen dass das ding zur combobox gehört?
|
Re: Combobox - Farbe des "Buttons" ändern
Genauso wie bei dem Form: indem du die WndProc überschreibst. Vorher leitest du dir halt eine eigene Klasse von TCombobox ab.
Delphi-Quellcode:
Und im Form müsste es eigentlich reichen, wenn du in der Klassendeklaration (da wo die ganzen Komponenten stehen) TCombobox durch TMyCombobox ersetzt, eventuell auch noch in der .dfm nachsehen.
type TMyCombobox = class(TCombobox)
protected procedure WndProc(var Message: TMessage); override; end; |
Re: Combobox - Farbe des "Buttons" ändern
irgendwie ist mir das alles ein bisschen zu kompliziert :gruebel:
ich habe jetzt eine komponente gefunden, bei der man die farbe des buttons ändern kann. sie gefällt mir zwar nicht so sehr, aber ich nehme sie trotzdem... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15: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