Sherzod Posted August 18, 2020 Share Posted August 18, 2020 47 minutes ago, x11 said: А как получить этот placeholder? Уточните, пожалуйста, Ваш вопрос. Link to comment Share on other sites More sharing options...
x11 Posted August 18, 2020 Author Share Posted August 18, 2020 При создании/показе окна я указываю placeholder для всех unimDBLookupComboBox`ов, т.к. у этих компонентов нет свойства EmptyText procedure SetPlaceholder(const sText: string; FormControl: TUniFormControl; sExtraSearchTags: string = ''); begin // задать EmptyText, т.к. у некоторых компонент такое свойство отсутствует if IsPublishedProp(FormControl, 'EmptyText') then SetPropValue(FormControl, 'EmptyText', sText) else FormControl.JSInterface.JSConfig('placeholder', [sText]); FormControl.Hint := sText + ' ' + sExtraSearchTags; end; но когда в списке что-то выбрано, то placeholder не виден, а по иконке не всегда понятно - что это за параметр, но можно сделать так, что если нажмешь на иконку, то можно выдать MessageBox с названием параметра (с названием компоненты). А название записано в placeholder. А как получить placeholder при нажатии на кнопку или в моем случае при нажатии на иконку? Link to comment Share on other sites More sharing options...
x11 Posted August 19, 2020 Author Share Posted August 19, 2020 Ещё раз попробую пояснить. Вот пользователь открыл форму просмотра объявления. Видит какую-то иконку и выбранное в unimDBLookupComboBox значение. Но пользователь не знает и не может догадаться - что это за параметр объявления, т.к. подписи нет, а placeholder/EmptyText виден только если ничего не выбрано. Как узнать, что это за параметр объявления? Вот я и придумал - нажать на FieldLabel и показать ShowMessage. А в ShowMessage я хочу показать то, что находится в EmptyText. Но EmptyText есть у unimEdit, а у unimDBLookupComboBox этого свойства нет. procedure TfmmParentMobile.comboOperAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin inherited; if EventName = cEventNameFieldLabelClick then ShowMessageByPlaceholder(Sender); end; procedure ShowMessageByPlaceholder(FormControl: TComponent); Var val: variant; begin if IsPublishedProp(FormControl, 'EmptyText') then begin val := GetPropValue(FormControl, 'EmptyText'); if not varisnull(val) then MessageBox(constParamMsg, VarToStr(val)); end; end; Link to comment Share on other sites More sharing options...
Sherzod Posted August 19, 2020 Share Posted August 19, 2020 Link to comment Share on other sites More sharing options...
x11 Posted August 19, 2020 Author Share Posted August 19, 2020 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now