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;