Fördröjning av funktion
Är det möjligt att skapa en TEdit där den kopplade funktionen fördröjs med, låt oss säga, 500 efter senaste inmatningen så att användaren kan skriva in värden med lite tidsmån?
Svara
Sv: Fördröjning av funktion
Du får förklara lite mer noggrant vad du vill skall hända och vad händer nu ?
Svara
Sv:Fördröjning av funktion
Koden nedan visar ett medelande "Hej" så snart en etta skrivs i Edit1. Det jag vill göra är att låta OnChange vänta en stund och på så sätt låta användaren skriva in till exempel "11". Kanske det är möjligt att vänta 500 ms efter senaste inmatningen.
procedure TForm1.Edit1Change(Sender: TObject);
begin
if edit1.text = '1' then
ShowMessage('Hej');
end;
Svara
Sv: Fördröjning av funktion
Om det alltid skall vara 2 tecken 10 - 99 så har jag en lösning på G.
Svara
Sv:Fördröjning av funktion
Två tecken går bra till en början men jag skulle gärna vilja bygga ut till tre ur ren säkerhetssynpunkt.
Man vet aldrig om det blir 999 en dag.
Svara
Sv: Fördröjning av funktion
Om du vill ha tre(3) tecken skulle jag överväga att ha en EditBox till som känner av tre
<code>
procedure TForm1.Edit1Change(Sender: TObject);
begin
If Length(Edit1.Text)= 2 Then
ShowMessage( 'Hej' )
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
//' Nu kan du bara skriva siffror i Edit1
If Not (Key in ['0'..'9',chr(8),chr(13)]) Then Key := chr(0) ;
end;
end;
</code>
Svara
Sv: Fördröjning av funktion
En lösning vore kanske att använda en timer. I Edit1Change stoppar och startar du timern, så att den alltid har 500 ms kvar (om du ställer in den på 500 ms) när ett tecken tryckts. När inga fler tecken tryckts under 500 ms kommer timerns händelse att trigga. I den stoppar du timern, och skriver ut ditt meddelande.
Svara