我想将简单CAD系统的用户界面放在决策表中。但我很担心 如何将这些东西放在桌子上。
首先,有一个当前模式(CurMode)可以是: 移动,旋转,删除
接下来,有这样的鼠标操作:
OnLButtonDown中 OnLButtonUp OnRButtonDown OnRButtonUp OnMButtonDown OnMButtonUp 的OnMouseMove
也许对当前鼠标光标下的对象进行了加法测试 ObjectUnderMouse(true / False)
使用这些和其他参数,我想决定遵循以下规则:
如果Mode为Delete并且对象位于鼠标下并按下OnLButtonDown,则删除Object。
如果按下了MButtonUp(MouseWheel),请缩放+ 如果按下MButtonDown(MouseWheel),则缩放 -
如果Mode为Move且对象位于鼠标下并按下OnLButtonDown,则将对象放入缓冲区。 如果Mode是Move并且OnLButtonDown和Buffer和OnMouseMove中的对象动作,则移动对象
......等等。
你得到这个场景吗?
我google了很多,看到了非常简单的DT,但是这对于一个拥有数百个的可行大CAD系统来说是一个良好的开端 参数,状态,模式和UI-操作。
决策表最适合这种CAD系统的设计是什么?
提前致谢
答案 0 :(得分:1)
Statestep(http://statestep.com)可能正是您所寻找的。网站上给出的示例是针对用户界面的,并且描述了其用于非常大的系统(具有涵盖数百万种可能性的规则的决策表)。 C代码生成。
答案 1 :(得分:0)
感谢您的回复。我将仔细研究一下statestep(我们不使用QT)。但总的来说,我有一些问题需要决定我的CAD系统的哪一部分是一个条件,一个动作,一个条件备选方案等来定义像wiki这样的决策表。 Wiki Decision Table
答案 2 :(得分:0)
我有一个类似的决策过程要实施,这就是我想出的。大概可以改写更美,不过那是另外一个话题了!
并且您还可以将 if 语句中的布尔值对齐以始终位于相同的列上,使其看起来更像一个表格。
Public Sub FileSave1()
Dim xDlg As Dialog
Dim xTitle As String
On Error Resume Next
xTitle = ActiveDocument.BuiltInDocumentProperties("Title").Value
xTitle = xTitle & "" & Format((Year(Now() + 1) Mod 100), "20##") & "." & _
Format((Month(Now() + 1) Mod 100), "0#") & "." & _
Format((Day(Now()) Mod 100), "0#") & " Report - Firealarm - Building A"
Set xDlg = Dialogs(wdDialogFileSaveAs)
xDlg.Name = xTitle
xDlg.Show
End Sub