select2 or chosen or bootstrap-multiselect
I am looking for a way to show the options in a multi select, just like plain simple "multiple" option does to the regular select control.
It saves a click! it saves a click (the need to open the dropdown to see the options), when you have to select multiple options. I am not able to find anywhere any documentation regarding that.
Could it be that you are asking not about "list as it is in HTML" (note: there are no one unified solution - see multiselect on mobile devices, they are not the same as on desktop) but about list that is in popup which is opened by click ant that is NOT CLOSED till you could finish all your selections? One click is requried, but not "click to open, click to select, click to open, click to select ..."?
Chosen can't do this (chosen closes popup after selection).
bootstrap-multiselect can, but its list is not very friendly: 1) it can change its location (jump up and down) under the mouse, and 2) is usually "too wide" - checkboxes are too far from text (text aligned left, checkbox aligned right).
You can try my component: https://github.com/DashboardCode/BsMultiSelect
Here dropdown menu is not closed till you had finished all your selections, and it can't look "too wide" if you have "wider" length of your input control.
I am writing a program in Delphi XE2. At one point in my program the user will be presented with output text, which I display through a simple "showmessage('The text of interest')" dialog.
I would like for the user to be able to copy and paste this text if they like to. It's not a key part of the program at all but I know that it might be nice for them to be able to do so.
At the moment, as far as I can see, it is not possible to select all or parts of the text from this type of message box, which brings me to my question: is there some way to make the message box text selectable for the user, or will I have to move on to other ways of displaying the text if I want this functionality? Any help would be greatly appreciated.
When you call ShowMessage a system message dialog is shown. This dialog does not support highlighting of individual portions of text. However, the dialog does respond to CTRL + C by placing the entire content of the dialog on the clipboard.
If you absolutely must have selection of individual portions of text then you will need to create the dialog yourself using Delphi controls.
In "Settings" -> "General" -> "Keyboard" -> "Shortcuts",we are able to query,add and delete our shortcuts, so when we are typing a shortcut,the full phrase will be showing in the keyboard. So I am wondering if we could access the keyboard shortcuts in code.(for example,I want to add some useful phrases in my app.)
Thanks in advance.
You will not be able to modify the system shortcuts or access them other than the system default (i.e. when the user is typing in a text field or similar).
However, you can check what the user types in a text field within your application using the corresponding delegate methods (e.g. in UITextFieldDelegate). When you detect a shortcut you would like to replace, you get the text field's text and replace the shortcut with the full text.
For anything more specific, you will have to try something yourself and ask more specific questions.
I am creating an iphone application, where i am getting confuse. I need to show a control (displaying Online option) as i have mention in below screenshot. I have seen such type of controls in Android.
When user will press, it should display Offline and Online two options in one small pop up view. Selected option text will come on to the control field. How to implement or give me suggestion to show such type of field in iphone.
Thanks in Advance.
Check the answer here: Any pull down or drop down menu for iOS?
Personally I would make a text box with an image view to make it look like a drop down box. then on tap load a UIActionSheet for the user to select from.
Question:
Can anyone point to an article or code samples anywhere on how to
provide BOTH editing AND range selection in a TStringGrid?
Yes, I KNOW there are third-party grids that do this, but it's
frustrating that the built-in grid lacks this basic capability.
Background:
It's pretty normal to expect to be able to both edit a cell in a grid,
and also to select a range of cells such as for a Copy operation.
As delivered, TStringGrid doesn't do that. It's either/or. In fact, the
docs tell us about the grid Options, "When goEditing is included in
Options, goRangeSelect has no effect".
However, it looks like it may be possible to do editing and rangeselects
in a TStringGrid anyway!!! Through careful use of the mousedown,
mouseup, selectcell and exit events, you can get dang close by switching
editing elements on and off at the right times. But I still don't have
it perfect, and that only covers mouse use, not keyboard changes.
I have not used the TStringGrid for this, so I can't provide a specific answer. But am I right in assuming you can manually (in code) start a cell being edited? That link implies it is possible even if the grid doesn't have goEditing included in its Options. (See below to work around this if this is not true.)
If so, I'd suggest the following approach:
Combined selection and edit behaviour
I find this is a good, Windows-standard-behaviour sort of approach:
Leave the grid in selection mode, so mouse and keyboard interaction selects cells
Trigger a cell being edited yourself, based on certain criteria (I think you are on the way to doing this from what you said in your last paragraph.) There are common ways to trigger editing, and the following criteria are what my programs follow when they do something similar with other controls:
Selection is normal. Ie, click to select, click and drag to multi-select, use the keyboard arrows and Shift or Control to select, etc.
A cell enters edit mode when either:
A cell is selected and the user presses Enter or F2 (F2 is the standard "Rename" or "Edit" shortcut, which works in a number of programs)
The user "slow-double-clicks" on a cell - ie, slow-double-clicks to select and edit, or clicks again, after a pause, on an already-selected cell. This mimics Explorer's behaviour, where if a file is selected and you later click on it, it enters the inline edit/rename mode. To implement this, record when a cell was last clicked (and selected.) If it is clicked again, and if the time is greater than GetDoubleClickTime then they have clicked twice, slowly, and enter edit mode. This allows you to distinguish between the first click to select, a double-click (to perform some kind of action), and a slow second click, to enter edit mode.
I also tend to check the mouse position, so that if an object is slow-double-clicked and it wasn't first selected (ie, this both selects the object and then enters edit mode) I verify the mouse hasn't moved very much. I use GetSystemMetrics to find the double-click distance, and check that the slow double click was within this box. (Because it's not a true doubleclick, I actually check the distance times 2. My action code is:
const int iMAX_MOVE_AMOUNT = ::GetSystemMetrics(SM_CYDOUBLECLK) * 2; (sorry, C++ not Delphi, but should be convertable easily enough!)
but I'm actually not certain if this is completely and utterly 100% to Windows guidelines. In practice users find it works as they expect, though.)
That should let you change between selecting and editing at the appropriate times with both the keyboard and the mouse.
Miscellaneous thoughts
You may find some of this is cleaner and easier to implement by subclassing TStringGrid and creating a new component. That will allow you to implement this in normal code and override the inbuilt behaviour (rather than event handlers) while keeping it invisible to the form code. It will also give you lower-level access to the mouse events or Windows messages than are exposed simply through events such as OnMouseDown. Finally, if there are problems with showing the editor when goEditing is included in Options, this will allow you to change that behaviour. You could also add your own events if you want your code to respond to certain things happening, such as creating an OnBeginEdit event, say.
Creating your own components is normally regarded as an advanced Delphi topic, but it's actually remarkably easy once you know how! This site has a few good topics that will introduce you to the subject in general, and if you go this route and encounter problems, Stack Overflow is of course a good place to ask questions :) The Embarcadero Delphi » VCL » Writing Components newsgroup / forum is also an excellent resource, in fact possibly even better than SO for this specific topic.
Hope that helps!
Yes it's old post, but the problem still exist on Delphi XE3.
To manage this feature I used next "trick" in SelectCell procedure :
if (ARow = StringGridParam.Row) then
begin
StringGridParam.Options:= StringGridParam.Options + [goEditing] - [goRowSelect];
end else begin
StringGridParam.Options:= StringGridParam.Options + [goRowSelect] - [goEditing];
end;