
VB60测试通过
'利用随机函数产生60个100~200之间的随机整数,将其中的偶数按由小到大的顺序排列并输出,将奇数按由大到小的顺序排列并输出。
'1.将随机产生的60个整数按每行10个数输出到窗体或文本框中。
'2.将排好序的偶数和奇数分别输出到两个文本框中。
Dim RndArray(6, 10) As Integer
Dim OddArray() As Integer
Dim EvenArray() As Integer
Dim i, j As Integer
Dim m, n As Integer
Private Sub Cmd_Exit_Click()
'销毁数组
Unload Me
End Sub
Private Sub Cmd_Start_Click()
'除数化
MeTxt(0)Text = ""
MeTxt(1)Text = ""
MeTxt(2)Text = ""
ReDim OddArray(60)
ReDim EvenArray(60)
For i = 0 To 5 Step 1
For j = 0 To 9 Step 1
RndArray(i, j) = RndNuN(100, 200)
Next j
Next i
For i = 0 To 5 Step 1
For j = 0 To 8 Step 1
MeTxt(0)Text = MeTxt(0)Text + Trim(Str(RndArray(i, j))) + ","
Next j
MeTxt(0)Text = MeTxt(0)Text + Trim(Str(RndArray(i, j))) + vbCrLf
Next i
m = 0
n = 0
For i = 0 To 5 Step 1
For j = 0 To 9 Step 1
If RndArray(i, j) Mod 2 Then
OddArray(m) = RndArray(i, j)
m = m + 1
Else
EvenArray(n) = RndArray(i, j)
n = n + 1
End If
Next j
Next i
ReDim Preserve OddArray(m)
ReDim Preserve EvenArray(n)
DwComp OddArray(), m
UpComp EvenArray(), n
m = m - 1
n = n - 1
For i = 0 To m Step 1
MeTxt(1) = MeTxt(1) + Trim(Str(OddArray(i))) + ","
Next i
For i = 0 To n Step 1
MeTxt(2) = MeTxt(2) + Trim(Str(EvenArray(i))) + ","
Next i
End Sub
Public Function RndNuN(ByVal Min As Integer, ByVal Max As Integer)
RndNuN = Min + (Max - Min) Rnd
End Function
Public Function UpComp(ByRef parray() As Integer, ByVal num As Integer)
Dim temp As Integer
num = num - 2
For i = 0 To num Step 1
For j = 0 To num Step 1
If parray(j) > parray(j + 1) Then
temp = parray(j)
parray(j) = parray(j + 1)
parray(j + 1) = temp
End If
Next j
Next i
End Function
Public Function DwComp(ByRef parray() As Integer, ByVal num As Integer)
Dim temp As Integer
num = num - 2
For i = 0 To num Step 1
For j = 0 To num Step 1
If parray(j) < parray(j + 1) Then
temp = parray(j)
parray(j) = parray(j + 1)
parray(j + 1) = temp
End If
Next j
Next i
End Function
'利用随机函数产生100个10~99之间的随机整数,找出其中的素数,并将这些素数求和。
'1 将随机产生的100个整数存入数组,按每行10个数输出到窗体或文本框中。
'2 用Sub子过程或Function函数过程判断随机整数是否为素数。
'3 将素数按每行10个数在窗体或文本框中输出。
'4 将素数的个数以及求和结果出到窗体或文本框中。
Dim RndArray(10, 10) As Integer
Dim PrimArray() As Integer
Dim i, j As Integer
Dim m, n As Integer
Dim num As Integer
Dim sum As Integer
Private Sub Cmd_Click(Index As Integer)
If Index Then
Unload Me
Else
'初始化
MeTxt(0)Text = ""
MeTxt(1)Text = ""
MeTxt(2)Text = ""
MeTxt(3)Text = ""
For i = 0 To 9 Step 1
For j = 0 To 9 Step 1
RndArray(i, j) = RndNuN(10, 99)
Next j
Next i
For i = 0 To 9 Step 1
For j = 0 To 8 Step 1
MeTxt(0)Text = MeTxt(0)Text + Trim(Str(RndArray(i, j))) + ","
Next j
MeTxt(0)Text = MeTxt(0)Text + Trim(Str(RndArray(i, j))) + vbCrLf
Next i
m = 0
n = 0
num = 0
sum = 0
ReDim PrimArray(10, 10)
For i = 0 To 9 Step 1
For j = 0 To 9 Step 1
If IsPrime(RndArray(i, j)) Then
PrimArray(m, n) = RndArray(i, j)
MeTxt(1)Text = MeTxt(1)Text + Trim(Str(PrimArray(m, n))) + ","
sum = sum + PrimArray(m, n)
n = n + 1
If n > 9 Then
m = m + 1
n = 0
End If
num = num + 1
End If
Next j
Next i
MeTxt(2)Text = Trim(Str(num))
MeTxt(3)Text = Trim(Str(sum))
End If
End Sub
Public Function RndNuN(ByVal Min As Integer, ByVal Max As Integer)
RndNuN = Min + (Max - Min) Rnd
End Function
Public Function IsPrime(ByVal n As Integer) As Boolean
Dim a, b As Integer
IsPrime = False
If n Mod 2 Then
b = Sqr(n)
For a = 3 To b Step 2
If n Mod a = 0 Then
Exit Function
End If
Next a
IsPrime = True
End If
End Function
Private Sub Command1_Click()
Dim Flag As Integer
Text1SetFocus
If IsNumeric(Text1Text) Then
If Text2Text = "abcd" Then
MsgBox "登录成功!"
End
Else
Flag = MsgBox("密码错误", 48 + 5, "输入密码")
If Flag = vbRetry Then
Text2Text = ""
Text2SetFocus
Else
MsgBox "登录失败!"
End
End If
End If
Else
Flag = MsgBox("账号中出现非数字字符" + vbCrLf + "请重新输入!", 16, "输入账号")
If Flag = vbOK Then
Text1Text = ""
Text1SetFocus
End If
End If
End Sub
Private Sub Form_Load()
Text2PasswordChar = ""
End Sub
Form1ControlsAdd "VBCommandButton", "cmdObj1", Frame1
在Frame1上画一个按钮
Add 方法(Controls 集合)示例
Private Sub Form_Load()
Form1ControlsAdd "VBCommandButton", "cmdObj1", Frame1
With Form1!cmdObj1
Visible = True
Width = 2000
Caption = "Dynamic Button"
End With
End Sub
注意 上面的代码例子使用 ! 作为一个语法要素。您也可以使用标准集合语法如 Form1Controls("cmdObj1") 来引用该控件。
第二个例子使用 WithEvents 关键字声明一个 CommandButton 类型的对象变量,允许您编程该控件的事件。对象变量被设置为由 Add 方法返回的引用。要试验该例,把它的代码粘贴到声明部分并且运行该工程。
Option Explicit
Private WithEvents btnObj As CommandButton
Private Sub btnObj_Click()
MsgBox "This is a dynamically added button"
End Sub
Private Sub Form_Load()
Set btnObj = ControlsAdd("VBCommandButton", "btnObj")
With btnObj
Visible = True
Width = 2000
Caption = "Hello"
Top = 1000
Left = 1000
End With
End Sub
第三个例子添加一个非引用控件到 Controls 集合。然而要编程这样一个控件的事件,必须声明一个 VBControlExtender 类型的对象变量,并把由这个方法返回的引用设置到该对象。然后使用 ObjectEvent 事件编程该控件的事件。
Option Explicit
Dim ctlExtender As VBControlExtender
Private Sub Form_Load()
Set ctlExtender = ControlsAdd("Project1UserControl1", "MyControl")
With ctlExtender
Visible = True
Top = 1000
Left = 1000
End With
End Sub
Private Sub extObj_ObjectEvent(Info As EventInfo)
'使用 Select Case 编程该控件事件。
Select Case InfoName
Case "UserName"
'检查用户名值。
MsgBox Info EventParameters("UserName")Value
'现在显示其他情况
Case Else '未知事件
'这里处理未知事件。
End Select
End Sub
呵呵
假设你已经显示过FORM2,并且form2的text1已经得到数据
那么在form1的代码中可以直接使用form2的text1的值方法就和理解的是一样的
比如说:
print form2text1text
假如你还是不会,那我就只能form2show写出来了
在form1中添加一个按钮,代码就是:
form2show
form1hide
这时form2中也添加一个按钮,代码是:
form1show
form2hide
然后就可以回到最前面了
程序运行后,在form1按钮,打开form2在form2的text1中输入一串字比如"这是窗口2写的"
然后点击form2的按钮回到form1
如果form1中有个按钮的代码是:
print form2text1text
就可以显示刚刚的那么字了
我了补充呵: 设标志位呀
比如FORM1的COMMAND1动作中, 先检查标志位,默认是FALSE, 然后就执行动作, 一直执行到SHOW FORM2, 然后FORM2就出来了, 写文本框内容, 再确定时,先改标志位为TRUE ,再HIDE FORM2,然后再CALL FORM1的COMMAND1
FORM1的COMMAND1的代码后半部分,就是识别当标志位为TRUE时的动作
有时候语言总是显得苍白无力呵补充代码吧:
新建工程,2个窗体
form1 , 一个按钮,一个Text1
form2, 一个按钮, 一个Text1
form1的代码如下:
Public cmdzt As Boolean
Public Sub Command1_Click()
If cmdzt = False Then
MeHide
Form2Show
Exit Sub
End If
If cmdzt = True Then
Text1 = Form2Text1
cmdzt = False '以便接受下一次动作
End If
End Sub
Private Sub Form_Load()
cmdzt = False
End Sub
form2的代码:
Private Sub Command1_Click()
Form1cmdzt = True
Call Form1Command1_Click
Form1Show
MeHide
End Sub
我不知道这算不算你说的,点击窗体1的按钮, 运行到1半时(前一半呵), 打开窗体2,录入数据后,点击按钮,返回窗体1,接着刚刚的按钮继续动作
我这个代码是在窗体1,点按钮后,因为标志为FLASE,于是打开窗体2, 在窗体2上,可以在文本框录入一些数据,然后按按钮后,将窗体1的标志位置为TRUE,然后CALL 了窗体1的按钮动作,因为标志位的变化,所以窗体1的按钮会执行剩下的代码(后一半)就是在窗体1的文本框中显示窗体2刚刚文本框录入的信息
望采纳!
你说的打开EXE文件是指什么
是调用外部EXE文件吗
还是打开EXE进程
---------------------------------------
调用外部EXE文件
有两个API
一个是:ShellExecute()
一个是:WinExec()
-------------------------
ShellExecute函数原型及参数含义如下:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;
●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即ApplicationHandle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。
●Operation:用于指定要进行的 *** 作。其中“open” *** 作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print” *** 作表示打印由FileName参数指定的文件;“explore” *** 作表示浏览由FileName参数指定的文件夹。当参数设为nil时,表示执行默认 *** 作“open”。
●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。
上述仅仅是ShellExecute函数的标准用法,下面将介绍它的特殊用法。
-------------------------------------------------------------------
WinExec()
-------------
SW_SHOW表示以当前大小激活运行后的程序窗口并显示它。
第二个参数是控制程序主窗口的显示方式
第二个参数可能的取值为 :
SW_HIDE //程序启动后隐藏主窗口
SW_MAXIMIZE //最大化运行
SW_MINIMIZE //最小化运行
SW_RESTORE //将最大化或最小化的窗口恢复正常
SW_SHOW //以当前位置和大小显示主窗口
SW_SHOWMAXIMIZED //激活窗口并以最大化运行
SW_SHOWMINIMIZED //激活窗口并以最小化运行
SW_SHOWMINNOACTIVE //最小化运行,但不激活
SW_SHOWNOACTIVATE //以上一次的窗口大小运行,但不激活
SW_SHOWNORMAL //普通方式,一般运行时采用这个
一般情况下,第二个参数取SW_SHOWNORMAL即可,这样就是无参数运行oneexe
WinExec("oneexe", SW_SHOWNORMAL);第二个参数只是WinExec函数的参数,不是oneexe的参数
--------------------------------------------------------------------
WinExec()这个没有什么好说的,只有两个参数,下面就说下ShellExecute()
这个我做过一个程序就专用到这个实例
实现打开DOS,并运行MLexe文件来编译testasm
m_mlfile="mlexe /c /coff ";
m_linkfile="linkexe /subsystem:windows ";
m_pathFormat("d:\\masm32\\bin");
m_asmfile="d:\testasm"
CString param1;
param1Format("/k %s%s",m_mlfile,m_asmfile);
UpdateData();
ShellExecute(this->m_hWnd,"open","cmdexe",param1,m_path,SW_SHOW );
--------------------------------------------------------------------
如果是打开进程就用:下面是打开指定EXE进程,并读内存值的例子,一看就明了
已知
[[008f77d4] +28]=ESIESI + 596, 当前血, (10进制的)
-----------------------------------------------------------
DWORD pid;
HWND hWnd=::FindWindow(NULL,TEXT("Element Client"));
if(!hWnd)
{
AfxMessageBox("can't finded the program");
return;
}
::GetWindowThreadProcessId(hWnd,&pid);
HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
LPVOID lpBaseAddress=(LPVOID)0x8F77D4;
DWORD dwValue;
DWORD dwValue3;
DWORD dwValue5;
if(!::ReadProcessMemory(hProcess,lpBaseAddress,&dwValue,sizeof(DWORD),0)) return;
LPVOID dwValue2=(LPVOID)(dwValue+40);
if(!::ReadProcessMemory(hProcess,dwValue2,&dwValue3,sizeof(DWORD),0)) return;
LPVOID dwValue4=(LPVOID)(dwValue3+596);
if(!::ReadProcessMemory(hProcess,dwValue4,&dwValue5,sizeof(DWORD),0)) return;
m_str001Format("%d",dwValue5);
UpdateData(FALSE);
Dim mbMouseDown As Boolean
Dim mnStartX As Long, mnStartY As Long
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
mnStartX = X
mnStartY = Y
mbMouseDown = True
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim r As Long
If mbMouseDown = False Then Exit Sub
If Button And vbLeftButton Then
Picture1Cls '擦去上次画的圆
r = Abs(X - mnStartX) / 2 '圆大小取决于横向移动距离
If X > mnStartX Then
Picture1Circle (mnStartX + r, mnStartY + r), r, &HFF
Else
Picture1Circle (mnStartX - r, mnStartY + r), r, &HFF
End If
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
mbMouseDown = False
End Sub
以上就是关于用VB6.0设计简单程序全部的内容,包括:用VB6.0设计简单程序、求代码vb 6.0版、VB6.0如何用代码添加控件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)