LibertyOne 发表于 2022-7-6 08:58:33

使用dialo进行程序开发

上周末,我提出了一个AutoLisp程序的想法,我想了解一些关于如何使用对话框正确构建程序的建议。就我的AutoLisp编程经验而言,它可以追溯到90年代末,在2000年到2006年期间有一次密集的编程爆发。从那以后,我真的没有时间做任何广泛的编程。只是一些主要用于解决accute问题且不再需要的节省时间的程序。
 
我正在寻找一些来自论坛的建议,以尽可能最好的方法开始这个计划。从一开始就用对话框开发程序?首先编写程序,最后设计对话框?还是写程序来设计对话框?
 
我在过去写过一到两个对话框,但与我想写的程序的性质无关。用户和对话框之间的交互应该是动态的,从我过去在这里看到的情况来看,这应该是可能的。
 
那么,您对程序/对话框的开发过程有何想法?欢迎所有想法、想法和意见!

BlackBox 发表于 2022-7-6 09:03:09

一般来说,由于您没有包含太多关于您希望例程/应用程序做什么的信息,我建议您首先编写例程,并允许它从表单中指定需要。只有这样,您才能确定表单组件中是否存在任何限制,这些限制可能会指示您的例程发生更改。
 
但是,要真正定制表单,您确实应该学习DCL。然而,如果你像我一样不知道如何编写DCL(对话语言),那么与学习DCL所需的时间相比,使用DOSLib的用户界面功能总是可以节省自己*一些*时间。
 
希望这有帮助!

LibertyOne 发表于 2022-7-6 09:05:55

感谢RenderMan的快速回复。通过教程和代码示例,我可以理解DCL的内容。我越来越倾向于这样一个事实,即对话框必须与程序一起开发,因为用户需要交互,但也需要引导他们走上正确的道路。
 
对于好奇的人来说,简而言之,该程序将执行以下操作:
 
-用户将从下拉列表中选择标准参数化零件。该零件(取决于它是哪一个)具有可以制造零件的特定属性。
-在第一次运行中,我从八个不同的参数化部分开始列表。下一个版本将有23个不同的参数化部分。(此时,我想到了一个问题:出于过滤原因,将下拉列表一分为二。)该列表在未来将增加到150多个不同的参数化零件,但对话框的功能仍然需要保持简单。
-由于要绘制参数化零件,总共有12个属性定义了23个不同的零件。属性在文本框中由用户定义,应检查是否有错误内容。
-然后读取用户输入,然后在三个视图的模型空间中绘制零件。我正在编写代码来绘制每个部分,这些将是主程序的子程序。
===========
动态对话框
 
我希望对话是动态的。当用户从下拉列表中选择某个零件时,应该有该零件的图像预览。图像将显示待填充零件的属性。
如果零件只有三个属性,则只有这三个属性对于用户输入应处于活动状态,其他属性将灰显。
 
虽然我觉得现在讨论这个项目的细节并不是很重要,但也许我所提到的可能有助于阐明我正在努力实现的目标。

LibertyOne 发表于 2022-7-6 09:09:39

我设法得到了对话框的基本布局应该是什么样子的屏幕截图。
 

 
我只需要填写下拉列表并制作一些图像幻灯片。

BIGAL 发表于 2022-7-6 09:12:47

别忘了,你可以让dialouge打开其他dialouge,这样你就可以让一个小组说8,然后打开另一个列表来选择,给你150个选择,如上所述,但不是在一个列表中。A-C D-F等拨号器re L L1 L2等可以与前缀增量和极限值的滑块交互。

BIGAL 发表于 2022-7-6 09:16:33

图像示例选项可打开更多拨号

LibertyOne 发表于 2022-7-6 09:18:09

谢谢你的意见,比格尔。
我还不知道我是否需要打开第二个对话,但在未来,谁知道呢。
不过,我需要的是一种在对话框打开时更改属性部分外观的方法。我有12个地方可以输入大小,但根据零件的不同,我不需要所有12个地方同时激活。
例如:我想做一块钢板。在下拉列表中,我会选择“钢板”。我需要输入长度、宽度和厚度的属性。所有其他应灰显。
我想拔一个螺栓。在下拉列表中,我会选择“螺栓”。我在这里需要的唯一属性是螺栓的长度和直径。所有其他应灰显。

irneb 发表于 2022-7-6 09:23:31

您只能启用/禁用DCL中的项目(使用mode\U tile功能)。你不能隐藏它们,也不能在运行时调整大小。有两种替代方法:(1)使用比格尔的建议,打开一个子对话框,或者关闭当前对话框,打开一个不同的对话框,其中所需的瓷砖设计不同。这两种方法都不是可能的“最佳”UI设计,但如果你只坚持使用DCL,那么你只能做到这一点。DCL语言真正是为DOS设计的,与今天的对话框/表单相比,它极其有限。
 
如果你想要一个更“动态”的对话框,可以使用OpenDCL。或者在Visual Studio中创建对话框并使用DotNet/ARX——您可能可以允许lisp调用它们,但既然您正在使用DotNet/ARX,为什么?

Guest kruuger 发表于 2022-7-6 09:23:59

可以“显示/隐藏”控件,但这可能需要大量工作。
克鲁格

Lee Mac 发表于 2022-7-6 09:28:17

我接受两个对话定义?
页: [1] 2
查看完整版本: 使用dialo进行程序开发