[pascal]const
MAXFPS = 1000 div 101 // substitui o 101 pelo valor m?°ximo de fps desejado

var
LastCheckTime, NewCheckTime: Cardinal;
FPSCount: Integer;
FPS: Integer;
NextFrame : Cardinal;

/////////////////////////////////////

if (DXBase.Direct3DDevice = nil) then Exit;

if gettickcount >= NextFrame then
begin // MAX FPS IF BEGIN

// add the minimal interval for the next reder to NextFrame var
inc(NextFrame, MAXFPS);

DXBase.Direct3DDevice.Clear(0, nil, D3DCLEAR_TARGET or D3DCLEAR_ZBUFFER, BgColor, 1.0, 0);

if (SUCCEEDED(DXBase.Direct3DDevice.BeginScene)) then
begin
// RENDER CODE HERE
end;

DXBase.Direct3DDevice.EndScene;

DXBase.Direct3DDevice.Present(nil, nil, 0, nil);
end; // MAX FPS IF END

CalculateFPS; // The same you are using[/pascal]


Post if you have any trouble