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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2010, 09:38   #11
inndim
Пользователь
 
Регистрация: 08.06.2008
Сообщений: 74
По умолчанию

Не в end всё дело, у вас ошибка в этой строке:
Код:
 if Pixels[x,y]:=Form1.Color then Pixels[x,y]:=clblue;
уберите двоеточие перед знаком равно if Pixels[x,y]:=Form1.Color
inndim вне форума Ответить с цитированием
Старый 20.01.2010, 18:46   #12
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Да, теперь ошибку не выкидывает.. Спасибо) Но, первое - при роботе цикла, у меня на пару секунд все тормозит, а второе - цвет не изменяется. Может причина в том, что есть не известные мне свойства форм? Что вы можете посоветовать?
Iamloli вне форума Ответить с цитированием
Старый 20.01.2010, 19:08   #13
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Application.ProcessMessages
mihali4 вне форума Ответить с цитированием
Старый 20.01.2010, 19:23   #14
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Код:
for x:=1 to 400 do
                                 Application.ProcessMessages;
                                if Pixels|[x,y]=Form1.Color then Pixels[x,y]:=clblue;
Снова кидает ошибку, и курсор где я указал.. Ошибка гласит "Could not compile used unit 'Unit1.pas'"

Последний раз редактировалось Iamloli; 20.01.2010 в 19:29.
Iamloli вне форума Ответить с цитированием
Старый 20.01.2010, 19:32   #15
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Во-первых, это ставят, чтобы увидеть изменения. А не до того, как делаем изменения.
Во вторых - где begin..end ?
В-третьих - у меня и без Application.ProcessMessages все прекрасно видно - как форма перекрашивается...

Код:
with Form1.canvas do
for y:=1 to Form1.Height do
for x:=1 to Form1.Width do
if Pixels[x,y]=Form1.Color then
Pixels[x,y]:=clblue;

Последний раз редактировалось mihali4; 20.01.2010 в 19:40.
mihali4 вне форума Ответить с цитированием
Старый 20.01.2010, 19:40   #16
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Так, второе.. да, забыл. Все поменял, ошибок больше не кидает, но не чего не видно, кидаю всю команду.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure fon;
var y,x:integer;
begin
        with form1.canvas do
                for y:=1 to 5 do
                        for x:=1 to 400 do
                                begin
                                if Pixels[x,y]=Form1.Color then Pixels[x,y]:=clblue;
                                Application.ProcessMessages;
                                end;
                        end;

procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Refresh;
with form1.Canvas do
fon;
end;

end.
Iamloli вне форума Ответить с цитированием
Старый 21.01.2010, 00:35   #17
inndim
Пользователь
 
Регистрация: 08.06.2008
Сообщений: 74
По умолчанию

Сделайте тогда так
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Refresh;
form1.color:=clGreen;
with form1.Canvas do
fon;
end;
А тут вот так
Код:
procedure fon;
var y,x:integer;
begin
        with form1.canvas do
                for y:=1 to 5 do
                        for x:=1 to 400 do
                                begin
                                if Pixels[x,y]=clGreen then Pixels[x,y]:=clblue;
                                Application.ProcessMessages;
                                end;
                        end;
теперь должно работать.
inndim вне форума Ответить с цитированием
Старый 21.01.2010, 01:23   #18
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Отлично!)) Inndim, спасибо) Ребята, вам всем спасибо)

Хех.. Я рано закрыл топик, оказывается, если так, фон всегда будет зеленым, и на нем не чего нельзя нарисовать, я хотел протестировать с линей, но не вышло.
Код:
procedure fon;
var y,x:integer;
begin
        with form1.canvas do
                for y:=1 to Form1.Height do
                        for x:=1 to Form1.Width do
                                begin
                                if Pixels[x,y]=clGreen then Pixels[x,y]:=clblue;
                                Application.ProcessMessages;
                                end;
                        end;


procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Refresh;
with form1.Canvas do
begin
Pen.Color:=clBlack;
Pen.Style:=psDash;
Pen.Width:=5;
MoveTo(25,50);
LineTo(450,300);
form1.color:=clGreen; {все это дело перемещал, и ставил в разные места, но линия рисуется, только если удалить}
fon;
end;
end;

end.
Вот такие пироги, за то вы подкинули идеи, из-за чего не работает Floodfill

Я поменял фон, на прямоугольник, все работает.

Последний раз редактировалось Iamloli; 21.01.2010 в 01:42.
Iamloli вне форума Ответить с цитированием
Старый 21.01.2010, 08:24   #19
inndim
Пользователь
 
Регистрация: 08.06.2008
Сообщений: 74
По умолчанию

Тогда пробуйте вот так:
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
 form1.color:=clGreen;
 form1.Repaint;
 with form1.Canvas do
  begin
   Pen.Color:=clred;
   Pen.Style:=psDash;
   Pen.Width:=5;
   MoveTo(25,50);
   LineTo(450,300);
  end;
 fon;
end;
p.s.
Если помог, то жмите на весы слева ниже ника.
inndim вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реестр - Необходимо изменить действие по умолчанию для .reg файлов(«Изменить» вместо «Объединить»). ACE Valery Windows 7 30.11.2010 23:33
Фон =Kroshka= Microsoft Office Word 2 23.07.2009 14:39
как изменить фон изображения до общего фона. CaSHA HTML и CSS 5 24.06.2009 11:43
как разместить картинку в фон на сайт? ILLUSION Помощь студентам 8 12.05.2009 22:04
фон beygul Общие вопросы Delphi 5 28.09.2008 11:28