list.asm

来自「本程序**%100汇编语言**编写。 编译器: <<-----MAS」· 汇编 代码 · 共 123 行

ASM
123
字号
;**************Play List functions*******************
AddPlayList proc
	invoke SysAllocString,addr Buffer
	mov ecx,iIndex
	lea edi,PlayList
	mov [edi+ecx*4],eax
	inc iIndex
	ret
AddPlayList endp
InitPlayList proc
	invoke SendMessage,hListBox,LB_GETCOUNT,0,0
	.while eax<iIndex
		MOV ecx,PlayList[eax*4]
		invoke SendMessage,hListBox,LB_ADDSTRING,0,ecx
		inc eax
	.endw
	ret
InitPlayList endp

DeletePlayList  proc 
local index:dword
	invoke SendMessage,hListBox,LB_GETCURSEL,0,0
	.if eax!=LB_ERR
	mov index,eax
	invoke SendMessage,hListBox,LB_DELETESTRING,EAX,0
	mov eax,index
	dec eax
	invoke SendMessage,hListBox,LB_SETCURSEL,eax,0
	mov ecx,index
	mov eax,PlayList[ecx*4]
	invoke SysFreeString,eax
	dec iIndex
	.ELSE
	.ENDIF
	ret
DeletePlayList endp
UpPlayList proc 
	invoke SendMessage,hListBox,LB_GETCURSEL,0,0
	.IF EAX!=LB_ERR
	.if eax==0
	jmp upover
	.endif
	push eax
        push eax
	push eax
	push eax
	invoke SendMessage,hListBox,LB_GETTEXT,EAX,ADDR Buffer
	pop eax
	invoke SendMessage,hListBox,LB_DELETESTRING,EAX,0
	pop eax
	push eax
	pop eax
	dec eax
	.if eax>=0
	invoke SendMessage,hListBox,LB_INSERTSTRING,eax,addr Buffer
	.else
	invoke SendMessage,hListBox,LB_GETCOUNT,0,0
	invoke SendMessage,hListBox,LB_INSERTSTRING,EAX,ADDR Buffer
	.endif
	pop ecx
	mov eax,PlayList[ecx*4]
	mov ebx,PlayList[ecx*4-4]
	mov PlayList[ecx*4],ebx
	mov PlayList[ecx*4-4],eax
	POP EAX
upover:	.if eax!=0
	DEC EAX
	invoke SendMessage,hListBox,LB_SETCURSEL,eax,0
	.ELSE
	INVOKE SendMessage,hListBox,LB_SETCURSEL,EAX,0
	.endif
	.ELSE
	.ENDIF
	ret
UpPlayList endp
DownPlayList proc
local count:dword
	invoke SendMessage,hListBox,LB_GETCOUNT,0,0
	MOV count,eax
	invoke SendMessage,hListBox,LB_GETCURSEL,0,0
	.IF EAX!=LB_ERR
	mov ebx,count
	dec ebx
	.if eax==ebx
	jmp downover
	.endif
	push eax
        push eax
	push eax
	push eax
	invoke SendMessage,hListBox,LB_GETTEXT,EAX,ADDR Buffer
	pop eax
	invoke SendMessage,hListBox,LB_DELETESTRING,EAX,0
	pop eax
	push eax
	pop eax
	inc eax
	.if eax<=count
	invoke SendMessage,hListBox,LB_INSERTSTRING,eax,addr Buffer
	.else
	invoke SendMessage,hListBox,LB_GETCOUNT,0,0
	invoke SendMessage,hListBox,LB_INSERTSTRING,EAX,ADDR Buffer
	.endif
	pop ecx
	mov eax,PlayList[ecx*4]
	mov ebx,PlayList[ecx*4+4]
	mov PlayList[ecx*4],ebx
	mov PlayList[ecx*4+4],eax
	pop eax
downover:
	.if eax< count
	inc eax
	invoke SendMessage,hListBox,LB_SETCURSEL,eax,0
	.else
	dec count
	invoke SendMessage,hListBox,LB_SETCURSEL,count,0
	.endif
	.ELSE
	.ENDIF
	ret
DownPlayList endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?