Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

in Delphi toetsen koppelen aan een formulier.

bvvelde
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 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

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