Einzelnen Beitrag anzeigen

KWin

Registriert seit: 27. Jun 2007
Ort: Sierning - AUT
10 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Delphi 10.1 Berlin Komponente ableiten

  Alt 6. Okt 2016, 21:30
Danke, für die Antwort.

Bei einmaliger Ableitung funktionierts.

Delphi-Quellcode:
//-----------------------------------------------------------------------------
function TMwStringGrid.DefinePresentationName: string;
begin
  inherited;
  Result := 'Grid-' + GetPresentationSuffix;
end;

bei der zweiten Ableitung steht mann wieder vor dem gleichen Problem.

Lösung: Entscheidender Hinweis stand im Link zu Stackoverflow.

(Auskommenntierter Teil funktioniert bei der 2. Ableitung nicht.)

Delphi-Quellcode:
unit FMX.MwStringGrid;

{$I ToolStep7.inc}

interface

uses
  System.SysUtils, System.Classes,
  FMX.Grid.Style, FMX.Presentation.Factory, FMX.Presentation.Style,
  FMX.Types, FMX.Controls, FMX.Grid;

type
  TMwStringGrid = class(TStringGrid)
  private
  protected
// function DefinePresentationName: string; override;
  public
  published
  end;

type
  TMwStringGrid01 = class(TMwStringGrid)
  private
  protected
// function DefinePresentationName: string; override;
  public
  published
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MaxWell', [TMwStringGrid]);
  RegisterComponents('MaxWell', [TMwStringGrid01]);
end;

(*
//-----------------------------------------------------------------------------
function TMwStringGrid.DefinePresentationName: string;
begin
  inherited;
  Result := 'Grid-' + GetPresentationSuffix;
end;

//-----------------------------------------------------------------------------
function TMwStringGrid01.DefinePresentationName: string;
begin
  inherited;
  Result := 'Grid01-' + GetPresentationSuffix;
end;
*)


initialization
  TPresentationProxyFactory.Current.Register(TMwStringGrid, TControlType.Styled, TStyledPresentationProxy<TStyledGrid>);
  TPresentationProxyFactory.Current.Register(TMwStringGrid01, TControlType.Styled, TStyledPresentationProxy<TStyledGrid>);
finalization
  TPresentationProxyFactory.Current.Unregister(TMwStringGrid, TControlType.Styled, TStyledPresentationProxy<TStyledGrid>);
  TPresentationProxyFactory.Current.Unregister(TMwStringGrid01, TControlType.Styled, TStyledPresentationProxy<TStyledGrid>);
end.
Klaus
  Mit Zitat antworten Zitat