Hmmm, muszę ciut zmodyfikowac program i przerobić jedno pole edycyjne, powiedzmy Edit2, tak, zeby przy uruchomieniu programu migało pulsacyjnie żółtym kolorem. No oczywiście nie cały czas tylko ze cztery razy i koniec (zwrocenie uwagi).
Jak to rozegrać żeby rozwiązanie było "lekkie" ... pętla przy aktywacji formy... może oddzielny wątek ??
Jakieś propozycje?
[dopisane później]
Teraz siadłem do środowiska i na szybko zrobiłem to na osobnym wątku. Wątek nie jest uruchamiany, przy aktywacji formy, bo minimalnie/widocznie "zamrażał " start. Świetnie natomiast sprawdza się uruchomienie wątku przy wyjściu z jakiegoś innego elementu. W przykładzie poniżej zrobiłem to na wyjściu z Edit1.
Jak to rozegrać żeby rozwiązanie było "lekkie" ... pętla przy aktywacji formy... może oddzielny wątek ??
Jakieś propozycje?
[dopisane później]
Teraz siadłem do środowiska i na szybko zrobiłem to na osobnym wątku. Wątek nie jest uruchamiany, przy aktywacji formy, bo minimalnie/widocznie "zamrażał " start. Świetnie natomiast sprawdza się uruchomienie wątku przy wyjściu z jakiegoś innego elementu. W przykładzie poniżej zrobiłem to na wyjściu z Edit1.
Kod:
type
TWatek = class(TThread)
protected
procedure Execute; override;
procedure Migaj;
end;
Kod:
//wyjscie z Edit1 - urchomienie wątku - teraz Edit2 miga
procedure TForm1.Edit1Exit(Sender: TObject);
var
Watek: TWatek;
begin
Watek:= TWatek.Create(False);
end;
procedure TWatek.Execute;
begin
FreeOnTerminate:= TRUE;
Synchronize(@Migaj);
end;
procedure TWatek.Migaj;
var
i: Byte;
begin
for i:= 0 to 4 do
begin
case i of
0: Form1.Edit2.Color:=clDefault;
1: Form1.Edit2.Color:=clYellow;
2: Form1.Edit2.Color:=clDefault;
3: Form1.Edit2.Color:=clYellow;
4: Form1.Edit2.Color:=clDefault;
end;
Application.ProcessMessages;
Sleep(500);
end;
end;
Post sprawdzony przez Arcabit Internet Security