Jump to content

Свойство Collapsed


x11

Recommended Posts

У некоторых компонентов-контейнеров, типа TUniFieldSet  есть свойство Collapsible, что весьма удобно. Пользователь может свернуть/развернуть контейнер.

Но нет свойства Collapsed, которое бы отвечало за состояние панели и которое можно было бы менять программно.

Если пользователь свернул контейнер TUniFieldSet и закрыл окно, то он ожидает, что при следующем открытии окна этот контейнер будет свернут.

Другими словами, контейнерам не хватает свойства Collapsed, чтобы программно управлять панелью. Чтобы при открытии окна, указать

UniFieldSet1.Collapsed  := False;

Такое свойство есть у TUniPanel.

Screenshot_81.jpg

Link to comment
Share on other sites

У TUniFieldSet нет метода ajaxRequest.

Можешь дать более менее понятный пример?

 

Я так и недопонял, что подставлять вместо O1B? Просто UniFieldSet1?

Link to comment
Share on other sites

1 hour ago, x11 said:

У TUniFieldSet нет метода ajaxRequest.

К примеру:

1. UniFieldSet.ClientEvents.ExtEvents -> beforecollapse, beforeexpand (или же collapse, expand):

function beforecollapse(fieldset, eOpts)
{
    ajaxRequest(this, 'checkCollapsed', ['collapsed='+!this.collapsed]);
}

function beforeexpand(fieldset, eOpts)
{
    ajaxRequest(this, 'checkCollapsed', ['collapsed='+!this.collapsed]);
}

Или же (лучше) использовать collapse, expand (this.collapsed вместо !this.collapsed)...

2. 

procedure TMainForm.UniFieldSet1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
begin
  if EventName = 'checkCollapsed' then
  begin
    // Здесь будет использоваться переменная
    // Params.Values['collapsed']
    //
  end;

end;

 

  • Like 1
Link to comment
Share on other sites

Т.е. в событиях закрытия и создания TUniForm/TUniFrame никак не получится?

Я к тому, что вариант с событиями UniFieldSet.ClientEvents.ExtEvents весьма неудобный.

Например, на форме лежит -10-20 компонент типа TUniFieldSet. И у всех нужно заполнить это событие. Где-то ошибся и всё исправляй, переписывай.

 

Поэтому я ещё раз обращаюсь к авторам UniGUI. Не соблаговолите ли вы добавить в VCL свойство collapsed, чтобы его можно было читать и изменять.

 

Link to comment
Share on other sites

  • 2 months later...
  • 8 months later...
On 4/30/2020 at 11:51 AM, Sherzod said:

function beforecollapse

Подскажите, а какое свойство использовать у unimPanel?

Нужно выловить момент разворачивания панели.

Было бы здорово, если бы в VCL добавили эти события.

Screenshot_46.jpg

Link to comment
Share on other sites

Да, чтобы у знать, что пользователь развернул панель. Чтобы после разворачивания панели можно было там что-то сделать, например, наполнить списки или еще что-то. А после сворачивания очистить списки за ненадобностью.

beforeCollapse + beforeExpand

Link to comment
Share on other sites

Just now, x11 said:

beforeCollapse

procedure TMainmForm.UnimFormCreate(Sender: TObject);
begin
  UnimPanel1.JSInterface.JSAddListener('beforecollapse', 'function(){ajaxRequest(this, "checkCollapsed", ["collapsed="+!this.collapsed]);}')
end;

 

Link to comment
Share on other sites

Не

12 minutes ago, Sherzod said:

beforecollapse

т.е. для того, чтобы поймать момент разворачивания, мне нужно заменить на beforExpand?

Link to comment
Share on other sites

On 4/30/2020 at 1:51 PM, Sherzod said:

function beforecollapse(fieldset, eOpts) { ajaxRequest(this, 'checkCollapsed', ['collapsed='+!this.collapsed]); } function beforeexpand(fieldset, eOpts) { ajaxRequest(this, 'checkCollapsed', ['collapsed='+!this.collapsed]); }

Ну, я просто привел код для первого события.

Link to comment
Share on other sites

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...