View Issue Details

IDProjectCategoryView StatusLast Update
0026179LazarusIDEpublic2015-03-02 19:15
Reportersamuel herzog Assigned ToJuha Manninen  
Status closedResolutionfixed 
OSlinux mint 
Product Version1.3 (SVN) 
Target Version1.4Fixed in Version1.4RC2 
Summary0026179: It's possible to write into comboboxes inside the object inspector for boolean values.
DescriptionBoolean type properties are displayed as comboxboxes in the object inspector.

The user shall be able to chose between true/false.
The user should not be able to type something in to this comboboxes.
Steps To Reproduce1.) start lazarus
2.) new application
3.) select form1
4.) go into the object inspector
5.) chose for example the property "AutoSize".
6.) set focus into combobox and use the keyboard to type something.
Additional Informationsee screenshot
TagsNo tags attached.
Fixed in Revision
WidgetsetGTK 2
Attached Files


related to 0023018 closedJuha Manninen Object-Inspector for Boolean-Properties should set the combobox-style to csDropDownlist 
related to 0023146 closedJuha Manninen Boolean (sets) types in Object Inspector 


samuel herzog

2014-05-17 17:46


Bildschirmfoto.png (67,064 bytes)   
Bildschirmfoto.png (67,064 bytes)   

Zeljan Rikalo

2014-05-18 13:47

developer   ~0075070

That's allowed with qt ws also.

Bart Broersma

2014-05-18 13:54

developer   ~0075072

Maybe change their styles to csDropDownList?

Vojtech Cihak

2014-05-18 14:10

reporter   ~0075073

Last edited: 2014-05-18 14:11

View 2 revisions

@ Maybe change their styles to csDropDownList?

I don't know exactly what component OI is, but when I tried in past to use combobox (where Style=csDropDownList) as a cell editor of stringgrid, I had problem with focus. I wasn't able to force it. I had to change it to csDropDown (editable combo) and it was OK.

I believe that Juha's UseOICheckBox is the right way here.

Zeljan Rikalo

2014-05-18 14:34

developer   ~0075078

Besides that if combo = csDropDown we can easy stop typing into eg. boolean fields by setting Key := 0 in OIComboBox.KeyDown

Juha Manninen

2014-05-18 16:07

developer   ~0075089

> Maybe change their styles to csDropDownList?

I remember it done already a long time ago but had to be reverted. I try to find the associated report.

> I believe that Juha's UseOICheckBox is the right way here.

It worked already with GTK2 and QT but Windows had a redraw issue. It should be solved and theme services should be used for the actual checkbox.
I try to find time for it.
Delphi now has an interesting hybrid control for booleans.

Juha Manninen

2014-05-18 19:19

developer   ~0075094

Last edited: 2014-05-18 19:20

View 2 revisions

Samuel Herzog opened also the original issue 0023018 at 2012.
In fact I did not fully understand then why it had to be reverted. Because of copy-paste? Who needs to copy-paste "True" or "False"?
For "Enum"-Properties it is a good reason though. They can be long and difficult to spell.

Bart Broersma

2014-05-18 21:26

developer   ~0075097

Copy could be implemented even with csDropDownList, it could be an action of the OI even "Copy current value of property".
I don't get the Paste part of it though.
Why would I want (or even need) to paste when I can select from drowpdown?

One could argue that the current behaviour is Delphi compatible...

Fathony Luthfillah

2014-05-21 07:53

reporter   ~0075153

Last edited: 2014-05-21 08:03

View 2 revisions

The big reason of why using editable-combobox is quick-typing.

So, I disagree to change the combobox to csDropDownList, which is non-editable by keyboard.

I am faster working in Object-Inspector using keyboard, for example:
* Press F11 (activate OI)
* press ArrowDown / ArrowUp to find a property
* PgUp / PgDown instead of scrollling by mouse.
* when meet boolean type, just press [F] to change the property value to "False"
or press [T] to set as "True"
(see my attachment)
* to end up editing a property, I press ArrowUp or ArrowDown.

My keyboard layout, the [F] key is just below of [T] key. Thanks to QWERTY layout.

If you really need to don't support manual-edit any longer,
please keep support of pressing [F] to "False" value and pressing [T] to "True".

* Current Lazarus's OI supports both lowercase & uppercase,
so no matter you press [f] or [Shift+F] the value is respectively set to "False".

(see my attachments)

Fathony Luthfillah

2014-05-21 07:54


Fathony Luthfillah

2014-05-21 08:07


Fathony Luthfillah

2014-05-21 08:14

reporter   ~0075154

Last edited: 2014-05-21 08:16

View 2 revisions

Okay, anyone could type "fals???xyz" to boolean-property.
But, it wouldn't go to compiler nor Lazarus would save that value.

(see my latest attachment: Lazarus showing error message box when indicating wrong value assignment).

It was not a problem at all.

Fathony Luthfillah

2014-05-21 08:14


Zeljan Rikalo

2014-05-21 08:49

developer   ~0075159

Well...Maybe boolean type should set anything <> True to False without errors.

Fathony Luthfillah

2014-05-21 09:38

reporter   ~0075160

(1) @Zeldan: Which error level you expect to avoid?
    Object Inspector show error in very immediately when a wrong value indicated.
    If you type (using keyboard) a wrong enum, this wrong value will quickly rejected by OI.
    This way: no wrong value like "Fals??xyz" will be saved ever in form stream (*.LFM)
    nor it will be ever compiled. You are worry about nothing.

(2) Error box shown is really good, to notice us when we incidentally type wrong char.

(3) Make error box silently is even worst, user must know if they set misspelled value.

(4) I'm not married with keyboard, so I also play with mouse most often.
    But, once my hand touching keyboard, I shall able do anything with it quickly too.
(5) Changing current behavior of OI's combobox to csDropDownList is a joke, very bad joke.
(6) Nobody is perfect. Everybody could has different behavior.
    But for trunk / future Lazarus, don't being stupid with stupid request.
    Current OI is better than the asked here.

Juha Manninen

2015-03-01 19:23

developer   ~0081546

This is solved by using the new Checkbox editor for booleans. It can be configured in environment settings. It may become the default editor later when it is tested enough.

samuel herzog

2015-03-02 19:15

developer   ~0081568

tested in 1.4RC2. Looks fine now. Thank you.

Issue History

Date Modified Username Field Change
2014-05-17 17:46 samuel herzog New Issue
2014-05-17 17:46 samuel herzog File Added: Bildschirmfoto.png
2014-05-18 13:47 Zeljan Rikalo Note Added: 0075070
2014-05-18 13:54 Bart Broersma Note Added: 0075072
2014-05-18 14:10 Vojtech Cihak Note Added: 0075073
2014-05-18 14:11 Vojtech Cihak Note Edited: 0075073 View Revisions
2014-05-18 14:34 Zeljan Rikalo Note Added: 0075078
2014-05-18 16:07 Juha Manninen Note Added: 0075089
2014-05-18 19:10 Juha Manninen Relationship added related to 0023018
2014-05-18 19:11 Juha Manninen Relationship added related to 0023146
2014-05-18 19:19 Juha Manninen Note Added: 0075094
2014-05-18 19:20 Juha Manninen Note Edited: 0075094 View Revisions
2014-05-18 21:26 Bart Broersma Note Added: 0075097
2014-05-21 07:53 Fathony Luthfillah Note Added: 0075153
2014-05-21 07:54 Fathony Luthfillah File Added: OI-boolean-keyboard-used-(8bit-pixel).GIF
2014-05-21 08:03 Fathony Luthfillah Note Edited: 0075153 View Revisions
2014-05-21 08:07 Fathony Luthfillah File Added: OI-enum-keyboard-used-(8pixel).GIF
2014-05-21 08:14 Fathony Luthfillah Note Added: 0075154
2014-05-21 08:14 Fathony Luthfillah File Added: OI-validating-the-typed-value.PNG
2014-05-21 08:16 Fathony Luthfillah Note Edited: 0075154 View Revisions
2014-05-21 08:49 Zeljan Rikalo Note Added: 0075159
2014-05-21 09:38 Fathony Luthfillah Note Added: 0075160
2015-03-01 18:24 Martin Friebe Target Version 1.3 (SVN) => 1.4
2015-03-01 19:22 Juha Manninen Assigned To => Juha Manninen
2015-03-01 19:22 Juha Manninen Status new => assigned
2015-03-01 19:23 Juha Manninen Note Added: 0081546
2015-03-01 19:23 Juha Manninen Status assigned => resolved
2015-03-01 19:23 Juha Manninen Resolution open => fixed
2015-03-02 19:15 samuel herzog Note Added: 0081568
2015-03-02 19:15 samuel herzog Status resolved => closed
2015-03-02 19:15 samuel herzog Fixed in Version => 1.4RC2