Jump to content

Остается место после скрытия иконок у TUniTreeView


x11

Recommended Posts

Там просто есть понятие Родительский узел, идет группировка, в этом смысле где Вы будете хранить иконку для родительского узла?  

Link to comment
Share on other sites

7 minutes ago, Sherzod said:

Там просто есть понятие Родительский узел, идет группировка, в этом смысле где Вы будете хранить иконку для родительского узла?  

Иконки я храню в UniNativeImageList. Вопрос как добиться того, что я описал? Привязать иконку с конкретным номером к записи в БД, которая отображается.

Если бы  вместо индекса конкретной картинки можно было указать поле таблицы, в котором этот индекс хранится. Но такой возможности нет - не предусмотрено разработчиком. Ищу любые другие варианты это сделать. Но пока ничего в голову не приходит ((

Link to comment
Share on other sites

55 minutes ago, dbf_usr said:

Ищу любые другие варианты это сделать. Но пока ничего в голову не приходит ((

Я еще раз попробую проанализировать.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

5 minutes ago, Sherzod said:

Да, хотя тоже вариант.

Делается ShowIcon false, и рисуется хоть дивизия Буденного у постели  Горького.

З.Ы. Кстати такой интересный вопрос Вы Server Farms пытались использовать ?

У меня не получилось, я знаю, почему, но как это обойти.

Link to comment
Share on other sites

2 minutes ago, x11 said:

Ну, и как это сделать?

1.

procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  with ClientDataSet1 do
  begin

    Append;
    FieldByName('ID').AsInteger := 1;
    FieldByName('ParentID').AsInteger := 0;
    FieldByName('itemName').AsString := 'Japan';
    FieldByName('iconName').AsString := 'fa fa-home';
    Post;

    Append;
    FieldByName('ID').AsInteger := 2;
    FieldByName('ParentID').AsInteger := 1;
    FieldByName('itemName').AsString := 'Tokyo';
    FieldByName('iconName').AsString := 'fa fa-plus';
    Post;
  end;
end;

2. UniDBGrid1 Settings:

  IdField = ID

  IdParentField = ParentId

  Columns: itemName, iconName

  ClientEvents.ExtEvents: function store.nodeappend

function store.nodeappend(sender, node, index, eOpts)
{
    if (node.data) {
        node.data[0] = '<span class="'+ node.data[1] +'">&nbsp;&nbsp;</span>' + node.data[0]
    }
}

 

Link to comment
Share on other sites

О, я забыл же.

У меня же так и сделано.

Есть текстовый calculated-столбец в TDataSet и я туда пишу название иконки
 

procedure TfmdMainForm.DataSet1CalcFields(DataSet: TDataSet);
begin
  DataSet.FieldByName('img').AsString := '';

  if DataSet.FieldByName('old_price').asinteger > 0 then
  begin
    if DataSet.FieldByName('old_price').asinteger > DataSet.FieldByName('price').asinteger then
      DataSet.FieldByName('img').AsString := '<i class="fa fa-arrow-down" aria-hidden="true"></i>';
    if DataSet.FieldByName('old_price').asinteger < DataSet.FieldByName('price').asinteger then
      DataSet.FieldByName('img').AsString := '<i class="fa fa-arrow-up" aria-hidden="true"></i>';
  end// if DataSet.FieldByName('old_price').asinteger > 0
  else
  begin
    if DataSet.FieldByName('IsNewObj').asinteger = 1 then
      DataSet.FieldByName('img').AsString := '<i class="fa fa-asterisk" aria-hidden="true"></i>';

  end;
end;

Только нужно писать в столбец не "fa fa-plus", а полный HTML-код

s := '<i class="fa fa-arrow-down" aria-hidden="true"></i>'

как указано здесь https://fontawesome.com/v4.7.0/icon/address-book

Screenshot_70.jpg

Screenshot_71.jpg

Link to comment
Share on other sites

  • 7 months later...

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