|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.04.2012, 16:53 | #1 |
Новичок
Джуниор
Регистрация: 11.04.2012
Сообщений: 2
|
Не могу скомпилировать.
Не могу скомпилировать выдает ошибки (места помечены в программе), помогите! Кто-может разместите исправленный вариант.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Grids; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; StringGrid1: TStringGrid; Button2: TButton; TreeView1: TTreeView; Memo1: TMemo; Button3: TButton; Button5: TButton; procedure FormCreate(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Type Tlnf=record s: string[80]; key: Longword; end; Ttree=^tree; Tree=record lnf: Tlnf; A1:Ttree; A2:Ttree; end; Var Proot:Ttree; n: integer; implementation {$R *.dfm} //Создание нового листа дерева Procedure MakeList(Var p:Ttree; lnf:Tlnf); begin New(p); p^.lnf:=lnf; p^.A1:=Nil; p^.A2:=Nil; end; //Добовление листа в дерево Procedure Dobtree(Proot:Ttree; lnf:Tlnf); Var P,q: Ttree; bl: boolean; begin p:=Proot; while p<>Nil do begin q:=p; bl:=lnf.key<p^.lnf.key; //q указатель на предыдущий элемент if bl then p:=p^.A1 else p:=p^.A2; end; MakeList(p,lnf); if bl then q^.A1:=p else q^.A2:=p; end; Procedure ViewTree(p:Ttree; var kl: integer); begin if p<>Nil then begin if kl=-1 then Form1.TreeView1.Items.AddFirst(Nil, p^.lnf.s+''+IntToStr(p^.lnf.key)) else Form1.TreeView1.Items.AddChildFirst (Form1.TreeView1.Items[kl], p^.lnf.s+''+IntToStr(p^.lnf.key)); lnc(kl); //Вот здесь выдает ошибку ViewTree(p^.A1,kl); ViewTree(p^.A2.kl); //Вот здесь выдает ошибку Dec(kl); end; end; //Прямой обход Procedure WrtTree(Var p:Ttree); begin if p<>Nil then begin Form1.Memo1.Lines.Add(p^.lnf.s); WrtTree(p^.A1); WrtTree(p^.A2); end; end; //Сколько веток на дереве procedure PrintTree(p: Ttree; n: byte; var s: integer); begin if p<>nil then begin if (p^.left = nil) and (root^.right = nil) then //Вот здесь выдает ошибку s:=s+1; PrintTree(p^.left,n+1,s); writeln(p^.info:2*n); PrintTree(p^.right,n+1,s); end; end; //Удаление дерева из памяти Procedure DeleteTree(var p:Ttree); begin if p=nil then Exit; DeleteTree(p^.A1); DeleteTree(p^.A2); Dispose(p); p:=nil; end; procedure TForm1.FormCreate(Sender: TObject); begin n:=9; Edit1.Text:=IntToStr(n); Memo1.Clear; With StringGrid1 do begin Cells[0,0]:='F.I.O'; Cells[1,0]:='Number'; Cells[0,1]:='Eugene'; Cells[1,1]:='100005'; Cells[0,2]:='Stiv'; Cells[1,2]:='100002'; Cells[0,3]:='Paris'; Cells[1,3]:='100004'; Cells[0,4]:='Dan'; Cells[1,4]:='100001'; Cells[0,5]:='Bill'; Cells[1,5]:='100007'; Cells[0,6]:='Mat'; Cells[1,6]:='100006'; Cells[0,7]:='Bob'; Cells[1,7]:='100008'; Cells[0,8]:='Jack'; Cells[1,8]:='100000'; Cells[0,9]:='Tod'; Cells[1,9]:='100009'; end; end; //Воод данных в дерево procedure TForm1.Button3Click(Sender: TObject); var i: integer; A: array[1..10] of Tlnf; begin for i:=1 to n do with A[i] do begin s:=StringGrid1.Cells[0,i]; key:=StrToInt(StringGrid1.Cells[1,i]); end; MakeList(Proot, a[1]); for i:=2 to n do DobTree(Proot, a[i]); end; procedure TForm1.Button1Click(Sender: TObject); begin n:=StrToInt(Edit1.Text); StringGrid1.RowCount:=N+1; end; //Удалить дерево procedure TForm1.Button5Click(Sender: TObject); begin //DeleteTree(proot); Memo1.Clear; TreeView1.Items.Clear; end; //Отобразить дерево procedure TForm1.Button2Click(Sender: TObject); Var kl: integer; begin kl:=-1; TreeView1.Items.Clear; ViewTree(Proot, kl); TreeView1.FullExpand; end; end. Скачать её можно здесь: http://rghost.ru/37541315 Последний раз редактировалось graff195; 12.04.2012 в 14:38. |
11.04.2012, 17:00 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Дык ошибки-то какие? Вряд ли кто-то захочет кидать все используемые тут компоненты на форму, чтобы скомпилировать, а .dfm файл вы не дали.
И используйте тег [CODE] (значок # ) для сохранения форматирования и подсветки кода в сообщении. Кнопка Правка снизу справа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не могу скомпилировать программу | newuserc | Общие вопросы Delphi | 8 | 02.04.2012 19:53 |
MinGW Studio. Не могу скомпилировать | БалаШагаЛ | Общие вопросы C/C++ | 6 | 01.12.2011 23:12 |
есть текст программы, но не могу скомпилировать | fopen | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 02.05.2011 11:42 |
C и ассемблер, не могу скомпилировать | Olen' | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 19.02.2009 19:57 |