AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 10.1 Berlin Komponente ableiten

Ein Thema von KWin · begonnen am 6. Okt 2016 · letzter Beitrag vom 6. Okt 2016
Antwort Antwort
KWin

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

Delphi 10.1 Berlin Komponente ableiten

  Alt 6. Okt 2016, 16:16
Hallo,

ich bin vor kurzem auf Delphi 10.1 Berlin umgestiegen.
Seit dem habe ich ein Problem mit einer von TStringGrid abgeleitetet Komponente.
Die Installation in einem Packages verläuft erfolgreich.
Nach dem Hereinziehen der Komponte steht:

------
Für die Klasse MwStringGrid wurde kein TStyledPresentationProxi- Nachkomme registriert.
Eventuell muss das FMX.Grid.Style Modul in den uses.ABschnitt eingefügt werden.
------

Weiß jemand, was da noch zu machen ist?


Hier der extrem komplizierte Code der Komponente:

unit FMX.MwStringGrid;

Delphi-Quellcode:
{$I ToolStep7.inc}

interface

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

type
  TMwStringGrid = class(TStringGrid)
  private
  protected
  public
  published
  end;

procedure Register;

implementation

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


end.
Klaus

Geändert von MrSpock ( 6. Okt 2016 um 16:25 Uhr) Grund: Delphi Tags eingefügt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 10.1 Berlin Komponente ableiten

  Alt 6. Okt 2016, 17:29
Du mußt in deinem Grid scheinbar nur noch die Methode DefinePresentationName überschreiben

http://stackoverflow.com/questions/3...ered-for-class
Delphi-Quellcode:
function TfmGrid.DefinePresentationName: string;
begin
  Result := 'Grid-' + GetPresentationSuffix;
end;
$2B or not $2B
  Mit Zitat antworten Zitat
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, 22: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
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz