🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.multimedia
Article #394

Joystick Button Problems

#394
From: Edward
Date: Thu, 09 Dec 2004 17:25
122 lines
4129 bytes
Why i can get the butons 5,6,7 and 8 of my USB Joystick?


Best Regards,

 Edward.


My code





void __fastcall TFormPrincipal::FormCreate(TObject *Sender)
{
  MMRESULT jr;
  JOYINFOEX JoyInfo;
  int joycount=joyGetNumDevs();

  if (joycount=0)
    Memo1->Lines->Add("ok 1");
  else
  {
    connect=false;
    jr=joyGetPosEx(JOYSTICKID1,&JoyInfo);
    if (jr ==JOYERR_NOERROR)
    {
     connect=true;
      jnum= JOYSTICKID1;
    }
    else
     if (jr == MMSYSERR_INVALPARAM)
       ShowMessage("deu merda");
     else if((jr=joyGetPosEx(JOYSTICKID2,&JoyInfo)) == JOYERR_NOERROR)
     {
       connect = true;
       jnum= JOYSTICKID2;
     }
  }
  joyGetDevCaps(jnum,&JoyCaps, sizeof(JOYCAPS));
  if (connect)
    Memo1->Lines->Add("Conected") ;

   Memo1->Lines->Add("jnum : "+ IntToStr(jnum));
   Memo1->Lines->Add("JoyCaps.szPnam : " + AnsiString(JoyCaps.szPname));
   Memo1->Lines->Add("JoyCaps.wNumButtons : " +
IntToStr(JoyCaps.wNumButtons));

  if (connect)
  {
    joySetCapture(Handle,jnum,2*JoyCaps.wPeriodMin,FALSE);
  }
  stepX = (JoyCaps.wXmax - JoyCaps.wXmin) / PaintBox1->Width;
  stepY = (JoyCaps.wYmax - JoyCaps.wYmin) / PaintBox1->Height;
}
//---------------------------------------------------------------------------

void __fastcall TFormPrincipal::FormDestroy(TObject *Sender)
{
  if (connect)
    joyReleaseCapture(jnum);

}
//---------------------------------------------------------------------------
void __fastcall TFormPrincipal::UpdButton(TMessage &msg)
{
 Shape1->Visible= (msg.WParam &JOY_BUTTON1);
 Shape2->Visible= (msg.WParam &JOY_BUTTON2);
 Shape3->Visible= (msg.WParam &JOY_BUTTON3);
 Shape4->Visible= (msg.WParam &JOY_BUTTON4);
 Shape5->Visible= (msg.WParam &JOY_BUTTON5);
 Shape6->Visible= (msg.WParam &JOY_BUTTON6);
 Shape7->Visible= (msg.WParam &JOY_BUTTON7);
 Shape8->Visible= (msg.WParam &JOY_BUTTON8);
}
//---------------------------------------------------------------------------
void __fastcall TFormPrincipal::UpdCoord(TMessage &msg)
{
  JOYINFO JoyInfo;

  TCanvas *pCanvas = PaintBox1->Canvas;
  pCanvas->Brush->Color=FormPrincipal->Color;
  pCanvas->FillRect(Rect(0,0,PaintBox1->Width,PaintBox1->Height));
  Pos.x =  msg.LParamLo;
  Pos.y =  msg.LParamHi;
  int x=(Pos.x-JoyCaps.wXmin)/stepX-ImageList1->Width/2;
  int y=(Pos.y-JoyCaps.wYmin)/stepY-ImageList1->Height/2;
  ImageList1->Draw(pCanvas,x,y,0,true);
}
//---------------------------------------------------------------------------





        void __fastcall FormDestroy(TObject *Sender);
        void __fastcall UpdButton(TMessage &msg);
        void __fastcall UpdCoord(TMessage &msg);

.h


private:
 int jnum;
 bool connect;
 int stepX,stepY;
 TPoint Pos;
public:
  __fastcall TFormPrincipal(TComponent* Owner);

  BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(MM_JOY1BUTTONDOWN,TMessage,UpdButton);
    MESSAGE_HANDLER(MM_JOY1BUTTONUP,TMessage,UpdButton);
    MESSAGE_HANDLER(MM_JOY1MOVE,TMessage,UpdCoord);
    MESSAGE_HANDLER(MM_JOY2BUTTONDOWN,TMessage,UpdButton);
    MESSAGE_HANDLER(MM_JOY2BUTTONUP,TMessage,UpdButton);
    MESSAGE_HANDLER(MM_JOY2MOVE,TMessage,UpdCoord);

  END_MESSAGE_MAP(TForm);

};
Technical Details
Message-ID: <41b88a74@newsgroups.borland.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!fr.ip.ndsoftware.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 10d0fc,734fce58ab6581e5,start
X-Google-Attributes: gid10d0fc,public
X-Google-Language: ENGLISH,ASCII-7-bit
Reply-To: "Edward" <eduglobo2004@globo.com>
From: "Edward" <eduglobo2004@globo.com>
Newsgroups: borland.public.cppbuilder.multimedia
Subject: Joystick  Button Problems
Date: Thu, 9 Dec 2004 15:25:06 -0200
Lines: 125
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: 200.213.54.55
Message-ID: <41b88a74@newsgroups.borland.com>
X-Trace: newsgroups.borland.com 1102613108 200.213.54.55 (9 Dec 2004 09:25:08 -0800)
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!fr.ip.ndsoftware.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail