Вверх ↑
Этот топик читают: Гость
Ответов: 167
Рейтинг: 7
#1: 2020-03-29 20:44:39 ЛС | профиль | цитата
Решил написать свой первый простенький компонент...
Так как я практически не знаю Delphi, элемент писался методом научного тыка, кучи проб и ещё больших куч ошибок... и ... В итоге Debugger пишет :
Borland Delphi  Version 12.0  Copyright (c) 1983,98 Inprise Corporation

[color=#CC3300]C:\Program Files (x86)\HiASM\Elements\delphi\code\hi2DPerspective.pas(27) Error: Types of actual and formal var parameters must be identical

C:\Program Files (x86)\HiASM\Elements\delphi\code\hi2DPerspective.pas(28) Error: Types of actual and formal var parameters must be identical

C:\Program Files (x86)\HiASM\Elements\delphi\code\hiMainForm_35D4000.pas(8) Fatal: Could not compile used unit 'hi2DPerspective.pas'[/color]
Прошу подскажите как это исправить
unit hi2DPerspective;

interface

uses Windows,kol,Share,Debug,OpenGL;

type
THI2DPerspective = class(TDebug)
private
public
_event_onPerspective2D:THI_Event;
_prop_Width:real;
_prop_Height:real;
_data_Width:THI_Event;
_data_Height:THI_Event;

procedure _work_doPerspective2D(var Data:TData; index:word);
end;

implementation

procedure THI2DPerspective._work_doPerspective2D(var Data:TData; index:word);
var
wi,he:integer;

begin
wi := readdata(_data_Width);//WHY ERROR?
he := readdata(_data_Height);//WHY????????????????????????????????????
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glOrtho ( 0, wi, he, 0, -1, 1);//set perspective
glMatrixMode(GL_MODELVIEW);
_hi_OnEvent(_event_onPerspective2D);
end;

end.

P.S : Уже 4 часа пытался что-то с этим сделать, но безрезультатно

Редактировалось 4 раз(а), последний 2020-03-29 20:51:23
карма: 0
c, c++, lua
0
Ответов: 2267
Рейтинг: 676
#2: 2020-03-29 21:07:32 ЛС | профиль | цитата
Может вот эта тема поможет: GL_Ortho (Ортогональная проекция)
А так во первых вы путаете данные. Вам нужно real.
_prop_Width:real;
_prop_Height:real;

А вы

wi,he:integer;

Попрубойте так:
procedure THI2DPerspective._work_doPerspective2D(var _Data:TData; index:word);
var
wi,he: real;

begin
wi := readreal(_data,_data_Width,_prop_Width);
he := readreal(_data,_data_Height,_prop_Width);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glOrtho ( 0, wi, he, 0, -1, 1);//set perspective
glMatrixMode(GL_MODELVIEW);
_hi_OnEvent(_event_onPerspective2D);
end;
Обратите внимание что Data:TData; заменил на _Data:TData;. В объявлении процедуры тоже исправте.

Редактировалось 3 раз(а), последний 2020-03-29 21:19:16
карма: 11

0
Ответов: 167
Рейтинг: 7
#3: 2020-03-29 21:09:34 ЛС | профиль | цитата
sla8a писал(а):
Может вот эта тема поможет: GL_Ortho (Ортогональная проекция)

Спасибо! Выручили

--- Добавлено в 2020-03-29 21:24:44

sla8a писал(а):
Попрубойте так:

Эммм...
C:\Program Files (x86)\HiASM\Elements\delphi\code\hiMainForm_3584140.pas(29) Error: 'END' expected but number found

C:\Program Files (x86)\HiASM\Elements\delphi\code\hiMainForm_3584140.pas(193) Error: Missing operator or semicolon

C:\Program Files (x86)\HiASM\Elements\delphi\code\hiMainForm_3584140.pas(214) Error: Missing operator or semicolon
Теперь сюда главная форма ввязалась

--- Добавлено в 2020-03-29 21:33:59

С консольной программой то же самое

C:\Program Files (x86)\HiASM\Elements\delphi\code\hiConsole_2483518.pas(15) Error: 'END' expected but number found

C:\Program Files (x86)\HiASM\Elements\delphi\code\hiConsole_2483518.pas(37) Error: Missing operator or semicolon

C:\Program Files (x86)\HiASM\Elements\delphi\code\hiConsole_2483518.pas(44) Error: Missing operator or semicolon

[flood]Элемент убийца какой-то [/flood]
Такое кстати уже было один раз ... Но по моему с кодом Главной формы всё норм... Я его не трогал...

--- Добавлено в 2020-03-29 21:44:54

Проверил на другой сборке hiasm... И та же самая ошибка... Очень странно...

Редактировалось 5 раз(а), последний 2020-03-29 21:44:54
карма: 0
c, c++, lua
0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)