Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TTreeView, Программа с TTreeView 
V
    Опции темы
fics
Дата 14.3.2008, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 21.2.2008
Где: Луганск

Репутация: нет
Всего: нет



Здравствуйте уважаемые, подзабыл чуток уже Delphi, мне нужно следующее:

Есть TTreeView в нем строю в РанТайме дерево (удаляю, редактирую, добавляю), затем нужно по этому дереву сделать что то типа приметивной експертной системы то есть 

появляются RadioBattonы (Option:=TRadioButton.Create(WorkPanel);) начиная от самого верхнего левела дерева и так взависимости от выбора идем в глубину дерева,
 
Нет ничего погожего в нете, никто не видел?
Дерево строить умею, добавлять удалять компоненты в рантайме тоже,

Как циклом "проциклить" поуровнево дерево (что бы создатвать нужные RadioButtonы)?
--------------------
Ушел на пары
PM MAIL   Вверх
MetalFan
Дата 14.3.2008, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



ничо не понял. чего автор "цыклить" то собрался?  в чем вопрос заключается?!


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
fics
Дата 14.3.2008, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 21.2.2008
Где: Луганск

Репутация: нет
Всего: нет



Выбрал какой то пункт в RadioButtonaх который соответсвует узлу дерева, кликнул далее, создалитсь RadioButtonы (чаилды выбранного узла) Выбрал опять какой то пункт из вновь созданных
кликнул далее, появились опять RadioButtonы и тд.

Добавлено через 11 минут и 17 секунд
Вопрос задам пока чуть иначе- как получить список Чаилдов определенного узла?
--------------------
Ушел на пары
PM MAIL   Вверх
fics
Дата 15.3.2008, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 21.2.2008
Где: Луганск

Репутация: нет
Всего: нет



Вот, может быть кому было интересно

1--
   |--2
   |--3
4-
 |--5
 |--6

вот построил я такое дерево, кликаю на кнопке "старт" появляется(крэейтятся в рабочей области) два RadioButtonа с значениями 1 и 4, выбрал пункт 4 - создаются опять два Radio c значениями 5 и 6



Не включил в код редактирование TreeViewa, код и без того помоему ужасный

Код


unit main;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ComCtrls, ExtCtrls, Buttons, StdCtrls;

type
 Tmainf = class(TForm)
   MenuPanel: TPanel;
   TreeViewPanel: TPanel;
   FooterPanel: TPanel;
   WorkPanel: TPanel;
   Splitter: TSplitter;
   TreeView: TTreeView;
   StartBtn: TSpeedButton;
   NextBtn: TSpeedButton;
   procedure StartBtnClick(Sender: TObject);
   procedure WorkAreaClear();
   procedure NextBtnClick(Sender: TObject);
   procedure RadioPrint(Nname:String);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 mainf: Tmainf;
 Option: TRadioButton;
implementation

uses Math;

{$R *.dfm}

procedure Tmainf.WorkAreaClear();
begin

 while WorkPanel.ComponentCount > 0 do
   WorkPanel.Components[WorkPanel.ComponentCount-1].Free;

end;

procedure Tmainf.RadioPrint(Nname:String);
var
i,n,j,step: Integer;
begin
step:=0;
n:=TreeView.Items.Count;

for i:=0 to n-1 do
if TreeView.Items[i].Text = Nname then
 begin
  WorkAreaClear;

   for j:=0 to TreeView.Items[i].Count-1 do
    begin
     step:=step+20;
     Option:=TRadioButton.Create(WorkPanel);

        with Option do
         begin
          Parent:=WorkPanel;
          Name:=TreeView.Items[i].Item[j].Text;
          Left:=10;
          Top:=step;
          Caption:=TreeView.Items[i].Item[j].Text;
         end;
    end;

 end;

end;

procedure Tmainf.StartBtnClick(Sender: TObject);
var
i,n,step: Integer;
begin

WorkAreaClear;
step:=0;
n:=TreeView.Items.Count;

 for i:=0 to n-1 do
   begin

    if TreeView.Items[i].Level = 0 then
      begin
       step:=step+20;
       Option:=TRadioButton.Create(WorkPanel);

        with Option do
         begin
          Parent:=WorkPanel;
          Name:=TreeView.Items[i].Text;
          Left:=10;
          Top:=step;
          Caption:=TreeView.Items[i].Text;
         end;

      end;

   end;

end;

procedure Tmainf.NextBtnClick(Sender: TObject);
var
i: Integer;
begin

for i:=0 to WorkPanel.ComponentCount-1 do
  if (WorkPanel.Components[i] is TRadioButton) and
     (((WorkPanel.Components[i])as TRadioButton).Checked)
      then begin
       RadioPrint(((WorkPanel.Components[i])as TRadioButton).Caption);
       Exit;
      end;
end;

end.

--------------------
Ушел на пары
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.