Ciao,
sono sempre in ballo con il componente di un post di questi giorni.
Il componente consiste in una progressbar in stile Windows XP con diversi colori (attualmente bcGreen e bcOrange).

Questa è la parte di codice che disegna e aggiorna la progressbar.
codice:
procedure TJvXPProgressBar.Paint;
 var i: integer; Bmp: TBitmap; Step: real;
begin
 Bmp := TBitmap.Create;
 Bmp.Transparent := True;
 Bmp.TransparentColor := clFuchsia;

 if FOrientation = pbHorizontal then
 begin
  Step := FMax / Round((Width - 6) / 8);
  Bmp.LoadFromResourceName(HInstance, 'LEFTCORNER_H');
  Canvas.Draw(0, 0, Bmp);

  for i := 0 to (Round((Width - 6) / 8)- 1) do
  begin
   if (Round(FPosition / Step) > i) then
    Canvas.Draw(3 + (8 * i), 0, DrawStep)
   else
   begin
    Bmp.LoadFromResourceName(HInstance, 'PROGRESSEMPTY_H');
    Canvas.Draw(3 + (8 * i), 0, Bmp);
   end;
  end;

  Bmp.LoadFromResourceName(HInstance, 'RIGHTCORNER_H');
  Canvas.Draw(Round((Width - 6) / 8) * 8 + 3, 0, Bmp);
  Width := Round((Width - 6) / 8) * 8 + 6;
 end
 else
 begin
  Step := FMax / Round((Height - 6) / 8);
  Bmp.LoadFromResourceName(HInstance, 'LEFTCORNER_V');
  Canvas.Draw(0, 0, Bmp);

  for i := 0 to (Round((Height - 6) / 8)- 1) do
  begin
   if (Round(FPosition / Step) > i) then
    Canvas.Draw(0, Height - 11 - (8 * i), DrawStep)
   else
   begin
    Bmp.LoadFromResourceName(HInstance, 'PROGRESSEMPTY_V');
    Canvas.Draw(0, Height - 11 - (8 * i), Bmp);
   end;
  end;

  Bmp.LoadFromResourceName(HInstance, 'RIGHTCORNER_V');
  Canvas.Draw(0, Round((Height - 6) / 8) * 8 + 3, Bmp);
  Height := Round((Height - 6) / 8) * 8 + 6;
 end;
end;
NB: la funzione DrawStep disegna "on the fly" e restituisce via TBitmap un quadratino che andrà a comporre la progressbar per il supporto "nativo" della grafica xpstyle. FOrientation è una proprietà del componente che determina l'orientamento della progressbar (pbHorizontal e pbVertical). FPosition è una proprietà del componente che ne determina lo stato di progressione su una scala da FMin a FMax.

Le domande sono: 1. sapreste darmi qualche consiglio *pratico* per evitare che si manifesti quel fastidioso sfarfallio durante la progressione della barra? 2. sapreste indicarmi un tool simile ad Apiary OCX Expert per convertire componenti VCL in OCX?

Screenshot senza supporto nativo

Screenshot con supporto nativo


Grazie!