Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.10.2010, 16:45
GraffyM GraffyM вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 46
Репутация: 10
По умолчанию Канва и прозрачность?

Подскажите пожалуйста, в каком на правлении искать?
Поставил перед собой задание, сделать программу, которая будет медлено рисовать точки в области 400х400 пикселей в любой точке экрана (тоесть где я поставлю форму там и будет рисовать). Точки появляются хаотично, но загвостка в том, что я не знаю как сделать так, чтобы не было видно никакого фона, лишь точки на экране, как будто сгоревшие пиксели, как это сделать? Подойдёт ли Канва и прозрачность по "регионам"? Ну или подскажите в каком направлении искать и рыть?)
Ответить с цитированием
  #2  
Старый 21.10.2010, 17:02
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Как я понимаю тебе надо рисовать на активном окне (например, на рабочем столе)... Вот посмотри, может поможет:
http://www.gcmsite.ru/?pg=art&id=del...-screen-winapi

http://otvety.google.ru/otvety/threa...816352eb48b36b
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 21.10.2010, 17:14
GraffyM GraffyM вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 46
Репутация: 10
По умолчанию

Как бэ я пытаюсь разобратся с этими функциями (или как правильно назвать?), чтобы в дальнейшем использовать их в своём проэкте.
Хочу реализовать постепенный рост линии, и раздвоения по определенным алгоритмам. Поэтому ссылки не очень верные.

П.С. Лучше мне не давать ссылки, а просто подсказать как правильно сформулировать запрос в гугле ))) Для начала например "Delphi 7 Canvas рисуем попиксельно" )))
П.С. ОффТоп: "Рисование на рабочем столе" еще описывается в книге "Хладни И.- Внутренний мир Borland Delphi" начиная с страницы 510.

Как рисовать, нашел, сделал прозрачный фон, и начал рисовать по статьям из URL.
Вопрос в друго, как теперь организовать алгоритм роста?
Как узнать количество нарисованых пикселей, определенного цвета?

Последний раз редактировалось GraffyM, 21.10.2010 в 17:44.
Ответить с цитированием
  #4  
Старый 21.10.2010, 20:24
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

подщитать колличество пикселей определённого цвета можно через цикл... так... первое что в голову пришло
Код:
var
w,h,i:integer;

begin
h:=1;
i:=0;
for h:=1 to image1.height do begin
for w:=1 to image1.width do begin
if image1.canvas.pixels[w,h]=clBlack
then
i:=i+1;
end;
end;
showmessage(inttostr(i));
end;

Последний раз редактировалось eXplorer, 21.10.2010 в 20:26.
Ответить с цитированием
  #5  
Старый 21.10.2010, 22:08
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А не проще просто запоминать число при рисовании?
Ответить с цитированием
  #6  
Старый 21.10.2010, 22:38
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

точно... я и забыл что процедура рисования ещё есть
ну да проще при рисовании пикселов считать колличество...
Ответить с цитированием
  #7  
Старый 21.10.2010, 22:51
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

вот тогда так... для примера (рисую на image.canvas) черные пикселы в случайном месте...
Код:
var
i,h,w,k:integer;
begin
k:=0;
for i:=1 to image1.Height+image1.Width do begin
h:=random(image1.Height);
w:=random(image1.Width);
image1.Canvas.Pixels[w,h]:=clBlack;
sleep(10);
k:=k+1;
application.ProcessMessages;
end;
showMessage(inttostr(k));
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025