AGB  ·  Datenschutz  ·  Impressum  







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

ComboBox mit extra Button

Ein Thema von Nersgatt · begonnen am 16. Mär 2011 · letzter Beitrag vom 16. Mär 2011
Antwort Antwort
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

ComboBox mit extra Button

  Alt 16. Mär 2011, 12:16
Moin,

ich hab ein Problem und ich finde nicht so wirklich einen Einstieg.
Ich möchte eine Komponente ableiten. Hauptsächlich soll es eine TcxLookupComboBox (DevExpress) sein. Neben dem DropDown-Pfeil soll noch ein zusätzlicher Button sein. Beim Klick auf den Button soll die Eigentschaft EditValue der ComboBox auf Null gesetzt werden. Das ist eigentlich schon alles.
Der Button muss nicht unbedingt neben dem Pfeil sein. Ich könnte mir auch vorstellen, ihn in die Textarea zu machen. Wichtig ist, dass der User ein optisches Element hat, womit er das Ding auf Null setzen kann. Auf Backspace oder Entf zu drücken (beides ist bei mir bereits möglich) bekommen meine User leider nicht auf Reihe... ist wohl zuviel verlangt

Ich finde nicht so wirklich einen Einstieg, wie ich das löse. Ich könnte eine Ableitung von TWinControl machen. Dann dynamisch die Combobox und den neuen Button erstellen. Hätte den Nachteil, dass ich praktisch alle Eigenschaften der Combobox pratisch "durchreichen" muss.
Ich könnte auch ne Ableitung von TcxLookupCombobox machen und versuchen, mich ins malen des Controls einzuklinken. Und dabei halt meinen extra Button zu zeichen. Könnte aber reichlich kompliziert werden, oder?

Prinzipell möchte ich mit der ursprünglichen Combobox kompatibel bleiben, damit ich alle Comboboxen in meiner Anwendung einfach ersetzen kann.

Wie würdet ihr das angehen?
Jens
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
265 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: ComboBox mit extra Button

  Alt 16. Mär 2011, 12:26
Ich würd einfach eine neue Komponente erstellen mit dem Button und diese Komponente dann einsetzen. Oder seh ich grade nicht dein Problem?
Delphi programming is awesome.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: ComboBox mit extra Button

  Alt 16. Mär 2011, 12:30
Wovon würdest Du denn die neue Komponente ableiten?
Jens
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ComboBox mit extra Button

  Alt 16. Mär 2011, 12:43
Als einfache Lösung ein Panel und darauf die ComboBox und daneben Deinen Button. Deine Komponente wäre dann aber halt ein Panel-Nachfolger...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: ComboBox mit extra Button

  Alt 16. Mär 2011, 14:04
Hallo,

oder du schaust dir an wie TLabeledEdit das macht (VCL-Komponente aus Edit und Label).

Da kann man sich sicher auch einiges "abschauen" für Dein Problem.

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: ComboBox mit extra Button

  Alt 16. Mär 2011, 14:23
Ich hab jetzt für mich folgende Lösung gefunden:
das TcxLookupCombobox hat ne Property "ButtonGlyph". Damit kann man den DropDown-Pfeil ändern. Nimmt man ein Glyph, was größer ist als normal, wird der Button auch automatisch größer.
Also habe ich ein Glyph genommen, was doppelt so breit ist, so dass es aussieht, als wären das 2 Button. Dann noch MouseDown überschrieben und x und y ausgewertet, um zu entscheiden, ob der User aufklappen will, oder leeren will. Das "originale" Aufklappen verhindere ich und kümmer mich selbst ums Aufklappen. Fertig!
Miniaturansicht angehängter Grafiken
combobox.jpg  
Jens
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#7

AW: ComboBox mit extra Button

  Alt 16. Mär 2011, 14:50
Das können die DevEx-Edits von Haus aus:
Delphi-Quellcode:
var
  btn: TcxEditButton;
begin
  btn := cxLookupComboBox1.Properties.Buttons.Add;
  btn.Kind := bkText;
  btn.Caption := 'X';
end;
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

AW: ComboBox mit extra Button

  Alt 16. Mär 2011, 14:57
Das können die DevEx-Edits von Haus aus:
Super! Da werde ich meine Lösung noch mal ändern. Das ist ja viel sauberer.
Danke!
Jens
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
265 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: ComboBox mit extra Button

  Alt 16. Mär 2011, 15:08
Als einfache Lösung ein Panel und darauf die ComboBox und daneben Deinen Button. Deine Komponente wäre dann aber halt ein Panel-Nachfolger...
Genau das meinte ich
Delphi programming is awesome.
  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 20:46 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