irgendwas mache ich falsch beim übertragen von Daten von einer Unit zu einer anderen Unit. Ich habe es mit einem Feldwert probiert und auch mit einer Eigenschaft. Ich habe den Verdacht, dass ich versuche auf einen Zeiger zuzugreifen. Das ist natürlich nicht in meinem Sinne.
Code: Alles auswählen
unit Data;
...
type
TDrumClass = class //(TSequenceClass) soll später alle Eigenschaften von der SequenceClass erben
private
//FDrumLevel : Integer;
public
procedure SetDrumLevel(ADrumlevel : Integer);
function GetDrumLevel : Integer;
property DrumLevel:Integer read GetDrumLevel write SetDrumLevel;
constructor Create;
destructor Destroy; override;
end;
var
Drum1 :TDrumClass;
Drum2 :TDrumClass;
implementation
constructor TDrumClass.Create;
begin
inherited Create;
DrumLevel:= 96; //Standardwert
end;
destructor TDrumClass.Destroy;
begin
inherited Destroy;
end;
procedure TDrumClass.SetDrumLevel(ADrumlevel : Integer);
begin
Drumlevel:=ADrumlevel;
end;
function TDrumClass.GetDrumLevel: Integer;
begin
Result:= Drumlevel;
end;
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
Data;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
Data.Drum1.Create;
Data.Drum2.Create;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Data.Drum1.SetDrumLevel(127);
Data.Drum2.SetDrumLevel(64);
ShowMessage('Drum1: ' + IntToStr(Data.Drum1.GetDrumLevel));
ShowMessage('Drum2: ' + IntToStr(Data.Drum2.GetDrumLevel));
end;
end.