Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ComboBox: "Pfeil-" Button verändern (https://www.delphipraxis.net/167992-combobox-pfeil-button-veraendern.html)

Helmi 29. Apr 2012 15:32

ComboBox: "Pfeil-" Button verändern
 
Hallo,

ist es möglich den "Pfeil-" Button der ComboBox zu verändern?
Also die Größe anpassen (in meinem Falle die Breite), ggf.
vielleicht auch das Pfeil-Icon selbst

Bummi 29. Apr 2012 16:13

AW: ComboBox: "Pfeil-" Button verändern
 
nur als Einstieg, was Du mit dem Canvas machst überlasse ich Dir ...

Delphi-Quellcode:
type
  TComboBox=Class(StdCtrls.TComboBox)
  Protected
    procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
  End;
  TForm2 = class(TForm)
....
....
{ ComboBox }

procedure TComboBox.WMPaint(var Message: TWMPaint);
var
 r:Trect;
 c:Tcanvas;
begin
  inherited;
        c:=Tcanvas.Create;
        c.Handle := GetDC(handle);
        R := ClientRect;
        R.Left := R.Right - GetSystemMetrics(SM_CXHTHUMB);
        if Style <> csSimple then
        Canvas.FillRect(r);
          if DroppedDown then
            c.TextOut(r.left,r.top,'D')
         else
            c.TextOut(r.left,r.top,'U');

        ReleaseDC(handle,c.Handle);
        c.Free;
end;

Helmi 29. Apr 2012 17:47

AW: ComboBox: "Pfeil-" Button verändern
 
Dank dir!

Ich steh aber gerade auf´m Schlauch.

Wie kann ich den Bereich nur in der Breite verkleinern, das akt. Bild (also den Pfeil)
beibehalten? - Aber so verkleinern, dass der linke Bereich (also in dem die Auswahl
steht) dementsprechend vergrößert wird.

Darlo 29. Apr 2012 18:11

AW: ComboBox: "Pfeil-" Button verändern
 
Das geht doch über die Styles in XE2 ganz einfach.

Helmi 29. Apr 2012 18:14

AW: ComboBox: "Pfeil-" Button verändern
 
Zitat:

Zitat von Darlo (Beitrag 1164176)
Das geht doch über die Styles in XE2 ganz einfach.

Ne, Styles will ich keine nutzen

Muss über Code gehen

himitsu 29. Apr 2012 18:42

AW: ComboBox: "Pfeil-" Button verändern
 
Unit Delphi-Referenz durchsuchenThemes,

die ist nichts Neues und gab es schon vor XE2
nur daß Delphi diese jetzt selber direkt für das Skinning (verwendetes Theme) verwendet.

Darin sind funktionen, um sich Komponenten und Teile davon Zeichnen zu lassen, wie z.B. einen Button wie den in der ComboBox.
Die Größe kannst du beim Zeichnen selber vorgeben.

Du brauchst also im WM_PAINT nur das Gewünschte zeichnen zu lassen.
Dann mußt du noch die Mausereignisse abfangen und an die geänderten Maße anpassen.

Helmi 29. Apr 2012 18:46

AW: ComboBox: "Pfeil-" Button verändern
 
gibts da nix einfacheres?

Bernhard Geyer 29. Apr 2012 19:28

AW: ComboBox: "Pfeil-" Button verändern
 
Zitat:

Zitat von Helmi (Beitrag 1164179)
gibts da nix einfacheres?

Ja. Styles, Themes :-)

AFAIK gibts in der JVCL eine Combobox-Komponente die sowas als feature bietet.

Helmi 29. Apr 2012 19:44

AW: ComboBox: "Pfeil-" Button verändern
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1164184)
Zitat:

Zitat von Helmi (Beitrag 1164179)
gibts da nix einfacheres?

Ja. Styles, Themes :-)

AFAIK gibts in der JVCL eine Combobox-Komponente die sowas als feature bietet.

Das ist blöd! - Übermalen wäre möglich - aber der Button bleibt trotzdem im Hintergrund vorhanden
und auf Themes möcht ich nicht ausweichen! - dann muss alles so bleiben wie es ist

Steku 30. Apr 2012 09:23

AW: ComboBox: "Pfeil-" Button verändern
 
Hi,

glaube mich daran erinnern zu können, dass bei den
LMD Freeware Kompos 1-2 Comboboxen dabei sind, und zumindest
die Buttonbreite war im OI zu setzen...

Gruß
Steku


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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