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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2010, 20:07   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Не могу понять в чем дело! Пытаюсь выделить контур рисунка, посредством смещения вниз, вверх, влево, и вправо, ну у видите в моей программе, которую я выложил. Но вот беда! Когда меняю независимые друг от друга битмапы, предварительно присвоив каждому начальное ОДИНАКОВОЕ значение, то они начинают менять последний измененный, т.е. :
fdown первый в коде,
ftop меняет fdown
fright меняет ftop
fleft меняет fright
Но так не должно быть! А ещё какого-то лешего меняется и Image1 после всех манипуляций! Посмотрите код пожалуйста. Целый день бьюсь.

Кто скачал, признавайтесь Помогите с вопросом этим.
Вложения
Тип файла: zip Однопиксельные фируры.zip (214.1 Кб, 11 просмотров)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось Stilet; 30.08.2010 в 09:05.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 29.08.2010, 08:33   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Признаюсь Делайте в коде отступы, не удобно же.
По вопросу

Цитата:
Сообщение от ImmortalAlexSan Посмотреть сообщение
... Когда меняю независимые друг от друга битмапы, предварительно присвоив каждому начальное ОДИНАКОВОЕ значение....
Это:
fTop:=img;
fDown:=img;
fRight:=img;
fLeft:=img;
замена ссылок. Теперь все переменные ссылаются на один объект. Отсюда такое поведение. Попробуйте подругому - в условиях брать пикселы из img, а менять их в ftop, fdown...
alexBlack вне форума Ответить с цитированием
Старый 29.08.2010, 10:52   #3
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

alexBlack, действительно проблема была в этих строках, спасибо! Исправил так:
Код:
fTop.Assign(img);
fDown.Assign(img);
fRight.Assign(img);
fLeft.Assign(img);
//и сделал так, чтобы рисовалось не на битмапе, а сразу на Image1
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if not dwn then exit;
Image1.Canvas.LineTo(x,y);
end;

procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if button=mbLeft then dwn:=false;
end;

procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
dwn:=true;
Image1.Canvas.Pen.Color:=clBlack;
Image1.Canvas.Pen.Width:=20;
if button=mbLeft then
Image1.canvas.moveTo(x,y);
end;
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение Tbitmap Horus92 Помощь студентам 2 27.07.2010 10:05
Проблема с TBitmap QunneD Общие вопросы Delphi 2 21.11.2009 18:32
ImageList + TBitMap = ... Alex Cones Мультимедиа в Delphi 4 08.07.2009 14:00
проблема копирования из image.canvas в переменную TBitMap h4muk Мультимедиа в Delphi 2 27.02.2009 09:44
TBitmap odi_noki Мультимедиа в Delphi 17 25.10.2008 09:53