AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language W1009: Redeklaration verbirgt ein Mitglied in der Basisklasse
Thema durchsuchen
Ansicht
Themen-Optionen

W1009: Redeklaration verbirgt ein Mitglied in der Basisklasse

Ein Thema von hoika · begonnen am 30. Dez 2010 · letzter Beitrag vom 30. Dez 2010
 
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: W1009: Redeklaration verbirgt ein Mitglied in der Basisklasse

  Alt 30. Dez 2010, 15:41
Ich soll einen Wrapper für einfaches Benutzen zweier völlig verschiedener Klassen (Druck, PDF-Export) bauen,
ohne dass Code bei deren Benutzung geändert werden soll.
Die Druckklasse definiert ein property FontName als Integer, die andere als String.

Daran kann ich aber nichts ändern.
Das wäre dann also das Entwurfsmuster Adapter.
Das Problem ist nun dass ein Integer, der auf einen Fontnamen verweisst eben nun mal kein FontName ist.
Richtig wäre hier zwei verschiedene Properties einzuführen, die sich gegenseitig beeinflussen:
Delphi-Quellcode:
TAdapterBase = class
public
  property FontIndex:Integer read GetFontIndex write SetFontIndex;
  property FontName:string read FFontName write FFontName;
end;
Über die Funktionen SetFontIndex und GetFontIndex wird nun versucht, einem Index einen Namen zuzuweisen (verlustfrei möglich) und einem Namen einen Index zuzuweisen (nicht immer möglich).
Man benötigt dazu eine kleine Tabelle für die Umwandlung:
Delphi-Quellcode:
TFontIndexRecord = record
  Name:string;
  Index:integer;
end;
const
FontIndexArray:array[0..3] of TFontIndexRecord = (
(Name:'Arial';Index:0),
(Name:'Courier New';Index:1),
...
);
Die Basisklasse speichert immer nur den FontName, weil dieser allgemeiner als der FontIndex ist.
  Mit Zitat antworten Zitat
 


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 06:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz