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/)
-   -   Jedi ComboBox und CheckListComboBox (https://www.delphipraxis.net/201304-jedi-combobox-und-checklistcombobox.html)

MyRealName 10. Jul 2019 07:23

Jedi ComboBox und CheckListComboBox
 
Hallo,
ich arbeite zum ersten Mal mit den Jedis und suche gerade die Möglichkeit, die DropDown-Breite einzustellen, da ich Einträge in den Listen habe, die etwas länger sind und ich würde es gerne dynamisch machen, aber ich habe keine property dafür gefunden und ich sehe auch im Code nicht, wo diese auf FListBox oder FPopup angewendet wird (was die beiden internen Controls zu sein scheinen, die dies machen). Auch direkt Listbox.Width zu setzen bringt nichts.

Hat jemand Erfahrung, Ideen ?

Danke schonmal

hoika 10. Jul 2019 07:30

AW: Jedi ComboBox und CheckListComboBox
 
Hallo,
aus meiner Tool-Sammlung

Delphi-Quellcode:
procedure CB_SetDropDownWidth(theComboBox: TComboBox; const theWidth: Integer);
const
  CB_SETDROPPEDWIDTH = 352; // Konstante aus D2010
begin
  theComboBox.Perform(CB_SETDROPPEDWIDTH, theWidth, 0);
end;

EWeiss 10. Jul 2019 07:40

AW: Jedi ComboBox und CheckListComboBox
 
Einzeiler..
Delphi-Quellcode:
SendMessage(ComboHandle, CB_SETDROPPEDWIDTH, NeueWeite, 0);


gruss

MyRealName 10. Jul 2019 07:48

AW: Jedi ComboBox und CheckListComboBox
 
Danke, ich probier es gleichmal!

Erstaunlicherweise funktioniert es nicht

Das liegt aber scheinbar an der Jedi, bei der normalen geht's.
Gibt es andere Ideen ?

EWeiss 10. Jul 2019 08:19

AW: Jedi ComboBox und CheckListComboBox
 
Zitat:

Zitat von MyRealName (Beitrag 1436405)
Danke, ich probier es gleichmal!

Erstaunlicherweise funktioniert es nicht

Das liegt aber scheinbar an der Jedi, bei der normalen geht's.
Gibt es andere Ideen ?

Denke schon das es funktioniert nur du musst es an der richtigen Position ausführen und zwar dann wenn das entsprechende Event aufgerufen wird.
Delphi-Quellcode:
    WM_NOTIFY:
      begin
        case (POFNotify(lp)^.hdr.code) of
          CDN_SELCHANGE: // << hier
            SendMessage(ComboHandle, CB_SETDROPPEDWIDTH, NeueWeite, 0);
        end;
Aber habe mit der Combo von Jedi bisher nicht gearbeitet.
Eventuell hilft es die Combo als DropDown festzulegen und dann das zu versuchen.
https://wiki.delphi-jedi.org/wiki/JV....DropDownWidth

gruss

MyRealName 10. Jul 2019 08:51

AW: Jedi ComboBox und CheckListComboBox
 
Ich habe es als property in einer abgeleiteten Komponente installiert, wie das die TJvColorComboBox gemacht hat (die hat das nämlich). Bei der TJvComboBox geht das sogar, aber die TJvCheckedComboBox weigert sich immer noch standhaft.

Im Code sehe ich, dass da allerdings auch händisch ein FPopup erstellen, wo sie eine Listbox drauf legen, die Listbox ist offengelegt als public property, haber die größenänderung dort bringt nichts. Das FPopup ist ein TWinControl unten drunter, ich versuche da mal anzusetzen

EWeiss 10. Jul 2019 08:54

AW: Jedi ComboBox und CheckListComboBox
 
Zitat:

ich versuche da mal anzusetzen
Ok.. Dann fällt mir auch nichts anderes ein. Sorry

gruss

MyRealName 10. Jul 2019 09:19

AW: Jedi ComboBox und CheckListComboBox
 
Für alle, die die Lösung interessiert :

FPopup (das WinControl unter der CheckListBox) setzt fest immer seine Größe auf die Breite der TJvCheckedComboBox in einer Routine, die CreatePopup heißt und immer dann aufgerufen wird, wenn die Liste angezeigt werden soll. Diese ist zum Glück virtuall und ich konnte sie überschreiben und nach dem inherited dann meine größe setzen :D

Danke an Euch für die Hilfe.


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