Difference between revisions of "Type Helper/de"
From Lazarus wiki
Jump to navigationJump to searchLine 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. | + | 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
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