Jump to content

Recommended Posts

Posted

Как реализовать что-то вроде гибрида между unimEdit + unimSelect.

Т.е. нужно предварительно наполнить некоторыми данными список, чтобы пользователь мог выбрать что-то одно. Но если в списке нужного пункта нет, то чтобы он просто ввел текст, как вводит в unimEdit.

В unimSelect нельзя вводи, а только выбирать можно :(

В TUnimDBLookupComboBox есть свойство Style и если там выбрать csDropDown, то в этот список можно вводить данные как в unimEdit, но если заполнить список

while not dmm.qOrientir.Eof do
    begin
      comboOrientir.Items.Add(dmm.qOrientir.Fields[0].AsString);
      dmm.qOrientir.Next;
    end;

то выбрать ничего нельзя, ну просто нет реакции на кнопку, нажимаешь и ничего не происходит.

Привязки к базе данных не требуется.

Posted
20 minutes ago, x11 said:

В unimSelect нельзя вводи, а только выбирать можно

Поможет ли этот конфиг...

procedure TMainmForm.UnimFormCreate(Sender: TObject);
begin
  UnimSelect1.JSInterface.JSConfig('editable', [True]);
end;

 

  • Like 1
Posted

Спасибо.

Вроде работает.

Надеюсь, разработчики добавят этот функционал непосредственно в VCL-свойства.

Posted

программным путем хочу заполнить свойство text

selTimeToSubway.JSInterface.JSConfig('editable', [True]);

на снимках видно, что в поле есть значение "школа", но оно не попадает в свойство text

Screenshot_16.jpg

Screenshot_15.jpg

Screenshot_14.jpg

Posted

И еще вопрос.

Можно ли для unimSelect применить свойство InputType, чтобы можно было вводить с клавиатуры только цифры, т.е. такое же свойство, как у unimEdit?

Спасибо.

Posted
13 minutes ago, x11 said:

Можно ли для unimSelect применить свойство InputType, чтобы можно было вводить с клавиатуры только цифры, т.е. такое же свойство, как у unimEdit?

Добрый день,

Можете попробовать так, но здесь также возможен ввод в виде экспоненциальной записи:

procedure TMainmForm.UnimFormCreate(Sender: TObject);
begin
  with UnimSelect1.JSInterface do
  begin
    JSConfig('editable', [True]);
    JSConfig('inputType', ['number']);
  end;
end;

 

  • Like 1
Posted
10 minutes ago, Sherzod said:

JSConfig('inputType', ['number']);

Спасибо. То, что надо.

  • Like 1
Posted

Только цифры:

procedure TMainmForm.UnimFormCreate(Sender: TObject);
begin
  with UnimSelect1.JSInterface do
  begin
    JSConfig('editable', [True]);
    JSConfig('inputType', ['number']);
    JSAddListener(
      'keydown',
      'function(sender, e) {'+
      '   let invalidChars = ['+
      '       "-",'+
      '       "+",'+
      '       "e",'+
      '       ".",'+
      '       ","'+
      '   ];'+
      '   if (invalidChars.includes(e.browserEvent.key)) {'+
      '       e.preventDefault();'+
      '   }'+
      '}'
    )
  end;
end;

 

  • Like 1
  • 3 months later...
Posted
On 10/25/2020 at 11:18 AM, Sherzod said:

JSConfig('editable', [True]);

 

Оказалось, что компонента TUnimSelect хоть и является редактируемой, но введенный текст она на сервер не передает, т.е. возвращается пустая строка:

UnimButton1.Caption := UnimSelect1.Text;

 

добавление события-путышки не решает проблему:

procedure TMainmForm.UnimSelect1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
//
end;

 

Screenshot_6.jpg

uniGUI_test_Editable.zip

Posted

И еще одна проблема: кнопка Clear не очищает строку ввода.

Screenshot_1.jpg

Posted
43 minutes ago, x11 said:

Оказалось, что компонента TUnimSelect хоть и является редактируемой, но введенный текст она на сервер не передает, т.е. возвращается пустая строка:

Я думаю, Вам следует создать компонент, унаследованный от TUnimSelect и добавить такую возможность...

1. Использовать событие blur для отправки введенного значения на сервер.
2. Добавить OnAjaxEvent событие или JSAddEvent...
3. Проверить, есть ли  введенное значение в Items, если нет, то добавить и выбрать...

Posted

я не нашел пример, как использовать blur для отправки введенного значения :(

Posted
function blur(sender, e, eOpts)
{
  ajaxRequest(sender, "eventBlur", ['text=' + что здесь]);
}

что написать после +  ?

Posted

Не могу понять, зачем я взял unimSelect, если есть более продвинутая компонента unimCombobox.

Там уже все это есть и работает.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...