我有一个非可视组件来管理其他视觉控件.
我需要引用组件正在运行的表单,但我不知道如何获取它.
我不确定添加一个构造函数与父指定为控件,因为我希望组件只是被放入设计器中工作.
另一个想法是让父母的财产作为控制,默认值为'我'
任何建议都会很棒
编辑:
为了澄清,这是一个组件,而不是一个控件,请参见此处:ComponentModel.Component
我有一个大致的想法,并且有一些明显的情况,但是对我来说也有一些灰色区域 - 何时最好用于从组件扩展以及何时最好创建用户控件?这与我试图解决的具体工作问题有关,但具体问题并不重要 - 这个问题的一般答案对我来说已经足够了.
我在Delphi中使用了多年的框架,它们是VCL最强大的功能之一,但它们的标准使用似乎有一些风险,例如:
很容易意外地移动或编辑框架主机窗体上的框架子组件,而没有意识到你正在"调整"框架 - 我知道这不会影响原始框架代码,但它通常不是你想要的.
使用框架时,您仍然可以使用其子组件进行可视化编辑,即使该框架已有数年之久且不应触及.
所以我开始思考......
是否有一种"分组"组件的方式,使他们的位置"锁定"?这对完成的表格和框架都很有用.通常其他开发人员将代码返回给我,其中只有表单边界发生了变化,甚至他们也不打算进行任何更改.
有没有办法将框架及其组件转换为单个Delphi组件?如果是这样,框架内部构件将完全隐藏,其可用性将进一步增加.
我对任何想法感兴趣......
布莱恩.
我有以下简单的短路语句,应该显示组件或什么都没有:
{profileTypesLoading && <GeneralLoader />}
如果该语句为false,则呈现0
而不是任何内容.
我已经做了一个console.log(profileTypesLoading)
公正的事情来快速查看该profileTypesLoading
属性的状态,并且它是预期的1或0.0应为false ...导致无法渲染.对?
知道为什么会这样吗?
我们正在使用C#.NET.
我们正在寻找一种方法来显示实时流式1分钟金融股票图表.
需要: - 烛台 - 缩放/平移 - 图表在接收流数据时实时滚动
Woud like: - 在图表上打印元数据的方法(买/卖点等)
我们不介意付钱,所以任何建议都要付出代价!
我一直认为所有者负责销毁视觉控制,如果我nil
作为所有者传递,我可以手动控制销毁.
请考虑以下示例:
TMyForm = class (TForm)
private
FButton : TButton;
end;
...
FButton := TButton.Create(nil); // no owner!!
FButton.Parent := Self;
Run Code Online (Sandbox Code Playgroud)
我希望这个按钮产生内存泄漏,但它没有,实际上是析构函数TButton
被调用.
进一步调查显示TWinControl
析构函数包含以下代码片段:
I := ControlCount;
while I <> 0 do
begin
Instance := Controls[I - 1];
Remove(Instance);
Instance.Destroy;
I := ControlCount;
end;
Run Code Online (Sandbox Code Playgroud)
看起来它正在摧毁子组件(Parent
设置为控件本身的组件).
我没想到父控件会破坏控件.任何人都可以解释为什么会这样吗?如果我通过一个所有者,谁在摧毁这个物体?
Stackoverflow还有关于此问题的另一个问题,但我没有找到可接受的解决方案.所以我再问一遍,因为旧的问题没有引起人们的注意.
情况就是这样.我有'main.qml','feature1.qml','feature2.qml'定义的应用程序屏幕.
这些屏幕共享标题栏下方的相同工具栏.工具栏有多个项目,因此复制粘贴QML代码就像疯了一样.这个问题:QML文件包含 - 或者一个单片文件(结构QML代码)?说可以只使用QML文件名作为组件名称,但我无法使其正常工作.
有解决方案吗 详情请参阅.
我遇到了一个问题,我通过cookie来解决它,但我想解决没有cookie的问题.我有一个名为app-header的组件,它有另一个叫做outmodal的组件.现在,我的第一个Vue实例需要组件app-header.
var vue = new Vue({
el : "html",
data : {
title : "Site Title",
description : "description of page",
keywords : "my keywords",
view : "home",
login : "login"
},
components:{
"app-header" :require("../../components/header"),
"app-footer" :require("../../components/footer"),
"home" :require("../../views/home")
},
});
Run Code Online (Sandbox Code Playgroud)
app-header的代码
var Vue = require("vue");
Vue.partial("login",require("../../partials/login.html"));
Vue.partial("logged",require("../../partials/logged.html"));
module.exports = {
template : require("./template.html"),
replace : true,
components : {
outmodal : require("../outmodal")
},
props : ['login']
}
Run Code Online (Sandbox Code Playgroud)
出口代码
var Vue = require("vue");
Vue.partial("loginModal",require("../../partials/loginModal.html"));
module.exports = {
template : require("./template.html"), …
Run Code Online (Sandbox Code Playgroud) Delphi组件有CreateWnd
和CreateWindowHandle
(DestroyWnd
和DestroyWindowHandle
).它们都打算被后代覆盖,对吧?除了底层的VCL实现之外,不打算调用它?
它们之间有什么区别; 什么时候应该被覆盖?
如果我检查使用angular-cli创建的angular 2项目的index.html文件,我可以看到该页面只包含来自dist文件夹的3个文件:
inline.bundle.js
vendor.bundle.js
main.bundle.js
Run Code Online (Sandbox Code Playgroud)
但现在我试图了解每个文件的作用.我使用angular-cli编写了组件,我已降级,所以我可以在另一个用angular 1编写的应用程序中使用它.如果我只是将这3个文件添加到我的index.html,再加上app.module.ts文件,似乎我已升级我的应用程序,一切正常.我试图解开为什么,因为谷歌角度不是在谈论角度cli以及它如何帮助迁移.