问题标签 [component-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
165 浏览

delphi - 如何制作一个不能包含其他控件的控件?

我正在设计一个自定义控件,每次我在表单设计器中突出显示它,然后从控件面板中选择另一个控件时,新的控件最终都会出现在我的控件中,就好像它是一个 TPanel 或 TGroupBox。这不是我想要的,所以我怎样才能避免它发生呢?

0 投票
1 回答
164 浏览

package - 封装和组件设计的指南/原则

好的,我们的 Visual Studio 解决方案在其中的项目数量方面增长很大。除了显而易见的事情外,我想检查它现在的方式是否是它必须的,或者我们可以更好地重新组织/打包它。

你知道我可以参考的关于指南、封装和组件设计原则的任何好的文本吗?深入的东西,具有良好的分析,而不仅仅是 a、b、c 层或第 1、2、3 层等。

谢谢。

0 投票
2 回答
708 浏览

delphi - 避免调用 ProcessMessages

我创建了一个组件,它在 TWinControl 中嵌入了一个硬件加速的渲染器,因此您可以将它放置在表单上。它在大多数情况下工作得很好,但是如果我尝试调整控件的大小,一切都会变成空白,直到消息循环运行并为渲染器调用 WndProc,渲染器托管在外部 DLL 中。这意味着我需要在代码中调整控件大小后显式调用 Application.ProcessMessages,我知道这被认为是不好的做法。

当我更改控件的大小时,有没有办法在控件本身中放置一些逻辑以使其调用 DLL 中的 WndProc,这样我就不需要调用 ProcessMessages 来获取正确呈现的内容?

0 投票
5 回答
2496 浏览

delphi - 为什么我的控件不接受键盘输入?

我已经构建了一个自定义控件,我正在尝试向其发送输入。它将接受鼠标输入并正确报告 MouseDown、MouseMove 和 MouseUp,但无论出于何种原因,它都不会接受键盘输入。当我单击它时,它不会获得焦点,并且我按下的任何键都会被任何已经拥有焦点的控件解释。

这可能是非常简单的事情。我想看的第一个地方是 ControlStyle 属性,但我在帮助文件中唯一能看到的关于键盘输入的是csNoStdEvents,它禁用了它,而我的控件没有。那么我需要做什么才能使我的控件可以接收输入焦点?

0 投票
0 回答
87 浏览

c# - 在重新启动 Visual Studio 2015 更新 2 之前,引用的组件不会更新

描述:

我有两个项目(例如);第一个项目包含一个[ToolBoxItem(true)]添加了属性的组件类;第二个项目参考第一个项目并使用第一个项目的设计组件。

现在,当我对组件类进行任何更改时,我需要重新启动 Visual Studio 以卸载加载的组件 dll 文件。

我在但是找到加载引用的位置%appdata%/Local/Microsoft/Visual Studio/14.0/ProjectAssemblies/;,直到 Visual Studio 进程运行,我无法删除该文件夹的内容。

问题

我有一个包含 39 个项目的解决方案文件,我需要更改一些项目的源代码并查看可执行项目中组件的更新源代码。

如何在不重新启动 Visual Studio 的情况下完成上述工作?(可能是visual studio命令窗口中的一个命令)

0 投票
1 回答
55 浏览

javascript - 将 ES6 对象的方法从一个对象动态附加到另一个对象

我有这个看起来像这样的基本组件类

我希望 GameObject 的实例通过执行类似的操作来动态继承该行为

这样我就可以轻松做到

这可以通过 ES6 实现吗?如果不是,我还有什么其他选择?

0 投票
3 回答
135 浏览

javascript - ReactJS:在组件类中不需要构造函数的一些标准是什么?

我想知道组件的类声明中不需要构造函数的条件。我认为它是针对无状态组件的,但还有其他原因吗?例如,组件内部没有任何功能(除了生命周期功能)是一个吗?

0 投票
0 回答
1199 浏览

react-native - 用高程反应本机重叠视图不起作用

带有重叠按钮的卡片提升

我想在卡片上方显示带有高度的按钮,但我的问题是按钮在卡片后面。如果我删除卡片的高度,则按钮显示在卡片上方。我想要卡片上方的按钮和带有高度的卡片。我怎样才能做到这一点?

目前我将按钮放在卡片下方,并给按钮减去 marginTop,它在没有卡片提升但没有提升的情况下工作。

注意:我尝试了绝对位置和 zIndex,但没有奏效。

0 投票
0 回答
67 浏览

.net - 添加对其 DLL 的引用后,是否可以在 VisualStudio 的工具箱中自动显示继承/自定义控件(WinForms)?

我正在使用带有 .NET Framework v3.5 的 Visual Studio 2008。

考虑这种情况:
您创建了一个名为“SomeDLL”的新类库项目,
并在其中创建了一个名为“SpecialButton”的类,
它继承了System.Windows.Forms.Button.

如果您这样做,并构建您的项目,然后在该项目中添加一些表单,
那么当您转到表单的设计器时,
您将在 VisualStudio 的工具箱中看到您刚刚创建的继承按钮:

它是由 VisualStudio 自动添加到工具箱中的,
您无需右键单击工具箱,选择“选择项目...”,
然后浏览长列表或浏览 DLL 并添加它。

Visual Studio 甚至为其创建了一个新选项卡,其名称为 DLL。

到目前为止还算舒服。

现在考虑这种情况:
您创建另一个项目,这次是一个名为“SomeEXE”的 Windows 应用程序。添加对先前创建和编译的 DLL(名为“SomeDLL”)的引用

现在,如果您转到 SomeEXE 项目中的窗体,然后打开工具箱,
尽管您添加了包含控件的 DLL,但它似乎不会自动出现在工具箱中..
(至少在我的情况)

有什么可以做的,那么在添加对包含控件的DLL的引用之后,控件会自动出现在引用项目的工具箱中吗?

无需开发人员右键单击工具箱,
然后“选择项目...”,
然后浏览 DLL(通过添加引用添加到项目中)
等。

我之所以问这个问题,不仅是因为在 DLL 中创建控件后每次都需要做一些工作,
还因为如果您在某个项目中手动将控件添加到工具箱中,
那么它不会刚刚添加到该项目的工具箱中,从现在开始它通常会添加到 Visual Studio 中,
即使在其他不需要它的项目中,您也会看到它,甚至不引用该 DLL..

使用自动方式,不会出现此问题..

0 投票
0 回答
69 浏览

javascript - 你会如何在 Angular 6 中设计这个组件?

我有一个关于正确组件设计的相当基本的问题。

我创建了一个基本的手风琴组件,我用它来显示标题和描述。如果单击标题,则显示或隐藏(切换)说明。

目前我将模板中的标题和描述作为道具传递。

手风琴模板

使用这种结构,渲染一个没有任何列表项或新行的简单段落不是问题。

但是,假设 individualProjects 数组的一项如下:

我希望能够将“项目详细信息 x”项目呈现为列表元素,这表明我在这里需要不同的结构。我意识到我可能会遇到与此问题有关的许多不同情况,这需要我更新此结构。

这是使用ng-content的合理点吗?否则,你会建议我如何处理这个问题?

谢谢