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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2013, 01:24   #1
Klafen
 
Регистрация: 14.06.2013
Сообщений: 9
Печаль Borland Pascal For Windows

В общем проблема такая:
Надо написать программу с помощью BPW, используя объекты библиотеки Object Windows. Помаленьку пытаюсь разобраться, делаю все по методичке к лабораторным, разбираю примеры из учебника. И тут самое и интересное:

Компилятор начал ругаться, когда я захотел подцепить Меню к окну программы с помощью функции LoadMenu, перекрыв конструктор Init главной формы:

Код:
Constructor TMyWindow.Init (AParent:PWindowsObject;
ATitle:PChar);
begin
Inherited Init (AParent,ATitle);
Attr.Menu:= LoadMenu(hInstance,'Menu_1'); 
Attr.X:= 100; Attr.Y := 100;
Attr.W:= 400; Attr.H := 300;
end;
При чем ошибка вылетает весьма странная:
Unknown Identifier

То есть я понимаю, что такой функции (LoadMenu) Паскаль не видит, ладно, черт с ней. запихал её в фигурный скобки. Пока дальше поразбираюсь. А дальше надо задать процедуру обработки сдвига мыши, опять такая же фигня, но уже при объявлении процедуры как метода главного окна ругается на WM_MOUSEMOVE, и выдает точно такую же ошибку.

Код:
Type
  PMyWindow = ^TMyWindow;
  TMyWindow=object(TWindow)
    constructor init(AParent:PWindowsObject; ATitle:PChar);
    procedure VMMouseMove (Var MSg:TMEssage); virtual WM_First+WM_MOUSEMOVE;
  end;
В чем может быть проблема?
Klafen вне форума Ответить с цитированием
Старый 18.10.2013, 01:26   #2
Klafen
 
Регистрация: 14.06.2013
Сообщений: 9
По умолчанию

Примеры из методички взяты, в интернете погуглил, нигде такой проблемы не встречал, в разделе Uses пробовал пихать все файлы с расширением *.TPW, которые нашел в папке с Паскалем, и нифига=(
Klafen вне форума Ответить с цитированием
Старый 18.10.2013, 02:17   #3
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Код:
Constructor TMyWindow.Init (AParent:PWindowsObject;
ATitle:PChar);
begin
Inherited; //Просто обращение к родителю
Attr.Menu:= LoadMenu(hInstance,'Menu_1'); 
Attr.X:= 100; Attr.Y := 100;
Attr.W:= 400; Attr.H := 300;
end;
Но я могу ошибатся
Dozent вне форума Ответить с цитированием
Старый 18.10.2013, 03:50   #4
Klafen
 
Регистрация: 14.06.2013
Сообщений: 9
По умолчанию

Dozent, тогда компилятор выдает ошибку:

Method identifier expected

Скорее всего не в этом загвоздка=(
Klafen вне форума Ответить с цитированием
Старый 18.10.2013, 04:16   #5
Klafen
 
Регистрация: 14.06.2013
Сообщений: 9
По умолчанию

Перечислил в разделе Uses программы вообще все возможные модули (файлы *.TPU и *.TPW) какие нашел в папке с паскалем, при компиляции открывается файл Drivers.pas и при объявлении типа

Код:
type

{ Event record }

  PEvent = ^TEvent;
  TEvent = record
    What: Word;
    case Word of
      evNothing: ();
      evMouse: (
        Buttons: Byte;
        Double: Boolean;
        Where: TPoint);
      evKeyDown: (
        case Integer of
	  0: (KeyCode: Word);
          1: (CharCode: Char;
              ScanCode: Byte));
      evMessage: (
        Command: Word;
        case Word of
          0: (InfoPtr: Pointer);
          1: (InfoLong: Longint);
          2: (InfoWord: Word);
          3: (InfoInt: Integer);
          4: (InfoByte: Byte);
          5: (InfoChar: Char));
  end;
ругается на срочку

Код:
Where: TPoint);
Неизвестный идентификатор
Klafen вне форума Ответить с цитированием
Старый 18.10.2013, 04:44   #6
Klafen
 
Регистрация: 14.06.2013
Сообщений: 9
По умолчанию

Данную проблему решил, оказывается надо было в uses добавить wintypes и winprocs, жаль что в методичке об этом ни слова=(
Klafen вне форума Ответить с цитированием
Старый 18.10.2013, 19:24   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от Klafen Посмотреть сообщение
Dozent, тогда компилятор выдает ошибку:

Method identifier expected
Писать inherited без имени метода стало возможно только в Delphi, если не путаю.

Цитата:
Сообщение от Klafen Посмотреть сообщение
надо было в uses добавить wintypes и winprocs, жаль что в методичке об этом ни слова=(
Странно, в любой программе под OWL эта строчка обязательно есть. В версиях Delphi 1-3 (?) даже настройка синонимов на эти модули была.

Мне теперь интересно, что ты будешь делать, когда выяснится, что строчная русская буква "ю" иногда не вводится, а буква "я" вообще не воспринимается или даже ошибку валит. Так в свое время и не победил.
Vapaamies вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неудобство ABC Pascal и глюк Borland Pascal proser93 Помощь студентам 0 19.11.2011 19:01
Не запускается Borland C++ на Windows 7 32-бит shaikan Общие вопросы C/C++ 9 30.06.2011 12:16
Borland Pascal maksim-2804 Паскаль, Turbo Pascal, PascalABC.NET 0 20.06.2011 11:09
как правильно установить Borland Turbo Pascal 7.0 на windows vista izum.muz Софт 2 14.02.2010 11:43
Borland 3.11 и Windows Vista с DOSBox. Alexcomeback Софт 0 13.09.2009 09:02