![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Atreides |
![]()
Сообщение
#1
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Вот столкнулся с проблемкой, есть программка, написанная на 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]
0,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 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Graph и Graphics это разные вещи совершенно
![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Atreides |
![]()
Сообщение
#3
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Цитата Graph и Graphics это разные вещи совершенно smile.gif В смысле нужно использовать Graph? -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
100% не знаю, но мне кажется в делфи это не реально
добавлено: Хотя есть ведь crt для делфи ... может и граф переписаный есть -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
мисс_граффити |
![]()
Сообщение
#5
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
в делфи обязательно должно быть консольное приложение?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Atreides |
![]()
Сообщение
#6
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Цитата в делфи обязательно должно быть консольное приложение? Нет, не обязательно… -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
Артемий |
![]()
Сообщение
#7
|
![]() Помощник капитана ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 601 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Ну тогда мне кажется просто делай форму и на ней рисуй с помощью Canvas.Там вроде многие функции графа есть...
-------------------- Dum spiro spero!
|
Atreides |
![]()
Сообщение
#8
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Забил на Delphi, сделал в Pascal’е.
-------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 3:46 |