|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Мерцание компонентов
Видео:
http://www.youtube.com/watch?v=3EGEg...ature=youtu.be Код:
procedure TForm1.tmr4Timer(Sender: TObject); var t1,r1,y1: Integer; begin tmr4.Enabled:=True; for t1:=0 to mmo1.Lines.Count-1 do if pos('CODE',mmo1.Lines.Strings[t1])>0 then begin edt1.Visible:=True; end; for r1:=0 to mmo1.Lines.Count-1 do if pos('GOODBYE',mmo1.Lines.Strings[r1])>0 then begin edt1.Visible:=False; end; for y1:=0 to mmo1.Lines.Count-1 do if pos('MENU',mmo1.Lines.Strings[y1])>0 then begin edt1.Visible:=False; end; end; в Properties таймера значение Interval = 1000 Таймер работает постоянно, выполняя каждую секунду эту процедуру компонент edt1 постоянно мерцает создавая при этом неудобство Можно ли это как-то побороть? На форумах вычитал про DoubleBuffered, реализовал подобную процедуру: Код:
procedure TForm1.FormCreate(Sender: TObject); begin DoubleBuffered:= True; end; только вот это особо не помогло. |
#2
|
||||
|
||||
Код, конечно, замечательный - особенно эта строка:
Код:
tmr4.Enabled:=True; Код:
procedure TForm1.tmr4Timer(Sender: TObject); var I : Integer; begin for I := 0 to mmo1.Lines.Count-1 do if (pos('CODE', mmo1.Lines.Strings[i]) > 0) then edt1.Visible := True else if (pos('GOODBYE', mmo1.Lines.Strings[i]) > 0) or (pos('MENU', mmo1.Lines.Strings[y1]) > 0) then edt1.Visible := False; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |