标签: custom-component

与相互使用的类的循环引用问题

我有以下两个类:

TcmTPDataPanel = class(TcmTPBasePanel)
    Database: TnxDatabase;
    Session: TnxSession;
  private
    FDataConnector: TcmTPDataConnector;
    MyNxDataBase: TnxDatabase;
    MyNxSession: TnxSession;
    MyRefNxDataBase: TnxDatabase;
  protected
    procedure Disconnect; virtual; abstract;
    procedure Refresh; virtual;
    procedure Requery; virtual; abstract;
  public
    procedure Connect;
  published
    property DataConnector: TcmTPDataConnector read FDataConnector write
        FDataConnector;
  end;


TcmTPDataConnector = class(TComponent)
  private
    FDatabase: TnxDatabase;
    FObservers: TList;
    FTableForCategories: TnxTable;
    FTableForItemCategoryLinks: TnxTable;
    FTableForItems: TnxTable;
    procedure SetTableForItemCategoryLinks(const Value: TnxTable);
  protected
    procedure IterateObservers;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Register(Instance: TcmTPDataPanel);
    procedure Unregister(Instance: TcmTPDataPanel);
  published
    property Database: TnxDatabase read FDatabase …
Run Code Online (Sandbox Code Playgroud)

delphi circular-dependency delphi-units custom-component

1
推荐指数
1
解决办法
1699
查看次数

组件创建问题:字段最终为零

这是我在这里工作的项目的延续: 与相互使用的类的循环引用问题

在那里收到的建议修复了ciruclar参考问题(再次感谢您的帮助).现在我正在与其他东西搏斗:TcmDataPanel.FObservingDataPanels总是最终= nil,显然是因为它永远不会被创建.(最初我遇到了访问冲突,但在进一步测试时发现FObserver始终为零).

这是相关的代码(它是一个TFrame单元,TcmTPDataPanel是TFrame descednent):

unit cmTPDataPanelFrame;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cmTPBasePanelFrame, cmTPPanels, nxdb, nxllComponent;

type
  TcmTPDataConnector = class;

  TcmTPDataPanel = class(TcmTPBasePanel)
    Database: TnxDatabase;
    Session: TnxSession;
  private
    FDataConnector: TcmTPDataConnector;
    MyNxDataBase: TnxDatabase;
    MyNxSession: TnxSession;
    MyRefNxDataBase: TnxDatabase;
  protected
    procedure Disconnect; virtual; abstract;
    procedure Refresh; virtual;
    procedure Requery; virtual; abstract;
  public
    procedure Connect;
  published
    property DataConnector: TcmTPDataConnector read FDataConnector write
        FDataConnector;
  end;

  TcmTPCustomDataConnector = class(TComponent)
  private
    FDatabase: TnxDatabase;
    FObservingDataPanels: TList;
    FTableForCategories: TnxTable;
    FTableForItemCategoryLinks: TnxTable;
    FTableForItems: …
Run Code Online (Sandbox Code Playgroud)

delphi oop inheritance custom-component

1
推荐指数
1
解决办法
234
查看次数

JComboBox 自定义垂直滚动条

这个目的主要是为了美观,我已经在 J​​TextArea 上做过类似的事情,但我无法弄清楚或无法从 JComboBox 的弹出窗口中访问垂直滚动条。我已经通过将其witdh设置为0来删除显示在顶部的箭头。

    setUI(new BasicComboBoxUI(){
        protected JButton createArrowButton(){
            return new JButton(){
                @Override public int getWidth() {
                    return 0;
                }
                @Override
                public void setFocusable(boolean focusable) {
                    super.setFocusable(false);
                }
            };
        }
    });
Run Code Online (Sandbox Code Playgroud)

jcombobox 图像

这是 JScrollPane 内的 JTextArea,没有箭头和更细的条

    getVerticalScrollBar().setPreferredSize(new Dimension(10, 0));
    getVerticalScrollBar().setUI(new BasicScrollBarUI(){
        @Override
        protected JButton createDecreaseButton(int orientation) {
            return createZeroButton();
        }

        @Override    
        protected JButton createIncreaseButton(int orientation) {
            return createZeroButton();
        }

        private JButton createZeroButton() {
            JButton jbutton = new JButton();
            jbutton.setPreferredSize(new Dimension(0, 0));
            jbutton.setMinimumSize(new Dimension(0, 0));
            jbutton.setMaximumSize(new Dimension(0, 0));
            return …
Run Code Online (Sandbox Code Playgroud)

java swing jcombobox custom-component vertical-scrolling

1
推荐指数
1
解决办法
3812
查看次数

Swift 线程 1:致命错误:init(coder:) 尚未实现(调用超级解决方案不起作用)

嘿伙计们,我已经四处搜索,但仍然找不到解决我的问题的方法。我在这里有一个自定义类:

import UIKit

/** 
  DatasourceController is simply a UICollectionViewController that 
allows you to quickly create list views.

 In order to render our items in your list, simply provide it with a 
Datasource object.
 */
open class DatasourceController: UICollectionViewController, 
UICollectionViewDelegateFlowLayout {

open let activityIndicatorView: UIActivityIndicatorView = {
    let aiv = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge)
    aiv.hidesWhenStopped = true
    aiv.color = .black
    return aiv
}()

open var datasource: Datasource? {
    didSet {
        if let cellClasses = datasource?.cellClasses() {
            for cellClass in cellClasses {
                collectionView?.register(cellClass, forCellWithReuseIdentifier: …
Run Code Online (Sandbox Code Playgroud)

xcode custom-component ios swift

1
推荐指数
1
解决办法
6075
查看次数

AV当使用另一个组件调用的一个组件的过程时

我不确定我是否已经解释了这个我能做到的最好但是,我们在这里......

我在表单上有2个自定义组件,它们在设计时通过IDE链接在一起.每当我从组件上调用一个过程时,我都会获得访问冲突,

模块"Project2.exe"中地址0049A614的访问冲突.读取地址00000034.

这是我的代码的一小部分

TMyClient = class(TClientSocket)
{...}
end;
Run Code Online (Sandbox Code Playgroud)

和...

TPresence = class(TComponent) 
 private
  ftheClient: TMyClient 
 public 
  procedure SetStatus(status: string);

 published
  property UserName : string read fUserName write fUserName;
  property theClient: TMyClient read ftheClient write ftheClient;
 end;   



procedure TPresence.SetStatus(status: string);
begin
 try
*****   if theClient = nil then
     Exception.Create('theClient  is Nil');
 except
   on e:Exception do
   MessageDlg(e.classname+', '+e.message, mtWarning, [mbOK], 0);
 end;
  {...}
end;
Run Code Online (Sandbox Code Playgroud)

0049A614在*****,IDE停在此处.

我也尝试过在运行时进行分配

Presence1.theClient := MyClient1;
Run Code Online (Sandbox Code Playgroud)

没有运气

使用Presence1或MyClient1中不依赖于彼此的程序可以正常工作.

德尔福7

跟进:从mghie的评论,我重新思考它.

我从表单中删除了TPresence组件(这导致了一些奇怪的IDE错误,可能与它有关)并创建了它的设计时间,分配了所需的一切.现在它可以正常工作,但是将TPresence组件重新放回到从上会带来错误.

谢谢你的帮助,我现在应该能够解决这个问题,如果我不能重新打开另一个问题:)

delphi delphi-7 access-violation custom-component

0
推荐指数
1
解决办法
378
查看次数

AS3使用Flash CS4创建组件

我想创建一个基本组件,由一个文本框和旁边的标签组成(换句话说,一个InputText和一个StaticText).

我只需要在Input文本框中设置并获取文本,静态文本将保持原样.

任何帮助将非常感谢!的Jasco

flash actionscript-3 custom-component flash-v3-components

0
推荐指数
1
解决办法
3716
查看次数

Flex:如何在主应用程序中调用自定义组件的公共功能?

如何从主应用程序调用自定义组件的公共功能.例如,我有一个计时器组件MyTimer.

在主应用程序中,我想调用startTimer()或stopTimer().

在主应用程序中,我有:

<visualcomponent:MyTimer />
Run Code Online (Sandbox Code Playgroud)

在组件中,我有:

public function startTimer():void {
     baseTimer = getTimer();
     t.start();
     }
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢.

-Laxmidi

apache-flex function custom-component

0
推荐指数
1
解决办法
871
查看次数

我需要有关如何实现可以在对象Inspector中显示的类的帮助

我有

...
  TDispPitch = class
  private
    iLineSize: Integer;
    iLineColor: TColor;
    bDisplayAccent: Boolean;
    bVisible: Boolean;
  published
    property LineSize : Integer read iLineSize write iLineSize;
    ...etc
  end;
...
Run Code Online (Sandbox Code Playgroud)

我想要在Object Insepector中显示此功能来编辑设置.

我尝试添加

property DispPitch: TDispPitch read FDispPitch write FDispPitch. like 
Run Code Online (Sandbox Code Playgroud)

可以显示DispPitch,但我看不到它的属性.比如LineSize,LineColor等

delphi properties class object custom-component

0
推荐指数
1
解决办法
1378
查看次数

自定义组件和对辅助bean的访问

JSF2中是否可以从自定义组件(在方法encodeBegin中)访问FacesContext和托管bean?

谢谢.

java custom-component jsf-2 managed-bean

0
推荐指数
1
解决办法
654
查看次数

如何在Delphi Form Designer中为自定义组件添加上下文菜单操作?

我正在做一个自定义组件,Delphi XE2中TComponent的后代,我想右键单击它并有2个选项:Next和Previous(例如)

怎么办?请提供代码段或示例.

该选项应该在设计时出现,右键单击表单上的组件,现在是TComponent的后代.但如果有更好的选择来获得功能,则不需要这样做.

下一个和上一个将用于根据集合中的主题切换组件的颜色(通过所有者组件列表).

delphi components custom-component delphi-xe2

0
推荐指数
1
解决办法
1373
查看次数

Android 自定义组件不显示其子组件

大家好,我想FieldSet在 Android 中创建一个组件。(类似html),所以像那个。所以我希望我的自定义组件有孩子并有一个板。电路板部分已经完成,但我在显示组件时遇到了一些问题。我正在关注这个答案。这是我的部分:

字段集.java :

public class FieldSet extends ViewGroup {

  //... 3 constructors

  @Override
  protected void onFinishInflate()
    int index = getChildCount();
    // Collect children declared in XML.
    View[] children = new View[index];
    while(--index >= 0) {
      children[index] = getChildAt(index);
    }
    // Pressumably, wipe out existing content (still holding reference to it).
    this.detachAllViewsFromParent();
    // Inflate new "template".
    final View template = LayoutInflater.from(getContext()).inflate(R.layout.field_set, this, true);
    // Obtain reference to a new container within …
Run Code Online (Sandbox Code Playgroud)

android custom-component android-custom-view layout-inflater

0
推荐指数
1
解决办法
1549
查看次数