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. |