Vraag & Antwoord

Programmeren

in Delphi toetsen koppelen aan een formulier.

7 antwoorden
  • Hallo, Ik ben al een tijdje bezig, maar heb no niet de juiste oplossing kunnen vinden. Wat ik eigelijk wil is dat ik de cijfertoetsen 0t/m9 van het toetsenbord en de ENTER toets kan koppelen aan de knoppen op een formulier. Dus als ik een getal wil invoeren dit gewoon op het numerieke deel van het toetsen bord kan doen zonder dat ik elke keer met de muis de knopjes moet aanklikken.
  • Dat kan door gebruik te maken van het event OnKeyPress van het formulier waarop de knoppen staan. In de event procedure vang je dan de juiste tekens af: [code:1:eb7d9c88b4] procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key = '1' then DoeIets; if key = '2' then DoeIetsAnders; enz end; [/code:1:eb7d9c88b4]
  • [quote:3845324d96="Niek Breur"]Dat kan door gebruik te maken van het event OnKeyPress van het formulier waarop de knoppen staan. In de event procedure vang je dan de juiste tekens af:[/quote:3845324d96] En ook de [color=blue:3845324d96]KeyPreview[/color:3845324d96]-property van het form op True zetten.
  • O.k,, maar is het dan ook mogelijk om functie-toetsen als de enter F1 tm F9, shift, etc. te gebruiken ? Kan dit volgens de zelfde methode of moet dit anders worden aangepakt ?
  • [code:1:221fcf64d3] procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key = #1 then DoeIets; if key = #2 then DoeIetsAnders; enz end; [/code:1:221fcf64d3] Je moet #1 en #2 gewoon vervangen door de goede ASCII code.
  • [quote:b0114b07b4="turbo-pascal"][code:1:b0114b07b4] procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key = #1 then DoeIets; if key = #2 then DoeIetsAnders; enz end; [/code:1:b0114b07b4] Je moet #1 en #2 gewoon vervangen door de goede ASCII code.[/quote:b0114b07b4] Maar dat is voor de standaard letters en cijfers a..z en 0..9 (en met ord/code denk ik), maar hoe moet dat met b.v. de enter ? Heeft die een eigen ascii code ?
  • [quote:531895079c="bvvelde"][quote:531895079c="turbo-pascal"][code:1:531895079c] procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key = #1 then DoeIets; if key = #2 then DoeIetsAnders; enz end; [/code:1:531895079c] Je moet #1 en #2 gewoon vervangen door de goede ASCII code.[/quote:531895079c] Maar dat is voor de standaard letters en cijfers a..z en 0..9 (en met ord/code denk ik), maar hoe moet dat met b.v. de enter ? Heeft die een eigen ascii code ?[/quote:531895079c] Ja [code:1:531895079c] procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin case Ord(Key) of Windows.VK_RETURN: begin // Enter end; Windows.VK_TAB: begin // Tab end; end; end; [/code:1:531895079c]

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.