Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

treview значение узла [D5, 2000]


lorn ©   (2006-08-01 17:55:00) 

мастера вся надежда на Вас
есть treeview с кучей узлов
вот такого типа
table
     +->row
     +->row
     +->row
            \->Cell
                     \->Data
                             \-> значение
     +->row
как автоматически пробежать по этому дереву и вытащить "значения" ну и положить их куданить типа в stringgrid
дайте код плиз


Ega23   (2006-08-02 11:24:00) [1]


> вобщем сам разобрался-хелпы помогли


"Вот теперь тебя люблю я,
Вот теперь тебя хвалю я, " (с)

Молодец. Рекомендую и в дальнейшем сначала читать хелп, а потом просить код.


lorn   (2006-08-02 11:16:00) [2]

я понял что этокомпонент у тебя -мне такие сложности не нужны и я не претендую на твой хлеб
вобщем сам разобрался-хелпы помогли

for i:=0 to TV.Items.Count-1 do
if TV.Items.Item[i].Level="№ уровня" then
 begin

with ListView1.Items.Add do
  begin
          Caption:=TV.Items.Item[i].Text;
           ImageIndex:=0;
     end;
 end;
end;

ну вот типа того и получилось
всем спасибо за помощь ,понимание и сочуствие
тема закрыта


Elen   (2006-08-02 11:09:00) [3]


> по проще есть что нибуть

Попробуй выгони значения всех веток через TreeView1.SaveToFile('Файл')
и анализируй каждую строку в Файле - если там в начале строки 4 TAB символа - это твое значение


Ega23   (2006-08-02 10:59:00) [4]

Если ты ещё не понял, то я издеваюсь.
Я этот компонент 2 месяца писал. А тут "дайте код"...
Не заработал ты, парень, на код.
Открывай хелп, пиши тесты, если есть КОНКРЕТНЫЕ вопросы - спрашивай.
На халяву за тебя твою работу тут делать никто не будет.


Ega23   (2006-08-02 10:55:00) [5]


function TCustomKdrDBTreeView.AddItem: Integer;
var
ms:TMemoryStream;
begin
try
 Result:=FTreeItems.Add(TKdrDBTreeViewItemIdent.Create);
 With TKdrDBTreeViewItemIdent(FTreeItems.Items[Result]) do
  begin
   KeyFieldValue:=FDataLink.DataSet.FieldByName(KeyField).Value;
   ParentKeyFieldValue:=FDataLink.DataSet.FieldByName(ParentField).Value;
   DisplayFieldValue:=FDataLink.DataSet.FieldByName(DisplayField).AsString;
   if (ImageField<>'') then
    if not (FDataLink.DataSet.FieldByName(ImageField).IsNull) then
     begin
      ms:=TMemoryStream.Create;
      try
       TBLOBField(FDataLink.DataSet.FieldByName(ImageField)).SaveToStream(ms);
       ms.Position:=0;
       Image:=TBitmap.Create;
       try
        Image.LoadFromStream(ms);
        ImageIndex:=FImageList.Add(Image, nil);
       except
        ImageIndex:=-1;
       end;
      finally
       ms.Free;
      end;
     end;
  end;
except
 Result:=-1;
end;

end;


lorn   (2006-08-02 10:49:00) [6]

всё равно не понял
по проще есть что нибуть


lorn   (2006-08-02 10:44:00) [7]

огромное человеческое спасибо
щас буду разбераться


Ega23   (2006-08-02 10:43:00) [8]

Код неоднократно полностью работал, встечается в нескольких коммерческих проектах.


Ega23   (2006-08-02 10:40:00) [9]


> вот и прошу пример


Легко.


function TCustomKdrDBTreeView.SetSelectedNode(
 const Value: Variant): TTreeNode;
var
i:Integer;
begin
Result:=nil;
for i:=0 to FTreeItems.Count-1 do
begin
 if not (TKdrDBTreeViewItemIdent(FTreeItems.Items[i]).isValid) then
     raise Exception.Create('Invalid ident');

 With TKdrDBTreeViewItemIdent(FTreeItems.Items[i]) do
  if KeyFieldValue=Value then
   begin
    if(TKdrDBTreeViewItemIdent(FTreeItems.Items[i]).Node = nil) then
    begin
     Result := nil;
     Break;
    end
    else
    begin
      if not (TMyNode(TKdrDBTreeViewItemIdent(FTreeItems.Items[i]).Node).isValid) then
       raise Exception.Create(Self.name + ':Ivalid Node');
      Result:=Node;
      Break;
    end;
   end;
end;
end;


lorn   (2006-08-02 10:34:00) [10]

все равно не понял  как вытащмть значение
вот и прошу пример


Ega23   (2006-08-02 10:28:00) [11]


> а рабочий код можно глянуть


"Можно. Утром деньги - вечером стулья". (с)


> что то не получается


Что конкретно не получается.


lorn   (2006-08-02 10:27:00) [12]

а рабочий код можно глянуть
что то не получается


Ega23   (2006-08-01 19:06:00) [13]

Хотя если глубина вложенности постоянна и на 4-м уровне кроме "значения" ничего быть не может - тогда [1].


Ega23   (2006-08-01 19:05:00) [14]

Есть такая штука. Рекурсия.


StriderMan   (2006-08-01 18:01:00) [15]

копать сюда TTreeeView.Items.Item[i].Level


Наверх

Титульная страница Поиск, карта сайта Написать письмо