Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2008, 14:13   #1
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию TreeView и текст

Добрый день!
У меня опять возник вопрос по TreeView.

Иметься список:

Из этого

+1
------------------ Текст слишком длинный

Вот в это

+1
-----------
----------- Текст с переносом

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

Спасибо.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 27.03.2008, 16:15   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

То есть вы хотите реализовать многострочные надписи в ветвях дерева?
Это возможно, есть даже несколько компонентов. Правда, в программах их не встречал, и недаром.
Окститесь! Достаточно представить себе этого жуткого монстра, чтобы забыть эту идею, как дурной сон...
Разместите под деревом простой лэйбл (многострочный) и дублируйте там очень длинную надпись.
Для разумно длинных можно реализовать выдачу хинта для ветви (как, например, сделал я в своем справочнике).
mihali4 вне форума Ответить с цитированием
Старый 27.03.2008, 20:28   #3
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
То есть вы хотите реализовать многострочные надписи в ветвях дерева?
Это возможно, есть даже несколько компонентов. Правда, в программах их не встречал, и недаром.
Окститесь! Достаточно представить себе этого жуткого монстра, чтобы забыть эту идею, как дурной сон...
Разместите под деревом простой лэйбл (многострочный) и дублируйте там очень длинную надпись.
Для разумно длинных можно реализовать выдачу хинта для ветви (как, например, сделал я в своем справочнике).
Видимо вы как всегда правы.... только проблема в том что я до сих пор не могу понять как работать с деревом, как например под ним tlabel разместить? есть ли какой-нибудь пример, либо может быть ссылка на полное описание этого компонента.

У меня еще один вопрос он наверно, тоже касается text
в дерево загружен список:

+1
-------- название файла.расширение
-------- название файла.расширение
-------- название файла.расширение
-------- название файла.расширение
+2
-------- название файла.расширение
-------- название файла.расширение
-------- название файла.расширение
-------- название файла.расширение
и так далее. так вот как убрать расширение? чтобы было так:

+1
-------- название файла
-------- название файла
-------- название файла
Спасибо.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 27.03.2008, 20:55   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
не могу понять как работать с деревом, как например под ним tlabel разместить
То есть? Один компонент не можете расположить ниже другого??? Это юмор такой?
Цитата:
в дерево загружен список
...
так вот как убрать расширение?
Позвольте, он же не сам собой туда загружается?
Это вы его загружаете в своей процедуре. Вот там, где идет процесс добавления новой ноды, там и убирайте расширение (вручную).
mihali4 вне форума Ответить с цитированием
Старый 27.03.2008, 22:36   #5
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
То есть? Один компонент не можете расположить ниже другого??? Это юмор такой?
Это я могу, просто думал, что это делаться другим способом, видел примеры как chekbox, вставляют вот и, подумал что label так же......

А насчет второго: умеете же на пусть истинный поставить у вас это не заберешь....... и уже, какой раз......

Простите за лирическое отступление: Господа Админы и Модераторы что случилось с подпиской или это у меня проблемы? Я подписываюсь на темы ну на e-mail не чего не приходит?

Спасибо mihali4.

p.s Это чтож получаеться если просто вставить label то при измении размера окна это надо и менять положение label (top, left)....


Что-то не пойму что тут необходимо убрать чтоб разрешение не показавало перепробовал все что смог методом дидукции, но все не то:



Код:
 function CntChRepet(InputStr: string; InputSubStr: char): integer;
var
  i: integer;
begin
  result := 0;
  for i := 1 to length(InputStr) do
    if InputStr[i] = InputSubStr then
      inc(result);
      g:=result;
      end;

function SrNodeTree(pTreeNode: TTreeNode; var sRuta: string): string;
begin 
  sRuta := pTreeNode.Text + '\' + sRuta;
  if pTreeNode.Level = 0 then Result := sRuta
  else

    Result := SrNodeTree(pTreeNode.Parent, sRuta);
end;


procedure GetDirectories(Tree: TTreeView; Directory: string;
Item: TTreeNode; IncludeFiles: Boolean);
var
  SearchRec: TSearchRec; 
  ItemTemp: TTreeNode; 
begin 
  Tree.Items.BeginUpdate; 
  if Directory[Length(Directory)] <> '\' then Directory := Directory + '\';
  if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then 
  begin 
    repeat
      if (SearchRec.Attr and faDirectory = faDirectory) and
      (SearchRec.Name[1] <> '.') then
      begin
        if (SearchRec.Attr and faDirectory > 0) then
          Item := Tree.Items.AddChild(Item, SearchRec.Name);
        ItemTemp := Item.Parent;
        GetDirectories(Tree, Directory + SearchRec.Name, Item, IncludeFiles);
        Item := ItemTemp; 
      end 
      else if IncludeFiles then 
        if SearchRec.Name[1] <> '.' then 
          Tree.Items.AddChild(Item, SearchRec.Name); 
    until FindNext(SearchRec) <> 0; 
    FindClose(SearchRec); 
  end; 
  Tree.Items.EndUpdate;
end;
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 27.03.2008 в 22:55.
Stanislav вне форума Ответить с цитированием
Старый 28.03.2008, 00:25   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Строка SearchRec.Name содержит ИМЯ_ФАЙЛА.РАСШИРЕНИЕ
Функция POS дает позицию точки "." в этой строке.
Остается скопировать из нее подстроку, начиная с первого символа и заканчивая позицией точки минус 1 - функция COPY.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TreeView и БД Constellation БД в Delphi 12 27.09.2008 15:22
TreeView _SERGEYX_ Общие вопросы Delphi 1 01.09.2008 17:29
TreeView GetNodeAt() ?? Родион Компоненты Delphi 1 16.05.2008 16:09
Treeview forzi Помощь студентам 4 04.05.2008 23:50