Jump to content

Recommended Posts

Posted

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

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

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

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

UniFieldSet1.Collapsed  := False;

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

Screenshot_81.jpg

Posted

procedure TMainForm.UniFormCreate(Sender: TObject);
begin
UniFieldSet1.JSInterface.JSConfig('collapsed',[true]);
end;

Posted

Ещё раз спрошу.

Как при закрытии окна/фрейма узнать состояние контейнера: свернут или нет?

Posted

Вот видишь, поленился и пришлось писать еще одно сообщение :biggrin:

Posted

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

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

 

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

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

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

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

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

 

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

 

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

function beforecollapse

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

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

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

Screenshot_46.jpg

Posted

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

beforeCollapse + beforeExpand

Posted
Just now, x11 said:

beforeCollapse

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

 

Posted

Не

12 minutes ago, Sherzod said:

beforecollapse

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

Posted
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]); }

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

Posted
3 minutes ago, x11 said:

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

Да.

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