Avatar billede delphiuser Mester
26. maj 2006 - 23:14 Der er 11 kommentarer og
1 løsning

hvorfor virker det ikke

Hej eksperter hvorfor virker dette ikke?

procedure TForm1.OnKeyPress(Sender: TObject; var Key: Char);
begin
if key='08' then SpeedButton44.Font.Color:=clred;
end;
Avatar billede delphiuser Mester
26. maj 2006 - 23:22 #1
Fandt ud af det første. nu skal jeg bare have den til at når jeg slipper tasten skal den røde tekst blive sort igen. hvordan gør jeg det?
Avatar billede erikjacobsen Ekspert
26. maj 2006 - 23:25 #2
Det ligger langt tilbage i min hukommelse, men er der en OnKeyDown og OnKeyUp ??
Avatar billede nico26 Nybegynder
26. maj 2006 - 23:25 #3
Tilføj en KeyUp event

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  SpeedButton44.Font.Color := clBlack;
end;
Avatar billede delphiuser Mester
26. maj 2006 - 23:30 #4
hvad hedder æ, ø, å med Virtual key codes?
Avatar billede nico26 Nybegynder
26. maj 2006 - 23:34 #5
æ: 192
ø: 222
å: 221
Avatar billede delphiuser Mester
26. maj 2006 - 23:35 #6
kan man ikke gøre sådan her?

procedure TForm1.OnKeyPress(Sender: TObject; var Key: Char);
begin
if key=#08 then
begin
SpeedButton44.Font.Color:=clred;
end;
if key=#09 then
begin
SpeedButton58.Font.Color:=clred;
end;
end;

procedure TForm1.OnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
SpeedButton44.Font.Color:=clblack;
SpeedButton58.Font.Color:=clblack;
end;
Avatar billede nico26 Nybegynder
26. maj 2006 - 23:39 #7
tjo - det ser da ok ud

if key=#08 then
  SpeedButton44.Font.Color:=clred
else if key=#09 then
  SpeedButton58.Font.Color:=clred;

lidt pænere måske...
Avatar billede delphiuser Mester
26. maj 2006 - 23:41 #8
men min Speedbutton58 vil ikke skifte farve...

ok det er fordi jeg øver mig i at lave et simuleret keybord i delphi... og derefter vil jeg nygge nogle flere functioner på
Avatar billede hrc Mester
30. maj 2006 - 22:01 #9
Du tester en streng på værdien af en char. Det tror jeg ikke går. Det kan godt være jeg misser noget, men er det ikke det her du prøver?

uses
  Windows;

procedure TForm1.OnKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = VK_BACK then
    SpeedButton44.Font.Color := clred;
end;

I øvrigt kan du "æde" tasten hvis du tildeler den #0: "Key := #0" - men det ved du sikkert på dette tidspunkt.
Avatar billede delphiuser Mester
31. maj 2006 - 09:53 #10
det jeg vil er at lave et visuelt keybord på skærmen... så når jeg taster på nogle knapper skal de blive makeret på skærmen og når jeg slipper skal de blive normalt sorte igen...

forstået på den måde at trykker jeg på 8 taster bliver de alle 8 røde og slipper jeg igen bliver de sorte...
Avatar billede hrc Mester
31. maj 2006 - 16:39 #11
Så skal du til at lege med formens OnFormKeyDown og OnFormKeyUp og sætte KeyPreview til true:

Nedenstående er snuppet fra hjælpefilen:

var
  FormColor: TColor;

procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview := True;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = Key_F1 then
  begin
    FormColor := Form1.Color;
    Form1.Color := clAqua;
  end;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = Key_F1 then
    Form1.Color := FormColor;
end;
Avatar billede delphiuser Mester
28. juli 2010 - 13:56 #12
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester