用球拍创建新的snip%



我正在尝试在Drracket的文本窗口中创建一个新的GUI元素,例如PICTS或语法对象。据我所知,最标准的方法是使用snip% 1

不幸的是,创建新剪辑的文档虽然全面,但有点难以理解,并留下了一些问题。

对于初学者,snip%snip-class%有什么区别?为什么需要将它们分为两个类,而不是仅仅合并为一个类?是因为多次剪子会使用一个折磨类吗?

第二,什么是snip-reader<%>?不仅为什么需要一个单独的类,而且为什么要安装它的模块? 2 如果它确实需要是新类,为什么不能只引用它直接。为什么要经历整个构造过程,然后解析形式的字符串: "(lib ...)n(lib ...)"

我的意思是,现在可能有任何理由进行这种设计,它可能只是旧API的残余。如果是这样,是否有人想过要使新的API更加一致?或者,如果有这种设计的原因,您能告诉我什么是什么,因为文档似乎并不清楚。

我的意思是,截至目前,我可以复制/粘贴文档中给出的有关创建新剪辑的示例。但是我很难理解这里的设计,因此我可以正确使用它们。

1 我知道还有其他方法可以做,但是我也想拥有交互式按钮和whats。

2 我知道它不需要需要作为库本身,但文档似乎强烈朝着这个方向推动。<<<<<<<<<<<<<<<<

好吧,我想我终于找到了答案。从广义上讲:

snip%类包括绘制剪切的方法,告诉编辑器为图片保留多少空间以及处理鼠标诸如鼠标的事件。

接下来,snip-class%类用于编码和解码折磨。这必须是一个单独的类,因为保存到文件时,编辑器需要编码它是什么类型的剪辑,并且出于明显的原因,它不能仅仅将字面的snip%类放入其中。它在文件中存储的值是 snip-class%'s"类名称"。这可以是任何事物,只要编辑器具有与snip-class%关联的类名称,它可以加载。此外,如果是"(lib ...)""(lib ...) (lib ...)"球拍的形式,则只会自动将其加载到您的列表中。

没有什么需要安装的"需求",这只是最简单的方法。否则,您需要手动告诉编辑器在实际加载文件之前如何处理剪切。

相关内容

  • 没有找到相关文章

最新更新