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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2011, 15:17   #1
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию проблема с массивом и бд

Здравствуйте, столкнулся с такой проблемой:
у меня в Image загружена картинка 200х200. На картинке есть изображения синего, зеленого, серого и красного цветов. Я ввожу в бд координаты и цвета каждого пиксела картинки( 3 поля X,Y,color)
Далее мне нужно по клике на кнопку исходя из моих данных в бд вывести к примеру только зеленые излбражения
Делаю так:
Код:
procedure TForm1.btn1Click(Sender: TObject);
var i,j,n, ii:Integer;
cmpcolor:array[1..5000]of Cardinal;
begin
n:=1;
  while n<=Table1.RecordCount do begin
cmpcolor[n]:=StrToInt(Table1.FieldByName('Color').Value);
        Table1.Next;  n:=n+1;
  end;
       for ii:=0 to n do
 for i:=0 to Image1.Picture.Height-1 do
  for j:=0 to Image1.Picture.Width-1 do
   begin
if cmpcolor[n]=65280 then //зелений цвет
image1.Picture.Bitmap.Canvas.Pixels[i,j]:=cmpcolor[n];

  end;

        end;
Но вылетает непонятная ошибка...подскажите в чем тут дело
hunter03 вне форума Ответить с цитированием
Старый 16.10.2011, 17:12   #2
Dush
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 116
По умолчанию

а что за ошибка? что пишет?
Dush вне форума Ответить с цитированием
Старый 16.10.2011, 17:20   #3
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

ну вобщето оно прост выходит из проги и все, а если из под делфи то выбрасывает в CPU и все, в чем проблема не пойму
for ii:=1 to Table1.RecordCount-1 do begin
cmpcolor[ii]:=StrToInt(Table1.FieldByName('Colo r').Value);

end;
так пробовал все равно тоже самое...может из за больших обьемов чисел? но массив тож большой обьявлен
hunter03 вне форума Ответить с цитированием
Старый 16.10.2011, 17:47   #4
Dush
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 116
По умолчанию

почему вы при чтении из базы сразу не проверяете на цвет? у вас же в базе хранится и цвет и координаты
считывать можно так:
Код:
table1.first;
while not table1.EOF do
begin
  проверяете цвет и заносите на свою картинку;
  table1.next;
end;
и без массивов
Dush вне форума Ответить с цитированием
Старый 16.10.2011, 17:57   #5
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

да, так и сделал в разы быстрее)
hunter03 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с массивом !!! drylozav Помощь студентам 49 10.10.2010 13:29
проблема с массивом Doppelganger Общие вопросы C/C++ 1 12.06.2010 14:12
Проблема с массивом Акашаев Нурлан PHP 2 23.11.2008 14:45
проблема с массивом Lonix Общие вопросы Delphi 2 06.11.2007 23:56
проблема с массивом kommunist Помощь студентам 4 31.10.2007 17:11