esc键结束循环?
我有一个简单的sta/off多行文字标签测试,我似乎无法通过ESCAPE键或空格键重新加载表单。测试标签从路线中选择了拾取的点。我不能去做的是如何按escape键或scape栏退出循环并重新加载表单,以便从另一条路线标记新点
是否有人有链接显示我如何按下esc键或空格键来结束循环并显示表单。
我有“如果Chr(vbkeyscape)=27,则
此绘图。SendCommand“ESC”&vbCr
'Exit Do
'UserForm1。如果
感谢
John Coon
执行
basePnt=ThisDrawing.Utility,则显示
结束。GetPoint(,“选择要标记的位置:”)
o对齐。点位置basePnt(0)、basePnt(1)、testStax和testStay<br>OAalignment。StationOffset basePnt(0)、basePnt(1)、StatValue、OffValue<br>strOFF=格式(OffValue、strFormat)<br>strStation=OAalignment。GetStationStringWithEquations(StaValue)
如果StaValue0,则
设置mtxtLabel=ThisDrawing.ModelSpace。添加mtext(basePnt、dblWidth、strext)
mtxtLabel。高度=dblHeight
mtxtLabel。旋转=dblRot
如果
mtxtLabel,则结束。更新
循环
**** Hidden Message ***** Matt,
谢谢你的帮助。
如果我添加了
If Err。number0 Then
Exit Do
end if
它标记了一个标签,然后重新加载表单,在它标记为许多提货位置之前,但从未在没有崩溃的情况下退出循环。约翰 您还可以使用GetAsyncKeyState
http://www.theswamp.org/index.php?topic=9301.msg119833#msg119833
这是一个很好的例子http://www.theswamp.org/index.php?topic=26302.msg317417#msg317417
这是一个很好的例子http://www.theswamp.org/index.php?topic=18104.msg219595#msg219595
。。。 我会看看我是否可以加入Matt或jgr的帖子
只是看看jgr的帖子,我想这可能会超出我的能力范围
谢谢各位
John
Option Explicit
Dim SomePoint As Variant
Public Sub GetPointLoop()
On Error Resume Next
Do
SomePoint = ThisDrawing.Utility.GetPoint(, "Select a point...")
If Err.Number0 Then
Exit Do
Else
AddText
End If
Loop
MsgBox "Show form"
End Sub
Private Sub AddText()
Dim ptEN(0 To 2) As Double
Dim objText As AcadText
ptEN(0) = SomePoint(0)
ptEN(1) = SomePoint(1)
ptEN(2) = 0
Set objText = ThisDrawing.ModelSpace.AddText("THIS IS A TEST", ptEN, "12")
objText.Update
End Sub 马特,
好的...我想我从这篇文章中得到了它。有趣的是......我发现了一个旧的陆地桌面例程,它的功能与C3D基本相同,并且运行良好,它所拥有的只是On Error GoTo再见。
我会从您的上一篇文章中更改以添加格式。
谢谢您的帮助!
John
'旧的陆地桌面
在错误上转到再见
做
dim varDataPnt1 As Variant
varDataPnt1=ThisDrawing.Utility.GetPoint(Prompt:=vbCrLf&"Select Next Point to Label:")
objAlign.StationOffsetvarDataPnt1(0), varDataPnt1(1), dblSta, dblOff, dblDir
strStaFormat="#0.00"
strOffFormat="#0.00"
strSta=左(Format(dblSta, strStaFormat), Len(Format(dblSta, strStaFormat))-5)_
& "+" & 右(Format(dblSta, strStaFormat),5)
如果dblFF>0然后
stroff=Format(d(格式(dblOff, strOffFormat))-1))_
& "' LT"
结束如果
strText="STA: " & (strSta)&"\P"_
&"OFF: " & (strOff)&"\P"_
设置mtxtLabel=ThisDrawing.ModelSpace.AddMText(varDataPnt1, dblWidth, strText)
mtxtLabel.Height=dblHeight
mtxtLabel.Rotation=dblRot
mtxtLabel.Update
循环
再见:
显示
我能够添加马特帖子中的一些信息来处理我的小例程。我调整了一个现有的简单的x、y标签例程,该例程工作正常,右键单击或esc时产生错误,然后按照我想要的方式重新加载表单,但是我仍然无法在不崩溃绘图的情况下将民用3D对齐例程设置为esc到用户表单的错误。今天早上从飓风中返回工作后,我又看了一遍。
我添加了
如果StaValue=0,那么
转到再见
结束如果
会产生错误,因为所选位置不在对齐范围内,它会像我需要的那样重新加载表单
感谢您的所有帮助Matt W
John
页:
[1]