Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2010, 14:58   #1
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
Печаль Покрытие image

Здравствуйте. Пытаюсь покрыть image сеткой, делаю это так
Код:
procedure TForm4.DrawVisor(_B_in: TBitmap; rect: trect);
const
  MaxPixelCountA = MaxInt div SizeOf(TRGBQuad);
type
  PRGBAArray = ^TRGBAArray;
  TRGBAArray = array[0..MaxPixelCountA-1] of TRGBQuad;
var i,ii,ix,iy,CenterPointY,CenterPointX:integer;
     RowOut: PRGBAArray;
begin
_B_in.Canvas.Pen.Width:=1;
_B_in.Canvas.Pen.Color:=rgb(0,20,0);
CenterPointX:=rect.Left+((rect.Right-rect.Left) div 2);
CenterPointY:=rect.Top+((rect.Bottom-rect.Top) div 2);
ix:=CenterPointX-(CenterPointX div 24)*24;
iy:=CenterPointY-(CenterPointY div 24)*24;
for i:=rect.Top to rect.Bottom-1 do  begin
  RowOut:=_B_in.ScanLine[i];
  for ii:=rect.Left to rect.Right-1 do begin
   if ((ii=(ii div 24)*24+ix))or((i=(i div 24)*24+iy)) then begin
    RowOut[ii].rgbBlue:=trunc(RowOut[ii].rgbBlue*0.8);
    RowOut[ii].rgbGreen:=trunc(RowOut[ii].rgbGreen*0.8);
    RowOut[ii].rgbRed:=trunc(RowOut[ii].rgbRed*0.8);
   end;
  end;
end;
end;
Однако вылетает страшная ошибка. Причем в Вин7 ошибки не наблюдается, а в ХП присутсвует. Кто может подсказать из за чего это? Или может предложите свой способ покрытия image чем нибудь наподобии сетик?
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 23.02.2010, 01:10   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Особо не вникал, как и что надо разрисовывать, но вот пример который тоже рисует сетку:
Вложения
Тип файла: rar prim.rar (5.5 Кб, 9 просмотров)
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 23.02.2010, 07:34   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Или может предложите свой способ покрытия image чем нибудь наподобии сетик?
Я бы выбрал два варианта:
1) Заменил TImage на TPaintBox - ибо он более предназначен для рисования на канве
2) Использовал бы TChart с фоновым рисунком, который ты и Image втюливаешь, ибо этот компонент создан уже с координатной сеткой
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2010, 14:56   #4
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
По умолчанию

проблему решил, ошибка заключалась в том что для этой процедуры был необходим битмап 32бит а у Меня был 24бита.
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распределить покрытие заказа AleksandrH Microsoft Office Excel 0 15.02.2010 15:49
Вершинное покрытие графа WindWalker Помощь студентам 0 18.12.2009 12:34
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
Image IVANSour Общие вопросы Delphi 10 19.01.2009 18:11