Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DXinput in neuer Form ansteuern (https://www.delphipraxis.net/67955-dxinput-neuer-form-ansteuern.html)

nicosch 22. Apr 2006 13:01


DXinput in neuer Form ansteuern
 
Hallo,

habe ein kleines programm aus (bis jetzt) drei formen (jeweils eigene units).ich wechsle von form 2 auf form 3
Delphi-Quellcode:
procedure TForm2.startClick(Sender: TObject);
begin
  Form3.ShowModal;

  Close;
end;
und versuche dann in form3 über dxinput die tastatur anzusteuern, um bilder auf dxdraw malen zu lassen. allerdings geht das nicht (die maus ansteuern geht schon). hab den code in einem programm mit nur einer form getestet und dort ging er! auch wenn ich beim wesel von form2 auf drei setfocus.form3 verwende funktioniert es nicht.

Delphi-Quellcode:
   procedure TForm3.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Form3.DXInput2.Keyboard.Keys[Key_B]=true then
  begin
    Form3.DXImageList2.Items[0].Draw(DXdraw2.Surface,0,0,0);
    DXdraw2.Restore;
  end;
if Form3.DXInput2.Keyboard.Keys[Key_N]=true then
  begin
    Form3.DXImageList2.Items[1].Draw(DXdraw2.Surface,0,0,0);
    DXdraw2.Restore;
  end;
end;
eigenartig ist auch, dass trotz des close befehls fenster2 noch immer offen ist. vermue ja, dass er die tatsturbefehle dm vorherigen oder dem ersten fenster zurechnet, aber wie kann ich das verändern?

danke

nicosch 22. Apr 2006 14:20

Re: DXinput in neuer Form ansteuern
 
habs schon selbst über den timer und dxinput1.update gelöst. den wechsel von Form 2 auf 3 mach ich nach wie vor mit showmodal
Delphi-Quellcode:
procedure TForm3.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
dxinput2.Keyboard.Update;
if dxinput2.Keyboard.Keys[Key_B]=true then
  begin
    dximagelist2.Items[0].Draw(DXDraw2.Surface, 0, 0, 0);
    dxdraw2.Flip;
  end;
if dxinput2.Keyboard.Keys[Key_N]=true then
  begin
    dximagelist2.Items[1].Draw(DXDraw2.Surface, 0, 0, 0);
    dxdraw2.Flip;
  end;

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz