Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Перевод из паскаля на дельфи


Автор: Mr_Nuke 19.5.2009, 18:16
Добрый день форумчане! 
Взялся помочь хорошей знакомой, она прислала программу и попросила перевести ее из паскаля в дельфи. Сначала как-то не сообразил, а потом вижу, что у дельфи и паскаля код одинаковый! Или может я что не понимаю? 
Программа под дос, не особо сложная, для студентов!
Возможности связаться, уточнить, нету(

Автор: bems 19.5.2009, 19:06
Код не одинаковый ,но многие программы работают с минимальными изменениями. Покажи что за код хоть...

Автор: Mr_Nuke 19.5.2009, 20:14
Код большой и разбит на модули! тысячу строк с лихвой будет :(

Нашел загвоздку! В паскале используется консольная графика. 
Искал готовые модули, аналог crt для дельфи, мож у кого есть готовое?

так же, подскажите, в каком модуле находятся KeyEvent, MouseEvent, dwMousePosition?


Автор: Keeper89 19.5.2009, 20:56
Mr_Nuke, опишите задачу и предоставьте основные блоки и модули кода.

Автор: Mr_Nuke 19.5.2009, 21:11
Не особо понимаю, какие блоки кода вы хотите увидеть. Но если быть ближе к теме, пытаюсь, что бы дельфи воспринимал команды "window", gotoXY, textbackground, textcolor и т.д.

Модуль crt взял отсюда http://forum.sources.ru/index.php?showtopic=73371&st=0&#entry518611

Выдает ошибку на функции 
Код

function KeyPressed: Boolean;
var
  NumberOfEvents: DWORD;
  NumRead: DWORD;
  InputRec: TInputRecord;
  Pressed: boolean;
begin
  Pressed := False;
  GetNumberOfConsoleInputEvents(hConsoleInput, NumberOfEvents);
  if NumberOfEvents > 0 then
  begin
    if PeekConsoleInput(hConsoleInput, InputRec, 1,NumRead) then
    begin
      if (InputRec.EventType = KEY_EVENT) and
        (InputRec{$IfDef NEW_STYLES}.Event{$EndIf}.KeyEvent.bKeyDown) then
      begin
        Pressed := True;
        {$IfDef MOUSE_IS_USED}
        MouseButtonPressed := False;
        {$EndIf}
      end
      else
      begin
        {$IfDef MOUSE_IS_USED}
        if (InputRec.EventType = _MOUSE_EVENT) then
        begin
          with InputRec{$IfDef NEW_STYLES}.Event{$EndIf}.MouseEvent do
          begin
            MousePosX := dwMousePosition.X;
            MousePosY := dwMousePosition.Y;
            if dwButtonState = FROM_LEFT_1ST_BUTTON_PRESSED then
            begin
              MouseEventTime := Now;
              MouseButtonPressed := True;
              {If (dwEventFlags AND DOUBLE_CLICK)<>0 Then Begin}
              {End;}
            end;
          end;
        end;
        ReadConsoleInput(hConsoleInput, InputRec, 1,NumRead);
        {$Else}
        ReadConsoleInput(hConsoleInput, InputRec, 1,NumRead);
        {$EndIf}
      end;
    end;
  end;
  Result := Pressed;
end;


а точнее, на строке 
Код

(InputRec{$IfDef NEW_STYLES}.Event{$EndIf}.KeyEvent.bKeyDown) then


пишет undeclared identifier 'KeyEvent'

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)