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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> форма, ошибка 
:(
    Опции темы
авганец
Дата 4.11.2005, 04:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем привет!
Почему то код не работает, выдаёт ошибку на wnd_dc:=getdc(ahwnd);
В чём дело не кто не подскажет

Код

procedure TForm1.FormCreate(Sender: TObject);
var
back_color: colorref;
wnd_dc,hdc_bmp: hdc;
width,height,x,x0,y:integer;
begin
width:=bitmap.width;
height:=bitmap.height;
wnd_dc:=getdc(ahwnd);
hdc_bmp:=createcompatibledc(wnd_dc);
selectobject(hdc_bmp,bitmap.handle);
back_color:=getpixel(hdc_bmp,0,0);
tmp_rgn:=cleaterectrgn(0,0,0,0);
wid_rgn:=cleaterectrgh(0,0,0,0);
x:=0;
for y:=0 to height -1 do
begib
while (x<width -1) do
begin
while ((getpixel(hdc_bmp,x,y)=back_color) and
(x<width)) do inc (x);
if (x<>width) then
begin
x0:=x;
while((getpixel(hdc_bmp,x,y)<>back_color) and
(x<width)) do inc(x);
tmp_rgn:=cleaterectrgn(x0,y,x,y+1);
combinergn(wnd_rgn, wnd_rgn, tmp_rgn, rgn_xor);
end;
x:=0;
end;
deleteobject(tmp_rgn);
deletedc(hdc_bmp(;
setwindowrgn(ahwnd,wnd_reg,true);
deleteobject(wnd_rgn);
end;


Это сообщение отредактировал(а) Alex - 4.11.2005, 08:21
  Вверх
Alexeis
Дата 4.11.2005, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Вероятно Handle ahwnd не существует


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
авганец
Дата 4.11.2005, 12:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











как её создать
  Вверх
Zero
Дата 4.11.2005, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата
как её создать

Код

var
  ...
  ahwnd:HWND;
  ...

Цитата
width,height,x,x0,y:integer;

Зарезервированые слова также использовать нельзя "width,height"
PM MAIL ICQ   Вверх
авганец
Дата 5.11.2005, 03:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











что нужно зделать что бы форма имела такую надпись
procedure TForm1.CreateBWindow(ahwnd:hwnd; bitmap:tbitmap)
не чё неполучается smile
  Вверх
Zero
Дата 7.11.2005, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата
что нужно зделать что бы форма имела такую надпись
procedure TForm1.CreateBWindow(ahwnd:hwnd; bitmap:tbitmap)
не чё неполучается

Код

  Form1.Caption := 'procedure TForm1.CreateBWindow(ahwnd:hwnd; bitmap:tbitmap)';

Если не так, то скажи конкретно, на словах ─ как должно определятся её имя???
PM MAIL ICQ   Вверх
авганец
Дата 8.11.2005, 09:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











не Zero это я не так выразился не что бы на форме надпись такая была, а что бы в форме место
procedure TForm1.FormCreate(Sender: TObject);
стояла такая надпись в Unit1 procedure TForm1.CreateBWindow(ahwnd:hwnd; bitmap:tbitmap)

  Вверх
Alexeis
Дата 8.11.2005, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата
что бы в форме место
procedure TForm1.FormCreate(Sender: TObject);
стояла такая надпись в Unit1 procedure TForm1.CreateBWindow(ahwnd:hwnd; bitmap:tbitmap)

Зачем это нужно smile
такая замена ни к чему хорошему не приведет



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
авганец
Дата 8.11.2005, 11:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











приведёт я дуиаю вот из-за этой надписи у меня программа не работает
она сейчас выглядит так
Код
procedure TForm1.FormCreate(Sender: TObject);
var
back_color: colorref;
wnd_dc,hdc_bmp: hdc;
width,height,x,x0,y:integer;
bitmap: TBitmap;
ahwnd:HWND;
tmp_rgn,wnd_rgn: hrgn;
begin
width:=bitmap.width;
height:=bitmap.height;
wnd_dc:=getdc(aHwnd);
hdc_bmp:=createcompatibledc(wnd_dc);
selectobject(hdc_bmp,bitmap.handle);
back_color:=getpixel(hdc_bmp,0,0);
tmp_rgn:=createrectrgn(0,0,0,0);
wnd_rgn:=createrectrgn(0,0,0,0);
x:=0;
for y:=0 to height -1 do
begin
while (x<width -1) do
begin
while ((getpixel(hdc_bmp,x,y)=back_color) and
(x<width)) do inc (x);
if (x<>width) then
begin
x0:=x;
while((getpixel(hdc_bmp,x,y)<>back_color) and
(x<width)) do inc(x);
tmp_rgn:=createrectrgn(x0,y,x,y+1);
combinergn(wnd_rgn, wnd_rgn, tmp_rgn, rgn_xor);
end;
x:=0;
end;
deleteobject(tmp_rgn);
deletedc(hdc_bmp);
setwindowrgn(ahwnd,wnd_rgn,true);
deleteobject(wnd_rgn);
end;

а надо вот так

TForm1.CreateBWindow(ahwnd:hwnd; bitmap:tbitmap);
var
back_color: colorref;
wnd_dc,hdc_bmp: hdc;
width,height,x,x0,y:integer;
bitmap: TBitmap;
ahwnd:HWND;
tmp_rgn,wnd_rgn: hrgn;
begin
width:=bitmap.width;
height:=bitmap.height;
wnd_dc:=getdc(aHwnd);
hdc_bmp:=createcompatibledc(wnd_dc);
selectobject(hdc_bmp,bitmap.handle);
back_color:=getpixel(hdc_bmp,0,0);
tmp_rgn:=createrectrgn(0,0,0,0);
wnd_rgn:=createrectrgn(0,0,0,0);
x:=0;
for y:=0 to height -1 do
begin
while (x<width -1) do
begin
while ((getpixel(hdc_bmp,x,y)=back_color) and
(x<width)) do inc (x);
if (x<>width) then
begin
x0:=x;
while((getpixel(hdc_bmp,x,y)<>back_color) and
(x<width)) do inc(x);
tmp_rgn:=createrectrgn(x0,y,x,y+1);
combinergn(wnd_rgn, wnd_rgn, tmp_rgn, rgn_xor);
end;
x:=0;
end;
deleteobject(tmp_rgn);
deletedc(hdc_bmp);
setwindowrgn(ahwnd,wnd_rgn,true);
deleteobject(wnd_rgn);
end;


Это сообщение отредактировал(а) Girder - 8.11.2005, 11:21
  Вверх
Alexeis
Дата 8.11.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Я пологаю что создается непрямоугольная форма, тогда в исходном варианте в начале процедуры нужно написать

aHwnd := Handle;

т.е. Handle формы



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
авганец
Дата 8.11.2005, 14:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











это программа делает форму по рисунку т.е нарисовал грушу к примеру будет форма ввиде груши
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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