![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте помогите пожалуйста разобраться.
Есть дерево: Слово1 .Синоним1 .Синоним2 .Синоним3 Слово2 .Синоним1 .Синоним2 .Синоним3 ...... Загружаемое в treeview из txt файла. Есть поле memo в котором при написании Слово1(2,3,4....) оно заменялось на один из СВОИХ синонимов. Слов может быть неограниченное количество. Вопрос: Как одному элементу обратится ко всем ЕГО дочерним элементам. Вот код который на данный момент существует. Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) mmo1: TMemo; tv1: TTreeView; lbl1: TLabel; lbl2: TLabel; button2: TButton; button3: TButton; procedure FormCreate(Sender: TObject); procedure mmo1Change(Sender: TObject); procedure button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; h,n,l:integer; t: TTreeNode; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin tv1.LoadFromFile('slovar.txt'); Randomize; end; procedure TForm1.mmo1Change(Sender: TObject); var i,s: Integer; CurPos: TPoint; begin CurPos := mmo1.CaretPos; for i:=0 to mmo1.Lines.Count do for s:=0 to 19 do if AnsiPos(tv1.Items.Item[s].Text , mmo1.Lines[i])<>0 then begin mmo1.lines.text:=StringReplace(mmo1.lines.text , tv1.Items.Item[3].Text , tv1.Items.Item[Random(5)].Text ,[rfreplaceall]); break; end; mmo1.CaretPos := CurPos; end; procedure TForm1.button3Click(Sender: TObject); begin mmo1.Lines.SaveToFile('TEXT.txt'); end; end. |
#2
|
||||
|
||||
![]() Код:
for i := 0 to pred(item.childscount) do Foo(item[i]); — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
![]() [Error] Unit1.pas(55): Undeclared identifier: 'item' ? Чтот я даже не понял.
Как я понял - pred уменьшает значение на единицу. Foo(item[i]); - а это ещё что? Первый раз вижу такую функцию.. Последний раз редактировалось Feraset, 23.12.2012 в 15:32. |
#4
|
||||
|
||||
![]() это пример.
item - нод дерева, у которого бегаем по дочкам. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
![]() совсем теперь ничего не понимаю. У меня delphi конструкцию childcount не распознаёт.
Код:
begin if Key=32 then CurPos := mmo1.CaretPos; for i := 0 to pred(item.childscount) do Foo(item[i]); for s:=0 to 19 do if AnsiPos(tv1.Items.Item[s].Text , mmo1.Lines[i])<>0 then begin mmo1.lines.text:=StringReplace(mmo1.lines.text , tv1.Items.Item[s].Text , tv1.Items.Item[Random(5)].Text ,[rfreplaceall]); break; end; mmo1.CaretPos := CurPos; end; |
#6
|
||||
|
||||
![]() Там вроде просто count, навскидку не помню. Для наглядности написал ChildsCount.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |