Einzelnen Beitrag anzeigen

knaeuel

Registriert seit: 2. Jul 2007
110 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Zugriff auf Eigenschaften Width und Height in abgeleiteter Klasse

  Alt 10. Sep 2010, 08:26
ja, sorry, ich hatte gestern keine Zeit mehr und hab dann auf ne theoretische Antwort gehofft.
hier der abgespeckte code:

Delphi-Quellcode:
type
  TSozioImage = class(TImage)
  private
    { Private-Deklarationen }
    //ganz viele Deklarationen
    //...
  protected
    { Protected-Deklarationen }
    procedure Paint(); override;
  public
    { Public-Deklarationen }
    //ganz viele Deklarationen
    //...
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure ClearGraph;
    function GetAkteurIndexByName(akteurname: string): integer;
    procedure OpenMatrixCSV(filename:string);
    procedure SaveMatrixCSV(filename:string);
    procedure SaveNetworkMatrixCSV(filename: string;netz:integer);
    procedure SetNewKoorsToAkteurByName(newx, newy: integer; akteurname: string);
    function GetNetworkRecord(networknumber: integer): netzwerk_type;
    function GetNetworkCount: integer;
    procedure SetDrawNetworkFilter(nw:integer);//-1 -> alle, x -> nur netzwerk x
    procedure BetweennessCentralityUnweighted(netzid:integer);
    procedure CreateBMPScreenshot(filename:string);
    procedure CliqueHervorhebenToggle(index:integer);
    procedure CliqueHervorhebenAlleAus;
    function betrag(x: real): real;
    procedure get_akteur_ergebnis_array(var erg:array of akteur_ergebnis_type);
    procedure MeinungsbildnerHervorhebenToggle(perzentil: integer);
    procedure MeinungsbildnerHervorhebenAus;
  published
    { Published-Deklarationen }
    //die nächsten beiden Zeilen waren nicht immer da. Das Problem ist mit und ohne sie vorhanden
    property Width;
    property Height;
    property Pfeilspitzenlaenge: real read pfeil_spitzenlaenge write pfeil_spitzenlaenge;
    property Pfeilspitzenwinkel: Byte read pfeil_spitzenwinkel write pfeil_spitzenwinkel;
    property Pfeil_ausgefuellt: boolean read pfeil_filled write pfeil_filled;
    property GetDichte: real read dichte;
    property GetAvgGeoDist: real read avggeodist;
    property AnzahlAkteure: integer read anzahl_akteure;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    function GetSelectedAkteur:akteur_type;
    function add_akteur(newone: akteur_type):boolean;
    function edit_akteur(oldone, newone: akteur_type): boolean;
    procedure add_arrow(newone:arrow_type);
    procedure reArrangePicture;
    function MouseHoldsAkteur(var akteurname:string):boolean;//gibt zurück, ob die maus einen akteur hält, wenn ja, dann auch akteurname
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Meine Komponenten', [TSozioImage]);
end;

{ TSozioImage }

{$region 'Create/Destroy/Eventhandling'}
constructor TSozioImage.Create(AOwner: TComponent);
//var zeichenbereich:TRect;
begin
  inherited Create(AOwner);
  wc := TWorldConverter.Create;
  // Schnittstelle: (xmin(virtuell),xmax(virtuell),ymin(virtuell),ymax(virtuell),umax,vmax:real)
// FWidth:=800;
// self.Width
// self.Height

/////////////////////////////////////////////////////////////////////
//Width und Height sind hier 105, egal was im OI eingestellt wurde...
/////////////////////////////////////////////////////////////////////

  wc.berechneKoeffizienten(0,virtualkoors_xmax,0,virtualkoors_ymax,self.Width,self.Height);
  xmitte:=virtualkoors_xmax div 2;
  ymitte:=virtualkoors_ymax div 2;
  NoCalculating:=false;
  NoPainting:=false;
  anzahl_netzwerke:=0;
  anzahl_akteure:=0;
  nwfilter:=-1;
end;

destructor TSozioImage.Destroy;
begin
  ClearGraph;
  inherited;
end;
Wolfgang
  Mit Zitat antworten Zitat