AGB  ·  Datenschutz  ·  Impressum  







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

ComboBox: "Pfeil-" Button verändern

Ein Thema von Helmi · begonnen am 29. Apr 2012 · letzter Beitrag vom 30. Apr 2012
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#1

ComboBox: "Pfeil-" Button verändern

  Alt 29. Apr 2012, 16:32
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
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

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

  Alt 29. Apr 2012, 17:13
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#3

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

  Alt 29. Apr 2012, 18:47
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.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

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

  Alt 29. Apr 2012, 19:11
Das geht doch über die Styles in XE2 ganz einfach.
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#5

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

  Alt 29. Apr 2012, 19:14
Das geht doch über die Styles in XE2 ganz einfach.
Ne, Styles will ich keine nutzen

Muss über Code gehen
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 29. Apr 2012, 19:42
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#7

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

  Alt 29. Apr 2012, 19:46
gibts da nix einfacheres?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#8

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

  Alt 29. Apr 2012, 20:28
gibts da nix einfacheres?
Ja. Styles, Themes

AFAIK gibts in der JVCL eine Combobox-Komponente die sowas als feature bietet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#9

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

  Alt 29. Apr 2012, 20:44
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
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Steku

Registriert seit: 12. Mai 2008
185 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

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

  Alt 30. Apr 2012, 10:23
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:10 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