Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FillRect & TextOut, Проблема с параметрами... 
:(
    Опции темы
Pakshin A. S.
  Дата 10.7.2003, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Пытаюся сделать следующее:
Код

  (*---*)
  FillRect(Rect);
  TextOut(Rect.Left, Tect.Top, (Control as TListBox).Items[Index]);
  (*---*)

На старом Windowse всё работало, но тут вылетает ошибка:
Цитата

  ... не хватает параметров...

Оказывается определение процедур здеся следующее:
Цитата

  function FillRect(hDC: HDC; const lprc: TRect; hbr: HBRUSH): Integer; stdcall;
  function TextOut(DC: HDC; X, Y: Integer; Str: PChar; Count: Integer): BOOL; stdcall;

Хотя Delphi одно и то же, т. е. с одного диска ставил.

А теперь вопросы:
1) Что такое hDC: HDC (DC: HDC) и с чем это едят;
2) Что такое hbr: HBRUSH и с чем это едят;
3) При чём в TextOut Count: Integer.



P. S.
В Help лазил, там всё описывается по другому:
Цитата

  procedure FillRect(const Rect: TRect);
  procedure TextOut(X, Y: Integer; const Text: string);

PM   Вверх
&-ray
Дата 10.7.2003, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 15.4.2003
Где: Казахстан, г Аста на

Репутация: нет
Всего: нет



делай все через canvas:

canvas.textout
canvas.fillrect


--------------------
"Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б.

--------------------
И снова мышь беру я в руки
Куда иду? - Конечно в сруки!
PM MAIL WWW   Вверх
Mikel
Дата 11.7.2003, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Т.е. сначала создай canvas, получи гр. дескриптор этого окна- это и есть то самое hDC, по его Handle(hnd)
Canvas.Handle:=GetDC(hnd)


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
<Spawn>
Дата 11.7.2003, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Скорее всего, что эти функции из разных модулей. И вторые из них явно прототипы АПИ. Самое простое конечно использовать Canvas. Но если хочется с АПИ тогда для получения ссылки на контекст утсройства юзай GetDC(Или GetWindowDC, если нужно добраться до рамок окна например). Для использования HBRUSH можно воспользоваться готовой кистью, например, Cnavas.Brush.Handle. А можно через Апи создать новую кисть - CreateBrushIndirect. Короче бери все что я тут сказал и жми F1))))))


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
B2_Russia
Дата 11.7.2003, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



По-моему, можно без GetDC()
HDC есть практически у всего.

Попробуй так:

function FillRect(Canvas.Handle, rect; Canvas.Brush.Handle);

Ну и для TextOut, чтото подобное.
PM WWW ICQ   Вверх
&-ray
Дата 11.7.2003, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 15.4.2003
Где: Казахстан, г Аста на

Репутация: нет
Всего: нет



Зачем такие сложности confused.gif
Pakshin A. S. работает со следующими параметрами:
Цитата

CODE

  (*---*)
  FillRect(Rect);
  TextOut(Rect.Left, Tect.Top, (Control as TListBox).Items[Index]);
  (*---*)

И именно такая структура передается, если работать через канву, т.е.
Код

form1.canvas.FillRect(Rect);
form1.canvas.TextOut(Rect.Left, Tect.Top, Text: string);



--------------------
"Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б.

--------------------
И снова мышь беру я в руки
Куда иду? - Конечно в сруки!
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.