你好,createThread 之后 怎么关闭这个线程的资源?需要手动释放吗
var 是传址,但P也是地址啊,两者是等价的,所以会改变i的值
TControlSubClass TControlSubClassProc TCustomDXTimer TDirectX TDirectXDriver TDirectXDrivers TDXForm TDXPictureClip TDXTimer TDXTimerEvent THashCollection THashCollectionItem
TDblPoint
Min(Val1,Val2: Integer): Integer PointInRect(const Poin: TPoint; const Rect: TRect): Boolean RectInRect(const Rect1,Rect2: TRect): Boolean OverlapRect(const Rect1,Rect2: TRect): Boolean WideRect(ALeft,ATop,AWidth,AHeight: Integer): TRect InitCosinTable Cos256(i: Integer): Double Sin256(i: Integer): Double ReleaseCom(out Com) DXLoadLibrary(const FileName,FuncName: string): TFarProc FreeLibList MakeHashCode(const Str: string): Integer Get2PointRange(a,b: TDblPoint): Double GetARadFromB(A,B: TDblPoint): Double Get256(dX,dY: Double): Double GetPointFromRangeAndAngle(SP: TDblPoint; Range,Angle: Double): TDblPoint In2DRowCol: T2DRowCol Trans2DRowCol(x,y: double): T2DRowCol Scale2DRowCol(x,y: double): T2DRowCol Rotate2DRowCol(Theta: double): T2DRowCol Multipl2DRowCol(A,B: T2DRowCol): T2DRowCol RotateIntoX2DRowCol(x,y: double): T2DRowCol ScaleAt2DRowCol(x,y,Sx,Sy: double): T2DRowCol ReflectAcross2DRowCol(x,y,dx,dy: Double): T2DRowCol RotateAround2DRowCol(x,y,Theta: Double): T2DRowCol Apply2DVector(V: T2DVector; M: T2DRowCol): T2DVector DblPoint(a,b: Double): TDblPoint TruncDblPoint(DblPos: TDblPoint): TPoint PointInCircl(PPos,CPos: TPoint; R: integer): Boolean CircleInCirc(C1Pos,C2Pos: TPoint; R1,R2: Integer): Boolean SegmentInCircle(SPos,EPos,CPos: TPoint; R: Integer): Boolean Angle256(Angle: Single): Single CheckNearAThanB(S,A,B: TDblPoint): Boolean CircumCenter3Pt(const x1,y1,x2,y2,x3,y3: Single; outPx,Py: Singl): Boolean Distance(const x1,y1,x2,y2: Double): Double InCenter(const x1,y1,x2,y2,x3,y3: Double; outPx,Py: Double) PointInTriangl(const Px,Py,x1,y1,x2,y2,x3,y3: Double): Boolean Log(const Co,FName: string)
T2DRowCol T2DVector TCellRange TControlSubClassProc TDXTimerEvent
L_Curve = 0 R_Curve = 1 C_Add = 0 C_Dec = 1 PaletteMask = $02000000
CosinTable: array[0..255] of Double LibList: TStringList SetAppExStyleCount: Integer
TBlit TBlitMoveEvent TCustomDXDraw TCustomDXImageList TD2D TD2DTextureFilter TD2DTextures TDirect3DTexture TDirect3DTexture2 TDirectDraw TDirectDrawClipper TDirectDrawOverlay TDirectDrawPalette TDirectDrawSurface TDirectDrawSurfaceCanvas TDXDraw TDXDrawDisplay TDXDrawDisplayMode TDXDrawDriver TDXDrawDriverBlt TDXDrawDriverFlip TDXDrawNotifyEvent TDXDrawNotifyType TDXDrawOption TDXFont TDXImageList TDXPowerFont TDXPowerFontAfterTextOutEvent TDXPowerFontBeforeTextOutEvent TDXPowerFontEffectsParameters TDXPowerFontTextOutEffect TDXPowerFontTextOutType TDXTBase TDXTextureImage TDXTextureImageFileBlockHeaderWriter TDXTextureImageFileCompressType TDXTextureImageLoadFunc TDXTextureImageProgressEvent TDXTextureImageType TDXTImageChannel TInitializeDirect3DOption TOnRender TOnUpdateTextures TPictureCollection TPictureCollectionComponent TPictureCollectionItem TPictureCollectionItemPattern TRenderMirrorFlip TRenderType TTextureRec TTrace TTracePointsType TTraces TWaveType
TBlitRec TBlurImageProp TDXTextureImageChannel TDXTextureImageFileBlockHeader TDXTextureImageFileBlockHeader_StartGroup TDXTextureImageFileBlockHeaderWriter_BlockInfo TDXTextureImageFileHeader TDXTextureImageHeader_Image_Format TDXTextureImageHeader_Image_Format_Index TDXTextureImageHeader_Image_Format_RGB TDXTextureImageHeader_Image_GroupInfo TDXTextureImageHeader_Image_PixelData TDXTextureImageHeader_Image_TransparentColor TDXTImageChannelInfo TDXTImageFormat TPath TRGB
dxtMakeChannel(Mask: DWORD; indexed: Boolean): TDXTextureImageChannel dxtEncodeChannel(const Channel: TDXTextureImageChannel; c: DWORD): DWORD dxtDecodeChannel(const Channel: TDXTextureImageChannel; c: DWORD): DWORD dib2dxt(DIBImage: TDIB; out DXTImage: TDXTextureImage) DXDraw_Draw(...); DXDraw_Paint(...); DXDraw_Render(...); DXDirectDrawEnumerate(lpCallback: TDDEnumCallbackA; lpContext: Pointer): HRESULT EnumDirectDrawDrivers:TDirectXDrivers ClipRect(var DestRect: TRect; const DestRect2: TRect): Boolean ClipRect2(var DestRect, SrcRect: TRect; const DestRect2, SrcRect2: TRect): Boolean Conv24to16(Color: Integer): Word Conv16to24(Color: Word): Integer GetRGB(Color: cardinal; var R, G, B: Byte) RGBToBGR(Color: cardinal): cardinal BPPToDDBD(BPP: DWORD): DWORD FreeZBufferSurface(Surface: TDirectDrawSurface; var ZBuffer: TDirectDrawSurface) Direct3DInitializing(...); Direct3DInitializing_DXDraw(Options: TInitializeDirect3DOptions; DXDraw: TCustomDXDraw) InitializeDirect3D(...); InitializeDirect3D7(...); TDXDrawRGBQuadsToPaletteEntries(const RGBQuads: TRGBQuads; AllowPalette256: Boolean): TPaletteEntries GetWidthBytes(Width, BitCount: Integer): Integer DXTextureImage_LoadDXTextureImageFunc(Stream: TStream; Image: TDXTextureImage) DXTextureImage_LoadBitmapFunc(Stream: TStream; Image: TDXTextureImage) DXTextureImageLoadFuncList:TList DXTextureImage_SaveDXTextureImageFunc(Stream: TStream; Image: TDXTextureImage) DXTextureImage_LoadDXTextureImageFunc(Stream: TStream; Image: TDXTextureImage) DXTextureImage_SaveDXTextureImageFunc(Stream: TStream; Image: TDXTextureImage) DXTextureImage_LoadBitmapFunc(Stream: TStream; Image: TDXTextureImage) GetBitCount(b: Integer): Integer IsNotZero(Z: TRect): Boolean Mod2f(i: Double; i2: Integer): Double
PByte3 PDXDrawNotifyEvent PDXTextureImageFileBlockHeaderWriter_BlockInfo PPathArr PRGB PTextureArr PTextureRec TBlitMoveEvent TBlurImageArr TByte3 TD2D4Vertex TD2DTextureFilter TDirectDrawDisplay TDirectDrawDisplayMode TDXDrawNotifyEvent TDXDrawNotifyType TDXDrawOption TDXDrawOptions TDXPowerFontAfterTextOutEvent TDXPowerFontBeforeTextOutEvent TDXPowerFontTextOutEffect TDXPowerFontTextOutType TDXTextureImageFileCompressType TDXTextureImageLoadFunc TDXTextureImageProgressEvent TDXTextureImageType TDXTextureImage_PaletteEntries TDXTImageChannel TDXTImageChannels TInitializeDire3DOption TInitializeDire3DOptions TOnRender TOnUpdateTextures TPathArr TRenderMirrorFlip TRenderMirrorFlipSet TRenderType TTextureArr TTracePointsType TWaveType
maxTexBlock = 2048 maxVideoBlockSize = 2048 DXTextureImageGroupType_Normal = 0 DXTextureImageGroupType_Mipmap = 1 Alphabet = ??? PowerAlphabet = ??? ccDefaultSpecular = $FFFFFFFF ZeroRect:TRect = (Left: 0; Top: 0; Right: 0; Bottom: 0) DDPF_PALETTEINDEXED = ...; Mask1:array[0..7] of DWORD = (1, 2, 4, 8, 16, 32, 64, 128) Mask2:array[0..3] of DWORD = (3, 12, 48, 192) Mask4:array[0..1] of DWORD = ($0F, $F0) Shift1:array[0..7] of DWORD = (0, 1, 2, 3, 4, 5, 6, 7) Shift2:array[0..3] of DWORD = (0, 2, 4, 6) Shift4:array[0..1] of DWORD = (0, 4) DXTextureImageFile_Type = 'dxt:' DXTextureImageFile_Version = $100 DXTextureImageCompress_None = 0 DXTextureImageCompress_ZLIB = 1 DXTextureImageFileCategoryType_Image = $100 DXTextureImageFileBlockID_EndFile = 0 DXTextureImageFileBlockID_EndGroup = 1 DXTextureImageFileBlockID_StartGroup = 2 DXTextureImageFileBlockID_Image_Format = DXTextureImageFileCategoryType_Image + 1 DXTextureImageFileBlockID_Image_PixelData = DXTextureImageFileCategoryType_Image + 2 DXTextureImageFileBlockID_Image_GroupInfo = DXTextureImageFileCategoryType_Image + 3 DXTextureImageFileBlockID_Image_Name = DXTextureImageFileCategoryType_Image + 4 DXTextureImageFileBlockID_Image_TransparentColor = DXTextureImageFileCategoryType_Image + 5 SurfaceDivWidth = maxVideoBlockSize SurfaceDivHeight = maxVideoBlockSize
DirectDrawDrivers: TDirectXDrivers D2D: TD2D = nil RenderError: boolean = false _DXTextureImageLoadFuncList: TList
TColorLinePixelGeometry TColorLineStyle TCustomDXDIB TCustomDXPaintBox TDIB TDIBitmap TDIBSharedImage TDistortType TDXDIB TDXPaintBox TFilterMode TFilterTypeResample TGlobalMemoryStream TPaletteItem TPaletteManager
TBGR TDIBPixelFormat TLightSource TLocalDIBPixelFormat
MakeDIBPixelFormat(RBitCount, GBitCount, BBitCount: Integer): TDIBPixelFormat MakeDIBPixelFormatMask(RBitMask, GBitMask, BBitMask: Integer): TDIBPixelFormat pfRGB(const PixelFormat: TDIBPixelFormat; R, G, B: Byte): DWORD pfGetRGB(const PixelFormat: TDIBPixelFormat; Color: DWORD; var R, G, B: Byte) pfGetRValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte pfGetGValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte pfGetBValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte GreyscaleColorTable:TRGBQuads RGBQuad(R, G, B: Byte): TRGBQuad PaletteEntryToRGBQuad(const Entry: TPaletteEntry): TRGBQuad PaletteEntriesToRGBQuads(const Entries: TPaletteEntries): TRGBQuads RGBQuadToPaletteEntry(const RGBQuad: TRGBQuad): TPaletteEntry RGBQuadsToPaletteEntries(const RGBQuads: TRGBQuads): TPaletteEntries PosValue(Value: Integer): Integer DSin(const C: TOC): Single DCos(const C: TOC): Single GetScale(SourceWidth, SourceHeight, TargetWidth, TargetHeight: Integer): Single MakeDib(out DIB: TDIB; const iWidth, iHeight, iBitCount: Integer; iFillColor: TColor{$IFDEF VER4UP} = clBlack{$ENDIF}) MakeDIB2(out DIB: TDIB; iBitmap: TBitmap) PaletteManager:TPaletteManager EmptyDIBImage:TDIBSharedImage IntToByte(i: Integer): Byte TrimInt(i, Min, Max: Integer): Integer
PArrayBGR PArrayByte PArrayDWord PArrayWord PBGR PBytes PLines PLocalDIBPixelFormat PPBytes PRGBA PRGBQuads TArrayBGR TArrayByte TArrayDWord TArrayWord TBytes TColorLinePixelGeometry TColorLineStyle TDistortType TFilter TFilterMode TFilterTypeResample TLightArray TLines TMatrixSetting TOC TPaletteEntries TPBytes TRGBA TRGBQuads
DefaultFilterRadius: array[TFilterTypeResample] of Single = (0.5, 1, 1, 1.5, 2, 3, 2) EdgeFilter: TFilter = ((-1, -1, -1), (-1, 8, -1), (-1, -1, -1)) StrongOutlineFilter: TFilter = ((-100, 0, 0), (0, 0, 0), (0, 0, 100)) Enhance3DFilter: TFilter = ((-100, 5, 5), (5, 5, 5), (5, 5, 100)) LinearFilter: TFilter = ((-40, -40, -40), (-40, 255, -40), (-40, -40, -40)) GranularFilter: TFilter = ((-20, 5, 20), (5, -10, 5), (100, 5, -100)) SharpFilter: TFilter = ((-2, -2, -2), (-2, 20, -2), (-2, -2, -2)) msEmboss: TMatrixSetting = (-1, -1, 0, -1, 6, 1, 0, 1, 1, 6) msHardEmboss: TMatrixSetting = (-4, -2, -1, -2, 10, 2, -1, 2, 4, 8) msBlur: TMatrixSetting = (1, 2, 1, 2, 4, 2, 1, 2, 1, 16) msSharpen: TMatrixSetting = (-1, -1, -1, -1, 15, -1, -1, -1, -1, 7) msEdgeDetect: TMatrixSetting = (-1, -1, -1, -1, 8, -1, -1, -1, -1, 1) Mask1: array[0..7] of DWORD = ($80, $40, $20, $10, $08, $04, $02, $01) Mask 1 n: array [ 0.. 7 ] of DWORD = ... Mask4: array[0..1] of DWORD = ($F0, $0F) Mask4n: array[0..1] of DWORD = ($FFFFFF0F, $FFFFFFF0) Shift1: array[0..7] of DWORD = (7, 6, 5, 4, 3, 2, 1, 0) Shift4: array[0..1] of DWORD = (4, 0) BitmapFileType = Ord('B') + Ord('M') * $100
FPaletteManager: TPaletteManager FEmptyDIBImage: TDIBSharedImage
TAudioFileStream TAudioStream TAudioStreamNotify TCustomDXSound TCustomDXWaveList TDirectSound TDirectSoundBuffer TDXMusic TDXSound TDXSoundDirectSound TDXSoundNotifyEvent TDXSoundNotifyType TDXSoundOption TDXWaveList TMidiCollectionComponent TMusicDataProp TMusicListCollection TMusicListCollectionItem TSoundCaptureFormat TSoundCaptureFormats TSoundCaptureStream TSoundCaptureStreamNotify TSoundEngine TWaveCollection TWaveCollectionComponent TWaveCollectionItem
TMidiDataHeader
DXDirectSoundCreate(lpGUID: PGUID; out lpDS: IDirectSound; pUnkOuter: IUnknown): HRESULT DXDirectSoundEnumerate(lpCallback: TDSEnumCallbackA; lpContext: Pointer): HRESULT DXDirectSoundCaptureCreate(lpGUID: PGUID; out lplpDSC: IDirectSoundCapture; pUnkOuter: IUnknown): HRESULT DXDirectSoundCaptureEnumerate(lpCallback: TDSEnumCallbackA; lpContext: Pointer): HRESULT EnumDirectSoundDrivers_DSENUMCALLBACK(...): BOOL EnumDirectSoundDrivers: TDirectXDrivers EnumDirectSoundCaptureDrivers: TDirectXDrivers
PDXSoundNotifyEvent TDXSoundNotifyEvent TDXSoundNotifyType TDXSoundOption TDXSoundOptions
dm_OK = 0 DSBCAPS_CTRLDEFAULT = DSBCAPS_CTRLFREQUENCY or DSBCAPS_CTRLPAN or DSBCAPS_CTRLVOLUME
DirectSoundDrivers: TDirectXDrivers DirectSoundCaptureDrivers: TDirectXDrivers
TCustomDXWave TCustomWaveStream TCustomWaveStream2 TDXWave TWave TWaveFileStream TWaveObjectStream TWaveStream
TWaveChunkHeader TWaveFileHeader
MakePCMWaveFormatEx(var Format: TWaveFormatEx; SamplesPerSec, BitsPerSample, Channels: Integer)
WavePoolSize = 8096 ID_RIFF = Ord('R') + Ord('I')*$100 + Ord('F')*$10000 + Ord('F')*$1000000 ID_WAVE = Ord('W') + Ord('A')*$100 + Ord('V')*$10000 + Ord('E')*$1000000 ID_FMT = Ord('f') + Ord('m')*$100 + Ord('t')*$10000 + Ord(' ')*$1000000 ID_FACT = Ord('f') + Ord('a')*$100 + Ord('c')*$10000 + Ord('t')*$1000000 ID_DATA = Ord('d') + Ord('a')*$100 + Ord('t')*$10000 + Ord('a')*$1000000
TCustomDXPlay TDXPlay TDXPlayEvent TDXPlayMessageEvent TDXPlayModemSetting TDXPlayPlayer TDXPlayPlayers TDXPlayRecvThread TDXPlaySendCompleteEvent TDXPlaySendCompleteResult TDXPlayTCPIPSetting
DXPlayMessageType(P: Pointer): DWORD DXPlayStringToGUID(const S: string): TGUID DXDirectPlayCreate(...): HRESULT GUIDToString(const ClassID: TGUID): string DXDirectPlayEnumerate(lpEnumDPCallback: TDPEnumDPCallbackW; lpContext: Pointer): HRESULT DXDirectPlayLobbyCreate(...): HRESULT
TDXPlayEvent TDXPlayMessageEvent TDXPlaySendCompleteEvent TDXPlaySendCompleteResult
TBackgroundSprite TCollisionEvent TCustomDXSpriteEngine TDrawEvent TDXSpriteEngine TGetImage TImageSprite TImageSpriteEx TMoveEvent TSCFinalize TSCInitialize TSprite TSpriteClass TSpriteCollection TSpriteCollectionItem TSpriteEngine TSpriteType
TMapDataHeader TMapType
Mod2(i,i2: Integer): Integer Mod2f(i: Double; i2: Integer): Double
SSpriteNotFound = 'Sprite not found' SSpriteDuplicateName = 'Item duplicate name "%s" error'
TCustomDXInput TCustomInput TDXInput TDXInputState TForceFeedbackEffect TForceFeedbackEffectComponent TForceFeedbackEffectItem TForceFeedbackEffectObject TForceFeedbackEffects TForceFeedbackEffectType TJoystick TKeyboard TMouse
DefKeyAssign: TKeyAssignList DefKeyAssign2_1: TKeyAssignList DefKeyAssign2_2: TKeyAssignList AssignKey(var KeyAssignList: TKeyAssignList; State: TDXInputState; const Keys: array of Integer) ConvertTime(i: Integer): DWORD SetDWORDProperty(pdev: IDirectInputDevice; guidProperty: PGUID; dwObject, dwHow, dwValue: DWORD): HResult SetRangeProperty(pdev: IDirectInputDevice; guidProperty: PGUID; dwObject, dwHow, Value: DWORD): HResult TJoystick_EnumJoysticksCallback(const lpddi: TDIDeviceInstanceA; pvRef: Pointer): HRESULT InitDirectInput(out DI: IDirectInput) FinDirectInput(var DI: IDirectInput)
PKeyAssign TDXInputState TDXInputStates TForceFeedbackEffectType TKeyAssign TKeyAssignList
FDirectInput: IDirectInput FDirectInputCount: Integer
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2008-01-09 学习结构[记录]类型(9) - 变体结构
2008-01-09 学习结构[记录]类型(8) - 结构嵌套
2008-01-09 学习结构[记录]类型(7) - 结构也可以有构造函数
2008-01-09 学习结构[记录]类型(6) - 结构的属性
2008-01-09 学习结构[记录]类型(5) - 结构的方法
2008-01-09 学习结构[记录]类型(4) - 结构指针
2008-01-09 学习结构[记录]类型(3) - 结构间的关系