RGBPicker

Top  Previous  Next

RGB Picker

 

RGB Picker umožní pomocí posuvníku vybrat barvu

 

Vlastní funkčnost picker-u zajišťuje pouze událost OnChange příslušných trackbarů ostatní balast řídí chování reportu při vyvolání pomocí InvokeRmReportWithParams, aby zmíněné příklady fungovaly správně uložte tento report do složky Examples a pojmenujte RGB.

Skript:

procedure OnBeforeReport(Sender : TReportProperty);

begin

  If ReportParams<>nil then

  begin

    ReportForm.ReportControlBar.Hide;                                                    

    

//    ReportForm.StandardTB.Hide;

//    ReportForm.ExportImportToolBar.Hide;

  

    ReportForm.StatusBar.Hide;                                      

    

    ReportForm.Width:=400;

    ReportForm.Height:=200;                                    

      

    TTrackBar(Sheet.GetCellProperty('B1').CellComponent).Position:=ReportParams.ParamByName('R').AsInteger;

    TTrackBar(Sheet.GetCellProperty('B2').CellComponent).Position:=ReportParams.ParamByName('G').AsInteger;

    TTrackBar(Sheet.GetCellProperty('B3').CellComponent).Position:=ReportParams.ParamByName('B').AsInteger;

    OnChange(Self);                                                                          

  end;                            

end;

 

procedure ButtonClick;

begin

  If ReportParams<>nil then

  begin

    ReportParams.ParamByName('R').AsInteger:=TTrackBar(Sheet.GetCellProperty('B1').CellComponent).Position;  

    ReportParams.ParamByName('G').AsInteger:=TTrackBar(Sheet.GetCellProperty('B2').CellComponent).Position;  

    ReportParams.ParamByName('B').AsInteger:=TTrackBar(Sheet.GetCellProperty('B3').CellComponent).Position;                                                                                                                                                                                                

  end;            

    

  ReportForm.ModalResult:=mrOk;                                                                                     

end;

 

procedure OnChange( Sender : TObject );

begin

  Sheet.CellProperty[3,1].Background:=

    RGB(

      TTrackBar(Sheet.GetCellProperty('B1').CellComponent).Position,

      TTrackBar(Sheet.GetCellProperty('B2').CellComponent).Position,

      TTrackBar(Sheet.GetCellProperty('B3').CellComponent).Position);

  Sheet.Invalidate;                                                  

end;          

 

procedure OnPrepareScript(Sender : TReportProperty);

begin

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

 

  TTrackBar(Sheet.GetCellProperty('B1').CellComponent).OnChange:=@OnChange;

  TTrackBar(Sheet.GetCellProperty('B2').CellComponent).OnChange:=@OnChange;

  TTrackBar(Sheet.GetCellProperty('B3').CellComponent).OnChange:=@OnChange;      

end;

 

procedure OnReportClose(Sender : TReportProperty);

begin

  ReportProperty.SetModified(False);                                

end;

 

begin

end.