ComboBox

Für Fragen von Einsteigern und Programmieranfängern...
hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

ComboBox

Beitrag von hbr »

Hallo,
bisher stelle ich die breite der Combobox in FormCreate mit
SendMessage(ComboBox.Handle,CB_SETDROPPEDWIDTH , 220,0) ein.
Kurioserweise funktioniert das nicht mehr bei Windows10
Warum nicht?

Gibt es hierfür eine Möglichkeit?

Gruß

Requion
Beiträge: 106
Registriert: Mi 3. Feb 2016, 09:39
OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64Bit,ARM(RPi)
Wohnort: nahe Grimma

Re: ComboBox

Beitrag von Requion »

Hallo hbr,

warum nicht Combobox1.Width := 220; ?

Oder verstehe ich was total falsch?
Mfg Requion

Das beste an Standards ist, dass es so viele davon gibt.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: ComboBox

Beitrag von hbr »

Requion hat geschrieben:Hallo hbr,
warum nicht Combobox1.Width := 220; ?

Oder verstehe ich was total falsch?
Ja,
die Breite der Box beträgt z.B. Width = 46
Die Einträge der Box sind aber wesentlich breiter und werden mit der genannten Funktion bei Klick in einer Breite von 220 dargestellt.
Unter linux geht das automatisch, da wird das Aufgeklappte Fenster der Box auf den breitesten Eintrag eingestellt.
Die Box selber hat also eine kleinere Breite als wie das aufgeklappte Fenster mit seinen Einträgen.

wp_xyz
Beiträge: 5147
Registriert: Fr 8. Apr 2011, 09:01

Re: ComboBox

Beitrag von wp_xyz »

hbr hat geschrieben:SendMessage(ComboBox.Handle,CB_SETDROPPEDWIDTH , 220,0) ein.
Kurioserweise funktioniert das nicht mehr bei Windows10
Kann ich nicht bestätigen. Funktioniert unter Win7/10 und Laz trunk/1.6.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: ComboBox

Beitrag von hbr »

wp_xyz hat geschrieben:
hbr hat geschrieben:SendMessage(ComboBox.Handle,CB_SETDROPPEDWIDTH , 220,0) ein.
Kurioserweise funktioniert das nicht mehr bei Windows10
Kann ich nicht bestätigen. Funktioniert unter Win7/10 und Laz trunk/1.6.
Verstehe ich nicht!
Bei mir nicht.
Ich habe den Aufruf in einer Hauptform in OnCreate und die ComboBox befindet sich auf einem PageControl.
Es hat bei mir bisher in v1.26 auch unter Win10 funktioniert.
Seit V1.6 aber nicht mehr.

wp_xyz
Beiträge: 5147
Registriert: Fr 8. Apr 2011, 09:01

Re: ComboBox

Beitrag von wp_xyz »

Ich hatte die Combo direkt auf dem Formular, ansonsten wurde das SendMessage auch im FormCreate aufgerufen.

[EDIT] Geht auch im Pagecontrol.

Requion
Beiträge: 106
Registriert: Mi 3. Feb 2016, 09:39
OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64Bit,ARM(RPi)
Wohnort: nahe Grimma

Re: ComboBox

Beitrag von Requion »

Was genau funktioniert denn nicht?
Ich vermute mal es passiert einfach nix (also keine Fehlermeldung oder so).

Schonmal im Debugger geschaut was der da macht?
Mfg Requion

Das beste an Standards ist, dass es so viele davon gibt.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: ComboBox

Beitrag von hbr »

Also es muß sich etwas an den Featchers seit V1.26 geändert haben.

Meine ComboBoxen haben gewisse Einstellungen mit ReadOnly.

Beim hinzufügen einer Box mit Standardwerten funktioniert die Darstellung der aufgeklappten Box auch mit Win10.
Jetzt habe ich ein paar Properties der Box geändert.
z.B. csOwnerDrawFixed und so weiter.

Fakt ist, dass wenn gewisse Einstellungen vorhanden sind, es Unterschiede zwischen Win7 und Win10 gibt.
Ich weis nur noch nicht genau welche.

SendMessage(ComboBox1.Handle,CB_SETDROPPEDWIDTH,xxx,0) greift dann bei Win10 nicht mehr.

wp_xyz
Beiträge: 5147
Registriert: Fr 8. Apr 2011, 09:01

Re: ComboBox

Beitrag von wp_xyz »

Du musst schon sagen, was diese "gewissen" Einstellungen sind, damit man es nachvollziehen kann. Sonst kann dir niemand helfen.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: ComboBox

Beitrag von hbr »

wp_xyz hat geschrieben:Du musst schon sagen, was diese "gewissen" Einstellungen sind, damit man es nachvollziehen kann. Sonst kann dir niemand helfen.
Ich hab ja auch geschrieben, dass ich es noch nicht weis.

Jetzt hab ich es gefunden.

Steht IthemWidth auf -1, dann funktioniert es bei Windows 10 nicht, bei Win7 schon.
Steht IthemWidth auf 0, dann geht es auch bei Windows 10.

Warf
Beiträge: 2120
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: ComboBox

Beitrag von Warf »

Dumme Frage, warum verwendest du nicht gleich Itemwidth, das läuft Plattform unabhängig

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: ComboBox

Beitrag von hbr »

Warf hat geschrieben:Dumme Frage, warum verwendest du nicht gleich Itemwidth, das läuft Plattform unabhängig
Was heißt das?

Kein anderer Wert bei IthemWidth verändert die die Größe der ComboBox-Liste.

Für was ist der Parameter zuständig?

Warf
Beiträge: 2120
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: ComboBox

Beitrag von Warf »

Laut der Lazarus CCR Komponenten Dokumentation:
property ItemWidth;

The minimum width of the items in the drop-down list.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: ComboBox

Beitrag von hbr »

OK,
Vieleicht funktioniert es ja in kommende Versionen.

Warf
Beiträge: 2120
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: ComboBox

Beitrag von Warf »

hbr hat geschrieben:OK,
Vieleicht funktioniert es ja in kommende Versionen.
Eventuell ist das auch einfach ein bug, ich werde das mal überprüfen und, sofern es noch keinen gibt, einen bugreport einreichen

Antworten