kasstatusbar.pas 841 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. unit KASStatusBar;
  2. {$mode delphi}
  3. interface
  4. uses
  5. Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls;
  6. type
  7. { TKASStatusBar }
  8. TKASStatusBar = class(TStatusBar)
  9. public
  10. procedure InvalidatePanel(PanelIndex: Integer; PanelParts: TPanelParts); override;
  11. end;
  12. procedure Register;
  13. implementation
  14. procedure Register;
  15. begin
  16. RegisterComponents('KASComponents', [TKASStatusBar]);
  17. end;
  18. { TKASStatusBar }
  19. procedure TKASStatusBar.InvalidatePanel(PanelIndex: Integer; PanelParts: TPanelParts);
  20. begin
  21. if (PanelIndex >= 0) and (ppText in PanelParts) then
  22. begin
  23. if Length(Panels[PanelIndex].Text) > 0 then
  24. Panels[PanelIndex].Width:= Canvas.TextWidth('WW' + Panels[PanelIndex].Text);
  25. end;
  26. inherited InvalidatePanel(PanelIndex, PanelParts);
  27. end;
  28. end.