2 вопроса: mmsystem & id_yes

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

2 вопроса: mmsystem & id_yes

Сообщение redmadhat » 01.10.2008 23:53:23

Использую FPC 2.2.2
1. По ссылке http://freepascal.ru/article//freepasca ... 226211820/ используюу данный материал для обучения. Проблема в том что он невидит mmsystem. При компилации выдает Fatal: Can't find unit mmsystem used by HelloWin. Хотя данная библиотека присуствует в units\windows-base. Вопрос как ее подключить и где?
2. Написал простую прогрумму на winapi:
program primer;
uses
Windows;
begin
if MessageBox(0,'Нажми на кнопку и я угадаю какую Вы нажали','Это моя первая программа',mb_yesno) =id_yes
then MessageBox(0,'Это кнопка Да','Да',mb_ok)
else MessageBox(0,'Это кнопка Нет','Нет',mb_ok);
end.

Компилдятор ругается на Identifier not found "id_yes". Он не нашел константу id_yes. Вопрос как ее найти!
redmadhat
незнакомец
 
Сообщения: 3
Зарегистрирован: 01.10.2008 22:06:00

Re: 2 вопроса: mmsystem & id_yes

Сообщение Ne1r0N » 02.10.2008 07:42:50

redmadhat
Надо написать не id_yes а IDYES
Ne1r0N
незнакомец
 
Сообщения: 2
Зарегистрирован: 18.09.2008 10:01:56

Re: 2 вопроса: mmsystem & id_yes

Сообщение redmadhat » 02.10.2008 08:54:05

Понял! Спасибо!
Значит названия констант отличаются! А где найти список этих констант, за будущее?
redmadhat
незнакомец
 
Сообщения: 3
Зарегистрирован: 01.10.2008 22:06:00

Re: 2 вопроса: mmsystem & id_yes

Сообщение Ne1r0N » 02.10.2008 12:34:26

redmadhat
Можно в самом редакторе кода нажать правой кнопкой мышки по слову IDYES и выбрать "найти объявления" или зажать ctrl и щёлкнуть по этому слову, и сразу откроется тот модуль, в котором описаны данные константы.
Ne1r0N
незнакомец
 
Сообщения: 2
Зарегистрирован: 18.09.2008 10:01:56

Re: 2 вопроса: mmsystem & id_yes

Сообщение redmadhat » 03.10.2008 17:29:17

Нельзя. Я пробовал. Говорит что нет документации, чтобы легче переносился??? :?
redmadhat
незнакомец
 
Сообщения: 3
Зарегистрирован: 01.10.2008 22:06:00

Re: 2 вопроса: mmsystem & id_yes

Сообщение v-t-l » 05.10.2008 12:29:37

redmadhat писал(а):Нельзя. Я пробовал. Говорит что нет документации, чтобы легче переносился???

В качестве IDE - Lazarus поудобнее будет. А FP-IDE - слабоват и глючноват. :)
v-t-l
энтузиаст
 
Сообщения: 728
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: 2 вопроса: mmsystem & id_yes

Сообщение Vadim » 05.10.2008 15:42:37

redmadhat
Вообще-то завсегда правильно было писать IDYES. Об этом даже и в MSDN написано. А ID_YES - была такая штука в Delphi, вот только зачем она там сидела - абсолютно непонятно. Возможно введена была когда-то для совместимости с чем-то в Delphi 1... :)

Добавлено спустя 16 минут 19 секунд:
redmadhat
Если открыть файл настроек компилятора fpc.cfg, то там можно найти строчки, которые указывают компилятору, где искать готовые модули:
-FuD:\progs\pascal\fpc222/units/$FPCTARGET/rtl
-FuD:\progs\pascal\fpc222/units/$FPCTARGET/*

$FPCTARGET - в данном случае означают i386-win32, т.к. я сейчас сижу в Windows.
Что это означает? В первую очередь компилятор ищет модули в каталоге D:\progs\pascal\fpc222\units\i386-win32\rtl и если он там не нашёл то чего искал, то начинает по очереди обшаривать подкаталоги, которые находятся в каталоге i386-win32, о чём говорит звёздочка во второй строчке. Посмотрите, так ли у Вас? Можете, чтобы компилятор долго модули не искал, добавить ему строку с каталогом нужных модулей, например:
-FuD:\progs\pascal\fpc222/units/$FPCTARGET/rtl
-FuD:\progs\pascal\fpc222/units/$FPCTARGET/winunits-base
-FuD:\progs\pascal\fpc222/units/$FPCTARGET/*

Это полезно, когда процессор не особо быстрый, т.к. подавляющее большинство первоочерёднонужных модулей находятся в каталоге rtl и winunits-base. Последний нужен, если Вы собираетесь делать окошки в винде невиданной красоты и функциональности. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru
cron