CreateHatchBrush - как подключить?

Вопросы программирования и использования среды Lazarus.

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

CreateHatchBrush - как подключить?

Сообщение sergant » 07.09.2009 02:05:57

Добрый день, коллеги!
Пытаюсь применить привычную для делфей конструкцию:

SelectObject(hWnd, CreateHatchBrush(BrushStyle, BrushColor));

Но компилятор не находит CreateHatchBrush. Подскажите пожалуйста как быть?
sergant
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.09.2009 11:10:44

Re: CreateHatchBrush - как подключить?

Сообщение Павел Ишенин » 07.09.2009 02:15:43

Uses LCLIntf. А если на windows, то Uses Windows.

Добавлено спустя 38 секунд:
SelectObject(hWnd, CreateHatchBrush(BrushStyle, BrushColor));

Может SelectObject(hDC, CreateHatchBrush(BrushStyle, BrushColor));
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: CreateHatchBrush - как подключить?

Сообщение sergant » 07.09.2009 11:30:16

Спасибо за Ваш отклик. Раскрою свой вопрос подробнее:

Модуль LCLIntf подключен. Но не находится именно CreateHatchBrush - возможно с этим методом какая другая библиотека - или метод не реализован... или не подключен...?
sergant
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.09.2009 11:10:44

Re: CreateHatchBrush - как подключить?

Сообщение Vadim » 07.09.2009 12:27:28

sergant
Попробуйте контекстный поиск... :) Клянусь своей треуголкой, что эта функция благополучно объявлена, причём для Windows она объявлена именно в модуле Windows. ;)
Скажите для начала, Вы в какой ОС работаете?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: CreateHatchBrush - как подключить?

Сообщение sergant » 07.09.2009 12:41:43

сижу под Windows XP пишу под Windows CE

Объявлены все модули, менял их местами на всякий случай...

uses
LResources, Forms, Classes, Windows, Types, SysUtils, Controls, Graphics, ExtCtrls, Math, LCLType, LCLIntf;

Загвоздка только в этом методе - CreateHatchBrush. Искал по лазарусу на вхождение CreateHatchBrush в какой нить файл. Метод объявлен в файле Func.inc.

Но как его подключить в проект?

В windows.ppu тоже есть - но это видимо скомпиленный файл - типа dcu в дельфях... А аналога pas файла где этот CreateHatchBrush объявлен нет.

Но даже если и windows.ppu - то почему тогда не подхватывается? Пишет: Error: Identifier not found "CreateHatchBrush".

FPC 2.3.1
Версия #: 0.9.29 бета
sergant
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.09.2009 11:10:44

Re: CreateHatchBrush - как подключить?

Сообщение Vadim » 07.09.2009 13:07:33

Когда Вы подключаете модуль в строке Uses, то компилятор сначала ищет именно файл .ppu, потом сравнивает его с иходным кодом (файл .pas с тем же именем) и если время-дата у обоих файлов совпадает, то добавляются функции из .ppu файла, если не совпадают, то сначала компилируется подключаемый модуль.
sergant писал(а):Но даже если и windows.ppu - то почему тогда не подхватывается? Пишет: Error: Identifier not found "CreateHatchBrush".

1. Для начала тем же контекстным поиском проверьте есть ли в Вашем windows.ppu эта функция.
2. Попробуйте поставить модуль Windows на первое место.
3. Проверьте в меню "Окружение - Параметры", правильно ли у Вас написан путь к компилятору FPC ("Путь к компилятору (fpc.exe)").
4. Проверьте, есть ли по этому рядом с файлом компилятора fpc.exe файл его настроек - fpc.cfg.
5. Проверьте в файле fpc.cfg, есть ли опция задающая путь, где искать модули самого fpc, которые он должен подключать к Вашей программе. Например, у меня это:
-FuD:\progs\fpc22/units/i386-win32/rtl
-FuD:\progs\fpc22/units/i386-win32/*
6. Проверьте, по этому ли пути, который указан в файле fpc.cfg, лежит Ваш модуль windows.ppu.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: CreateHatchBrush - как подключить?

Сообщение sergant » 07.09.2009 13:45:49

Все сделал - проверил. Результата нет. Возможно дело в том, что я еще только вникаю в Лазарус. Но странные вещи есть.

C:\lazarus\fpc\2.3.1\units\i386-win32\rtl\widows.ppu - найден

а вот файла windows.pas нет нигде. Возможно поэтому CreateHatchBrush и не находится. Хотя в windows.ppu CreateHatchBrush есть. По крайней мере по поиску слово находится.

Ставил следующие пакеты:

Lazarus-0.9.29-21533-fpc-2.3.1-20090902-win32.exe
Lazarus-0.9.29-21533-fpc-2.3.1-20090902-cross-arm-wince-win32.exe

Может быть нужно было еще что-то поставить - пакет с pas файлами какойнибудь? где был бы этот windows.pas...
Последний раз редактировалось sergant 07.09.2009 14:07:50, всего редактировалось 1 раз.
sergant
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.09.2009 11:10:44

Re: CreateHatchBrush - как подключить?

Сообщение Vadim » 07.09.2009 14:00:46

sergant писал(а):nwidows.ppu

Это нечто, науке неизвестное... :)
Я с WinCE не знаком, может там так и называется, но что-то у меня сомнения по этому поводу.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: CreateHatchBrush - как подключить?

Сообщение sergant » 07.09.2009 14:07:20

Извините ошибся в буковке - конечно же windows.ppu (предыдущий свой пост исправил для дальнейшего правильного восприятия)
sergant
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.09.2009 11:10:44

Re: CreateHatchBrush - как подключить?

Сообщение Vadim » 07.09.2009 14:13:01

Ха, всё понятно. Скачал я только что этот самый cross-arm-wince, так там действительно эта функция отсутствует в принципе. Видимо это какая то особенность WinCE. Так что или замените эту функцию на аналогичную, но существующую, либо подайте в суд на Билла Гейтса. :)

Добавлено спустя 4 минуты:
Исходник, т.е. windows.pas, надо брать отсюда:
ftp://ftp.freepascal.org/pub/fpc/snapshot/v23/source/fpc.zip
Это исходники для всех платформ, поэтому найдите в нём каталог WinCE и там будут лежать pas-файлы для WinCE, в том числе и Windows.pas.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: CreateHatchBrush - как подключить?

Сообщение Mr.Smart » 07.09.2009 14:27:26

В WinCE данная функция неподдерживается
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: CreateHatchBrush - как подключить?

Сообщение sergant » 07.09.2009 14:47:29

Ясно - спасибо за помощь. Тогда в заключение темы вопрос - какой заменить? Или заливки вообще кроме сплошной не поддерживаются?
sergant
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.09.2009 11:10:44

Re: CreateHatchBrush - как подключить?

Сообщение Mr.Smart » 07.09.2009 15:06:08

Как всегда читаем MSDN http://msdn.microsoft.com/en-us/library/aa922171.aspx
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru