Difference between revisions of "Type Helper/de"

From Lazarus wiki
Jump to navigationJump to search
Line 5: Line 5:
 
=Type Helper=
 
=Type Helper=
 
Mit dieser Funktion kann man Bezeichner um Funktionen erweitern.<br>
 
Mit dieser Funktion kann man Bezeichner um Funktionen erweitern.<br>
Die Funktion '''Type Helper''' wird zum Teil auch bei Standard-Typen von FPC verwendet. ZB. <code>'''String.Spitt'''</code> <br>
+
Die Funktion '''Type Helper''' wird zum Teil auch bei Standard-Typen von FPC verwendet. ZB. <code>'''String.Split'''</code> <br>
 
'''Type Helper''' steht erst ab FPC 3.0 zu Verfügung.
 
'''Type Helper''' steht erst ab FPC 3.0 zu Verfügung.
  
Line 13: Line 13:
 
program Project1;
 
program Project1;
  
{$modeswitch typehelpers}
+
{$modeswitch typehelpers}                     // "Type Helper" aktivieren.
  
 
type
 
type
   TVector2f = array[0..1] of Single;
+
   TVector2f = array[0..1] of Single;           // Ein einfacher Vektor.
  
   TVector2fHelper = Type Helper for TVector2f
+
   TVector2fHelper = Type Helper for TVector2f // Schlüssel "Type Helper" verwenden.
     procedure Scale(x, y: Single);
+
     procedure Scale(x, y: Single);             // Die Erweiterungs-Funktion.
 
   end;
 
   end;
  
Line 29: Line 29:
  
 
var
 
var
   vec: TVector2f;
+
   vec: TVector2f;     // Variable normal definieren.
 
begin
 
begin
 
   vec[0]:= 1.5;
 
   vec[0]:= 1.5;

Revision as of 19:36, 16 January 2018

Template:Type Helper

Zurück zu den reservierten Wörtern.

Type Helper

Mit dieser Funktion kann man Bezeichner um Funktionen erweitern.
Die Funktion Type Helper wird zum Teil auch bei Standard-Typen von FPC verwendet. ZB. String.Split
Type Helper steht erst ab FPC 3.0 zu Verfügung.

Beispiel

Hier wird ein Vektor um die Funktion Scale erweitert.

program Project1;

{$modeswitch typehelpers}                      // "Type Helper" aktivieren.

type
  TVector2f = array[0..1] of Single;           // Ein einfacher Vektor.

  TVector2fHelper = Type Helper for TVector2f  // Schlüssel "Type Helper" verwenden.
    procedure Scale(x, y: Single);             // Die Erweiterungs-Funktion.
  end;

procedure TVector2fHelper.Scale(x, y: Single);
begin
  Self[0] *= x;
  Self[1] *= y;
end;

var
  vec: TVector2f;      // Variable normal definieren.
begin
  vec[0]:= 1.5;
  vec[1]:= 2.5;

  vec.Scale(2.0, 3.0); // Erweiterte Funktion aufrufen.

  WriteLn(vec[0]:10:5);
  WriteLn(vec[1]:10:5);
end.

Ausgabe:

    3.00000
    7.50000

Siehe auch

  • Übersichtseite Type

Autor: Mathias