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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2014, 22:22   #1
sunny-plum
 
Регистрация: 03.10.2014
Сообщений: 8
Восклицание Не работает FloodFill

Не работает FloodFill,помогите разобраться,пожалуйста.
Код выкладываю файлом,ибо сюда не влезет.
Вложения
Тип файла: rar рисовалка.rar (305.5 Кб, 18 просмотров)

Последний раз редактировалось sunny-plum; 06.12.2014 в 22:30.
sunny-plum вне форума Ответить с цитированием
Старый 06.12.2014, 22:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Делфи под рукой нет, но я что-то не пойму - у тебя на кнопку заливки ничего не прописано?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.12.2014, 23:59   #3
sunny-plum
 
Регистрация: 03.10.2014
Сообщений: 8
По умолчанию


Вы не про это?
sunny-plum вне форума Ответить с цитированием
Старый 07.12.2014, 02:20   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Почитайте, что по этому поводу написано здесь и здесь. Возможно, это поможет решить проблему.
Streletz вне форума Ответить с цитированием
Старый 07.12.2014, 10:23   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вы не про это?
Ну да. Заливка там должна быть или я ошибаюсь?

А если я ошибаюсь и заливка вот:
Код:
procedure TLineButton.Image1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Drawing:=True;
Origin:=Point (X, Y);
MovePt:=Point (X, Y);
OriginPanel.Caption:=Format (' Початок: (%d, %d)', [X, Y]);

Canvas.FloodFill(x, y, Canvas.Pixels[x,y], fsSurface);

end;
То ИМХО тут просто не хватает указания цвета и цвет границы неверен:
Код:
Canvas.Brush.Color:=clRed;
Canvas.FloodFill(x, y, <тут цвет границы>, fsSurface);
Цвет границы это тот цвет, которым у тебя рисуется заливаемая фигура.
I'm learning to live...

Последний раз редактировалось Stilet; 07.12.2014 в 10:27.
Stilet вне форума Ответить с цитированием
Старый 08.12.2014, 02:26   #6
sunny-plum
 
Регистрация: 03.10.2014
Сообщений: 8
Печаль

Попробовала вот так,все равно не работает...
Тут еще такой момент,если заливка должна работать как в пеинте,допустим,то я же должна как-то указать то,что заливать оно должно текущим выбранным цветом,а не в программе,сразу,допустим,красный задавать и еще,не должна сразу координаты задавать,это же должно быть любое место,куда ткну...(
Запуталась



Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну да. Заливка там должна быть или я ошибаюсь?

А если я ошибаюсь и заливка вот:
Код:
procedure TLineButton.Image1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Drawing:=True;
Origin:=Point (X, Y);
MovePt:=Point (X, Y);
OriginPanel.Caption:=Format (' Початок: (%d, %d)', [X, Y]);

Canvas.FloodFill(x, y, Canvas.Pixels[x,y], fsSurface);

end;
То ИМХО тут просто не хватает указания цвета и цвет границы неверен:
Код:
Canvas.Brush.Color:=clRed;
Canvas.FloodFill(x, y, <тут цвет границы>, fsSurface);
Цвет границы это тот цвет, которым у тебя рисуется заливаемая фигура.
sunny-plum вне форума Ответить с цитированием
Старый 08.12.2014, 07:45   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Попробовала вот так
Когда ты ставишь fsSurface то указывать нужно цвет заливаемого фона. У тебя стоит clBlack - вангую, это цвет не фона.
Значит либо меняй цвет либо ставь fsBorder
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите закрасить треугольник,используя floodfill I_R_I_A_N_A Помощь студентам 0 04.05.2014 15:15
не работает relese версия проги и debug работает тока на моем компе D][mon C# (си шарп) 2 04.05.2012 20:21
floodfill Акоб Паскаль, Turbo Pascal, PascalABC.NET 5 09.11.2011 16:18
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 09:56
Не закрашивается область. ( FloodFill) vedro-compota Мультимедиа в Delphi 5 05.06.2010 20:05