unit teparam;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  KComp, KParam, ExtCtrls, StdCtrls, kavesimu, KSimMot, ksheet, Menus,
  chclr,dsgnintf,typinfo, ComCtrls, Tabnotbk, kparams;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Scale1: TScale;
    Shape1: TShape;
    Button2: TButton;
    Shape3: TShape;
    Button3: TButton;
    sLine1: TsLine;
    Timer1: TTimer;
    SheetStack1: TSheetStack;
    Counter1: TCounter;
    Button4: TButton;
    kParam1: TkParam;
    PopupMenuColor: TPopupMenu;
    Color1: TMenuItem;
    ColorChangeK2000: TColorChange;
    Counter2: TCounter;
    Button5: TButton;
    ProgCounter1: TProgCounter;
    Button6: TButton;
    kParam2: TkParam;
    TabbedNotebook1: TTabbedNotebook;
    kParam3: TkParam;
    kParam4: TkParam;
    Params1: TParams;
    SheetTile1: TSheetTile;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Color1Click(Sender: TObject);
    procedure CopyComponents(Root: TComponent);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
    pit : integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  pit := 2000;
  ColorChangeK2000.ReadIniColors(self);
//  Counter := TParam.Create(self);
//  Counter.Parent := self;
end;

procedure TForm1.Button1Click(Sender: TObject);
var n:double;
begin
//  Counter.Inc(1);
//  n := Counter.value;
//  Counter.Value := n+1;
  Scale1.FactorY := -Scale1.FactorY;
  Counter1.Caption := 'KIssa';
  CopyComponents(Counter1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Scale1.Factor := Scale1.Factor*2.0;
//  Sheet1.Top := 60;
end;

procedure TForm1.Button3Click(Sender: TObject);
var c:TSheet;
begin
  Counter1.inc(1);
  c := TSheet.Create(Scale1);
  c.parent := Scale1;
  c.x := -2000;
  c.y := 100;
  c.xLen := pit; pit := pit - 10;
  c.yLen := 10;
  SheetStack1.Add(c);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Scale1.Factor := Scale1.Factor*0.99;
end;

procedure TForm1.Color1Click(Sender: TObject);
begin
   ColorChangeK2000.Ask(PopupMenuColor.PopupComponent);
end;

procedure TForm1.CopyComponents(Root: TComponent);
var
  S: TMemoryStream;
  W: TWriter;
  I: Integer;
begin
  S := TMemoryStream.Create;
  try
    W := TWriter.Create(S, 1024);
    try
      W.WriteComponent(root);
      W.WriteListEnd;
    finally
      W.Free;
    end;
//    CopyStreamToClipboard(S);
  finally
    S.Free;
  end;
end;

procedure TForm1.Button5Click(Sender: TObject);
Var
  PropInfo: PPropInfo;
  s : string;
  v : variant;
  i : longint;
begin
  PropInfo := GetPropInfo(Counter1.ClassInfo, 'Color');
  if ( PropInfo^.name = 'Color' ) then begin
    s := PropInfo^.PropType^.Name;
    v := GetVariantProp(Counter1,PropInfo);
    i := GetOrdProp(Counter1,PropInfo);
    SetOrdProp(Counter1,PropInfo,$0);
  end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  ColorChangeK2000.RunColor();
end;

end.
