Помощь - Поиск - Пользователи - Календарь
Полная версия: Отладка консольного приложения
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Atreides
Вот столкнулся с проблемкой, есть программка, написанная на Turbo Pascal 7.0, в нем она компилировалась и работала, но возникла задача перетащить её на Delphi. Выбрал в новом проекте Console Application и вставил код, но откомпилировать не могу, почти на каждой строчке выдает ошибку? Немного подправил, но всё равно непрет, где ошибка?
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils,Graphics;

{$DEFINE CS1 : используется в пункте 4.04.02 }
{$DEFINE CS2 : используется в пункте 4.04.06* }

CONST
NS = 7;
NP = 4;
TYPE
AGAF = Array[1..NS,1..NP] Of Real;
CONST
IDES : AGAF =(( 01, 00, 0.4800, 0.000),
( 02, 01, 0.2400, -1.720),
( 03, 02, 0.1200, -0.310),
( 04, 03, 0.1600, -2.030),
( 05, 04, 0.0200, 2.530),
( 06, 05, 0.0100, 0.800),
( 07, 06, 0.1000, -0.920));

var

AC :TCanvas;//ArcCoordsType;
I,J : Integer;
SA : Real;
SF : Real;
APV : Array[1..NS,1..NS-1,0..1] Of Integer;
ADNV : Array[1..NS,1..NS-1,0..1] Of Integer;
ARF : Array[1..NS-1] Of Real;
CONST
SX0=325; SY0=225;
VAR
X,Y : Integer;
XM,YM : Integer;
DX,DY : Integer;
D,R,GE : Integer;
CONST
TB0=15; TB1= 7;
TC0= 8; TC1= 1; TC2= 6;
ATC : Array[1..NS] Of Word = (8,1,2,3,4,5,6);
SV=12; SG=8;
VAR
S,S0 : String;
begin
{ TODO -oUser -cConsole Main : Insert code here }
D:=Detect;
InitGraph(D,R,'');
GE:=GraphResult;
If GE<>grOk Then
Begin
WriteLn('Ошибка открытия графического режима:',GraphErrorMsg(GE)); Exit
End;
SetBkColor(TB0); SetColor(TC0);
SetViewPort(0,0,639,479,ClipOn);
OutTextXY(1,1,'Программа DAP_01_1.PAS (BORLAND PASCAL 7.0)');
OutTextXY(580,1,'Окно 1');
OutTextXY(SG*4,SV*2,

OutTextXY(SG*1,SV*5,'Параметры сигнала АЛСН');
OutTextXY(SG*2,SV*7,'Гармо-'); OutTextXY(SG*9,SV*7,'Ампли-');
OutTextXY(SG*17,SV*7,'Фаза,');
OutTextXY(SG*2,SV*8,' ника '); OutTextXY(SG*9,SV*8,' туда ');
OutTextXY(SG*17,SV*8,'рад. ');
For I:=1 To NS Do
For J:=1 To 3 Do
Begin
If J=1 Then Str(IDES[I,J+1]3.gif0,S) Else Str(IDES[I,J+1]:5:2,S);
OutTextXY(SG*((J-1)*7+2),SV*(I+8),S);
End;
OutTextXY(SG*1,SV*17,'ПРИМЕЧАНИЯ.');
OutTextXY(SG*1,SV*18,' 1. Амлитудно-фазовые');
OutTextXY(SG*1,SV*19,' характеристики изо-');
OutTextXY(SG*1,SV*20,' бражаются только для');
OutTextXY(SG*1,SV*21,' гармоник, амплитуда');
OutTextXY(SG*1,SV*22,' которых не менее ');
OutTextXY(SG*1,SV*23,' 0.09.');
OutTextXY(SG*1,SV*24,' 2. На амлитудно-фазовых');
OutTextXY(SG*1,SV*25,' характеристиках циф-');
OutTextXY(SG*1,SV*26,' рами обозначены но-');
OutTextXY(SG*1,SV*27,' мера гармоник.');

SA:=600;
SF:=360/(2*Pi);
PutPixel(SX0,SY0,ATC[1]);
SetColor(ATC[1]);
MoveTo(SX0,SY0); LineRel(Round(IDES[1,3]*SA),0);
XM:=GetX; YM:=GetY;
APV[1,1,0]:=XM; APV[1,1,1]:=YM;
{$IFDEF CS1 Проверка значения координат текущего указателя }
Str(XM,S); Str(YM,S0); OutTextXY(SG*2,SV*30,S); OutTextXY(SG*10,SV*30,S0);
{$ENDIF}

SetColor(TB0);
For I:=Round(IDES[2,1]) To NS Do
If IDES[I,3]>=0.09 Then
For J:=1 To Round(IDES[I,2]) Do
Begin
ARF[J]:=IDES[I,4]+
(2*Pi/IDES[I,2])*(J-1);
Arc(SX0,SY0,1,Round(ARF[J]*SF),
Round(IDES[I,3]*SA));
GetArcCoords(AC);
APV[I,J,0]:=AC.XEnd;
APV[I,J,1]:=AC.YEnd;
End;
For I:=Round(IDES[2,1]) To NS Do
If IDES[I,3]>=0.09 Then
Begin
SetColor(ATC[I]);
For J:=1 To Round(IDES[I,2]) Do
Line(SX0,SY0,
APV[I,J,0],APV[I,J,1]);
End;
SetColor(ATC[1]);
Circle(APV[1,1,0],APV[1,1,1],3);
SetFillStyle(1,ATC[1]);
FloodFill(APV[1,1,0]+1,APV[1,1,1]+1,ATC[1]);

For I:=Round(IDES[2,1]) To NS Do
If IDES[I,3]>=0.09 Then
Begin
SetColor(ATC[I]);
For J:=1 To Round(IDES[I,2]) Do
Begin
Circle(APV[I,J,0],APV[I,J,1],3);
SetFillStyle(1,ATC[I]);
If APV[I,J,0]>=SX0 Then DX:=1 Else DX:=-1;
If APV[I,J,1]>=SY0 Then DY:=1 Else DY:=-1;
FloodFill(APV[I,J,0]+DX,APV[I,J,1]+DY,ATC[I]);
End;
End;
{$IFDEF CS2 }
PutPixel(SG*02,SV*30,TC0);
SetColor(TC1); OutTextXY(SG*2,SV*30,'0');
MoveTo(SG*10,SV*30);
XM:=GetX; YM:=GetY;
PutPixel(XM,YM,TC0);
Str(01,S);
SetColor(TC2); OutTextXY(XM,YM,S);
{$ENDIF}

SetColor(ATC[1]); Str(Round(IDES[1,2]),S);
OutTextXY(APV[1,1,0]+ADNV[1,1,0],APV[1,1,1]+ADNV[1,1,1],S);

For I:=Round(IDES[2,1]) To NS Do
If IDES[I,3]>=0.09 Then
Begin
SetColor(ATC[I]);
Str(Round(IDES[I,2]),S);
For J:=1 To Round(IDES[I,2]) Do
OutTextXY(APV[I,J,0]+ADNV[I,J,0],APV[I,J,1]+ADNV[I,J,1],S);
End;

SetColor(TC0);
OutTextXY(SG,464,'Для выхода из программы нажмите любую клавишу.');
Repeat Until KeyPressed;
CloseGraph;
end.
klem4
Graph и Graphics это разные вещи совершенно smile.gif
Atreides
Цитата
Graph и Graphics это разные вещи совершенно smile.gif

В смысле нужно использовать Graph?
klem4
100% не знаю, но мне кажется в делфи это не реально

добавлено: Хотя есть ведь crt для делфи ... может и граф переписаный есть
мисс_граффити
в делфи обязательно должно быть консольное приложение?
Atreides
Цитата
в делфи обязательно должно быть консольное приложение?

Нет, не обязательно…
Артемий
Ну тогда мне кажется просто делай форму и на ней рисуй с помощью Canvas.Там вроде многие функции графа есть...
Atreides
Забил на Delphi, сделал в Pascal’е.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.