Перейти к содержанию

Вопросы

Доброго времени суток!

 

В общем задача заключается в следующем:

не разворачиваются Item'ы на Андроиде

 

вот так выглядит на android'e

post-59-0-74896300-1433907128_thumb.png

 

а вот так на windows

post-59-0-40717500-1433907168_thumb.png

 

код который использую

procedure TFormFM.NavigationTreeView(aTree: TTreeView; const aData: string);

  function myIndexStr(aFind, aStr: string): Boolean;
  // точное совпаданеи начала строки
  var
    i: integer;
    s: string;
  begin
    s := '';
    for i := {$IFDEF WIN32} 1 {$ELSE} 0 {$ENDIF} to aFind.Length do
      s := s + aStr[i];
    Result := aFind = s;
  end;

var
  Item: TTreeViewItem;
  StrList: TStringList;
  i, c: integer;
  Str, ParseStr: string;
begin
  StrList := TStringList.Create;
  StrList.Text := aData;

  aTree.BeginUpdate;
  for i := 0 to StrList.Count - 1 do
  begin
    Str := StrList.Strings[i];
    ParseStr := Parse('">', '</option>', Str);
    if Pos('a', ParseStr) > 0 then
      ParseStr := StringReplace(ParseStr, 'a', 'a', [rfReplaceAll]);

    Item := TTreeViewItem.Create(nil);
    Item.StyleLookup := 'treeviewitemstyle';
    Item.Text := trim(StringReplace(ParseStr, '-', '', [rfReplaceAll]));
    Item.HelpKeyword := Parse('<option value="', '">', Str);

    if Pos('-', ParseStr) = 0 then
      aTree.AddObject(Item)
    else if myIndexStr('-- ', ParseStr) then
      aTree.Items[aTree.GlobalCount - 1].AddObject(Item)
    else if myIndexStr('---- ', ParseStr) then
      aTree.Items[aTree.GlobalCount - 1].Items[aTree.Items[aTree.GlobalCount - 1].Count - 1]
        .AddObject(Item)
    else if myIndexStr('------ ', ParseStr) then
    begin
      c := aTree.Items[aTree.GlobalCount - 1].Items[aTree.Items[aTree.GlobalCount - 1].Count -
        1].Count - 1;
      aTree.Items[aTree.GlobalCount - 1].Items[aTree.Items[aTree.GlobalCount - 1].Count - 1]
        .Items[c].AddObject(Item)
    end;

  end;
  aTree.EndUpdate;

  FreeAndNil(StrList);
end;

в стиле присутствует этот ресурс (стрелка)

при дизайн тайме стрелка появляется и все разворачивается

 

Кто знает решение? может чего не прописал в создании Item'a

Поделиться сообщением


Ссылка на сообщение

Рекомендуемые сообщения

  • 0
procedure TFormFM.NavigationTreeView(aTree: TTreeView; const aData: string);
var
  Root, Child, SubChild, Item: TTreeViewItem;
  StrList: TStringList;
  i, c: integer;
  Str, ParseStr: string;
begin
  StrList := TStringList.Create;
  StrList.Text := aData;

  aTree.BeginUpdate;
  aTree.Clear;

  for i := 0 to StrList.Count - 1 do
  begin
    Str := StrList.Strings[i];
    ParseStr := Parse('">', '</option>', Str);
    if Pos('a', ParseStr) > 0 then
      ParseStr := StringReplace(ParseStr, 'a', 'a', [rfReplaceAll]);

    Item := TTreeViewItem.Create(nil);
    Item.StyleLookup := 'treeviewitemstyle';
    Item.Text := trim(StringReplace(ParseStr, '-', '', [rfReplaceAll]));
    Item.HelpKeyword := Parse('<option value="', '">', Str);
    Item.ClipChildren := false;

    if Pos('-', ParseStr) = 0 then
    begin
      aTree.AddObject(Item);
      Root := Item;
    end
    else if ParseStr.StartsWith('-- ') then
    begin
      Root.AddObject(Item);
      Child := Item;
    end
    else if ParseStr.StartsWith('---- ') then
    begin
      Child.AddObject(Item);
      SubChild := Item;
    end
    else if ParseStr.StartsWith('------ ') then
    begin
      SubChild.AddObject(Item);
    end;
  end;

  aTree.EndUpdate;
  aTree.RealignContent;

  FreeAndNil(StrList);
end;

вот решение если кто столкнется с таким же багом

спасибо Ярославу!

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...