Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Вниз

мигание   Найти похожие ветки 

 
SerB   (2003-06-05 05:20) [0]

по таймеру о брабатываю мигание нескольких контролов
for n=0 to 40 do
begin
if myControl[n].Value <> 0 then
begin
if myContol[n].color = old_color then
myContol[n].color := new_color
else myControl[n].color:=old_color;
( myControl.handle,0,true)
по таймеру о брабатываю мигание нескольких контролов
for n=0 to 40 do
begin
if myControl[n].Value <> 0 then
begin
if myContol[n].color = old_color then
myContol[n].color := new_color
else myControl[n].color:=old_color;
end;
end;


но почему-то все они мигают несинхронно, как это можно устранить?..
Пробовал применять flashwindow(myControl.handle,0,true) безрезультатно, хотя flashwindow(myAppletAindow.handle,0,true) работает... пробовал объявлять MyControl.isMainWindow - бесполезно...
А может есть "верный" способ?


 
MBo   (2003-06-05 05:44) [1]

В Потрепаться ветка FAQ, ответ 2. Может помочь.


 
NAlexey   (2003-06-05 10:16) [2]

Эадакая наверное получается веселая гирлянда, я представил и не смог удержаться от смеха, прости. Лежит значит на форме котролово 30-50 и все мигают в разноброс... Можно из этого цветомузыку сделать или ёлочную гирлянду.


 
SerB   (2003-06-05 11:38) [3]

Цветомузыка и получается... Попробовал фоном под тест анимированные гифы (по 2 фрейма) один черт мигание вразнобой получается...


 
Spawn   (2003-06-05 22:44) [4]

А каким способом ты меняешь myControl[n].Value?


 
SerB   (2003-06-11 07:07) [5]

To NAlexey...
Значение MyControl[n].Value я получаю по OnMessage c WMCOPYDATA из внешнего приложения в виде строки наподобие "00100...01010". Нет проблем с получением его также и при помощи любой другой процедуры, в т.ч. (для тестирования) и по randomize. Вся проблема в том, что я не могу добиться синхронности изменения цвета одновременно у всех 40 контролов, получается по очереди с 0-го по 39-ый... Использование OnPaint тоже ничего не дает...Это дает очень интересный эффект, два рядом находящиеся элемента мигают поочереди (как фонари у светофора через ж\д переезд), хотя инициирующие мигание значения MyControl.Value приходят одновременно... Чувствую что собака зарыта в курсе школьной программы (работа циклов for... while)...


 
Spawn   (2003-06-11 12:46) [6]

А может осуществлять мигание в разных потоках?


 
SerB   (2003-06-16 09:11) [7]

To Spawn... Спасибо за внимание к проблеме...
Сомневаюсь, что это что-то даст, т.к. если все загнать в отдельный поток один черт опрос будет идти от 0-го до 40-го если создать 40 потоков, сомневаюсь что Win"98 что-нибудь интересное даст... Скорее надо попробовать модифицировать функцию flashWindow() в нечто наподобие FlashControl(), но как это сделать, я не знаю...
Кстати почти добился нужного эффеката добавив еще один таймер, по onTimer которого запускаю таймер по onTimer реализую мигание, но получаетсЯ некрасиво, тормозно...


 
NAlexey   (2003-06-16 10:41) [8]

Не могу видеть без кода как у тебя это реализовано, провел простой эксперимент с 30-35 TLabel, мигают вроде синхронно в цикле, все нормально. Попробуй может делать LockWindowUpdate(Handle); до начала цикла и LockWindowUpdate(0); после:

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
LockWindowUpdate(Handle);
for I:=0 to ControlCount - 1 do
begin
if TLabel(Controls[I]).color = clRed then
TLabel(Controls[I]).color := clGreen
( Controls[I])
Не могу видеть без кода как у тебя это реализовано, провел простой эксперимент с 30-35 TLabel, мигают вроде синхронно в цикле, все нормально. Попробуй может делать LockWindowUpdate(Handle); до начала цикла и LockWindowUpdate(0); после:

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
LockWindowUpdate(Handle);
for I:=0 to ControlCount - 1 do
begin
if TLabel(Controls[I]).color = clRed then
TLabel(Controls[I]).color := clGreen
else TLabel(Controls[I]).color := clRed;
LockWindowUpdate(0);
end;


 
SerB   (2003-06-19 05:28) [9]

Спасибо всем



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
14-68491
aga
2003-08-05 20:09
2003.08.21
Редактор...


7-68560
T2
2003-06-05 13:03
2003.08.21
10 000 000 -> 10 Mb


14-68547
CD
2003-08-06 14:53
2003.08.21
Про вопрос о неприкасаемости


3-68203
paxer
2003-07-28 10:24
2003.08.21
Можно ли использовать UDF в Yaffil Embedded? Как это сделать?


14-68524
Dmitriy O.
2003-08-01 10:04
2003.08.21
Совесть как механизм управления людьми





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский