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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 16:53   #1
graff195
Новичок
Джуниор
 
Регистрация: 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.
graff195 вне форума Ответить с цитированием
Старый 11.04.2012, 17:00   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык ошибки-то какие? Вряд ли кто-то захочет кидать все используемые тут компоненты на форму, чтобы скомпилировать, а .dfm файл вы не дали.

И используйте тег [CODE] (значок # ) для сохранения форматирования и подсветки кода в сообщении. Кнопка Правка снизу справа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу скомпилировать программу 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