Příklady

Top  Previous  Next

Výběr barvy zadáním RGB

 

 

Report umožní zobrazit barvu zadáním jejích RGB hodnot. Pomocí tlačítka "Picker" vyvoláme nový report RGBPicker, kterému pomocí params předáme hodnoty aktuální barvy a zpět obdržíme nově zadané hodnoty RGB. K tomto příkladu je třeba ještě ukázka RGBPicker

 

Událost ButtonClick vytvoří nové params posbírá hodnoty z buněk A2..C2 jimiž naplní parametry pojmenované R,G a B a předá je nově vyvolanému reportu pomocí InvokeRmReportWithParams. Po návratu z invokovaného reportu získá zpět RGB z params nastaví barvu pozadí v buňce D2 a naplní A2..C2 novými-předanými hodnotami a params

Událost List1A2OnChange mají přiřazenu buňky A2..C2, pokud dojde ke změně v těchto buňkách změní se pozadí buňky D2.

 

Skript neřeší modalresult invokovaného reportu ani překročení hodnot RGB v buňkách A2..C2

 

Skript:

procedure ButtonClick;

var

 Params:TParams;                                                  

begin

 Params := TParams.Create;

 try

   with TParam.Create(Params) do

     begin

       Name := 'R';

       AsString := Sheet.Cells[1,2];                            

     end;

   with TParam.Create(Params) do

     begin

       Name := 'G';

       AsString := Sheet.Cells[2,2];                            

     end;

   with TParam.Create(Params) do

     begin

       Name := 'B';

       AsString := Sheet.Cells[3,2];                            

     end;

     

     InvokeRmReportWithParams('Examples','RGB', Params);

 

     Sheet.CellProperty[4,2].Background:=

       RGB(

         Params.ParamByName('R').AsInteger,

         Params.ParamByName('G').AsInteger,

         Params.ParamByName('B').AsInteger);

 

       Sheet.Cells[1,2]:=Params.ParamByName('R').AsString;

       Sheet.Cells[2,2]:=Params.ParamByName('G').AsString;

       Sheet.Cells[3,2]:=Params.ParamByName('B').AsString;          

 

         

     Sheet.Invalidate;                                    

   

 finally

   Params.Free;

 end;

end;        

 

procedure OnPrepareScript(Sender : TReportProperty);

begin

 TButton(Sheet.GetCellProperty('E2').CellComponent).OnClick:=@ButtonClick;                                                          

end;

 

procedure List1A2OnChange(Sender : TCellProperty);

begin

 Sheet.CellProperty[4,2].Background:=rgb(strtoint(sheet.cells[1,2]),strtoint(sheet.cells[2,2]),strtoint(sheet.cells[3,2]));                                                                        

end;

 

begin

 

end.