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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2015, 21:50   #1
Sony_boy
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 20
По умолчанию Помогите подправить код

Здарова. В общем есть код, который определяет цвет в заданных координатах. Так вот в чем суть, нужно: вот определил цвет нужного мне элемента. И что бы если цвет у элемента изменился на ЛЮБОЙ другой, срабатывало нужное мне условие. Как это осуществить? Приходит на ум, что нужно из функции DesktopColor передать значение в переменную, и делать проверку на изменение. Вот только как? Вот собственно код:
Код:
function DesktopColor(const X, Y: Integer): TColor;
var
  c: TCanvas;
begin
  c := TCanvas.Create;
  try
    c.Handle := GetWindowDC(GetDesktopWindow);
    Result := GetPixel(c.Handle, X, Y);
  finally
    c.Free;
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  x, y: Integer;
begin
  x := 10;
  y := 10;
  Label1.Caption := IntToStr(DesktopColor(x, y));
  Label1.Font.Color := DesktopColor(x, y);
end;
 
end.
Sony_boy вне форума Ответить с цитированием
Старый 26.09.2015, 22:13   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

А что не так? Работает же.
Если проблема с тем КОГДА делать проверку: используй компонент Timer и переменную для хранения цвета и через заданный интервал времени проверяй.
Если проблема с тем КАК, то ... А чё там может не получиться?

Последний раз редактировалось Sibedir; 26.09.2015 в 22:17.
Sibedir вне форума Ответить с цитированием
Старый 26.09.2015, 22:18   #3
Sony_boy
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
А что не так? Работает же.
Код то работает, но я выше описал что нужно мне добавить в код. Есть идея, после того как помещу значение цвета из функции в переменную, сверять по таймеру изменился ли цвет у того элемента, у которого я определил цвет. Вот только вопрос-как это сделать???
Sony_boy вне форума Ответить с цитированием
Старый 26.09.2015, 22:21   #4
Sony_boy
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
А что не так? Работает же.
Если проблема с тем КОГДА делать проверку: используй компонент Timer и переменную для хранения цвета и через заданный интервал времени проверяй.
Если проблема с тем КАК, то ... А чё там может не получиться?
Вот, я тоже так подумал. Что я сделал: завел переменную и присвоил значение функции.
Код:
 d:=DesktopColor(x, y);
Вопрос-как осуществить теперь проверку этой переменной, изменилось ли значение
Sony_boy вне форума Ответить с цитированием
Старый 26.09.2015, 22:22   #5
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от Sony_boy Посмотреть сообщение
...вопрос-как это сделать???
делай РАЗ
Цитата:
... помещу значение цвета из функции в переменную...
делай ДВА
Цитата:
... сверять по таймеру изменился ли цвет...
Цитата:
Сообщение от Sony_boy Посмотреть сообщение
Вот, я тоже так подумал. Что я сделал: завел переменную и присвоил значение функции.
Код:
 d:=DesktopColor(x, y);
Вопрос-как осуществить теперь проверку этой переменной, изменилось ли значение
Код:
 if d <> DesktopColor(x, y) then

Последний раз редактировалось Stilet; 27.09.2015 в 07:47.
Sibedir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подправить код? Drego JavaScript, Ajax 1 26.06.2013 17:38
подправить код строки Виктор Казанцев Visual C++ 1 07.01.2012 17:03
Подправить код werser Помощь студентам 4 14.03.2010 23:26
подправить код ELF astserg01 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.04.2009 06:49