Советы по Delphi

         

Как вставить в StatusPanel свои компоненты, например ProgressBar? I


Nomadic советует:

pgProgress положить на форму как Visible := false; StatusPanel надо OwnerDraw сделать и pефpешить, если Position меняется.

>== Режем pаз ==<

    procedure TMainForm.stStatusBarDrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect); begin
if
Panel.Index = pnProgress then begin pgProgress.BoundsRect := Rect; pgProgress.PaintTo(stStatusBar.Canvas.Handle, Rect.Left, Rect.Top); end;

end;

>== Режем два ==< [001624]


    unit adStatba;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls;
type
TAdrockStatusBar = class(TStatusBar) private { Private declarations } protected { Protected declarations } public { Public declarations } Constructor Create(Aowner : TComponent); override; published { Published declarations } end;
procedure Register;

implementation

Constructor
TAdrockStatusBar.Create(Aowner : TComponent);
begin
inherited
Create(Aowner); ControlStyle               := ControlStyle + [csAcceptsControls]; end;

procedure Register;
begin
RegisterComponents('Adrock', [TAdrockStatusBar]); end;

end.

Это позволит вам разместить элемент управления в панели. Но этот способ не поддерживает использование вложенных панелей. Вероятно, вам также понадобиться выровнять элемент управления по правому краю. Не так это все сложно... [001625]



Содержание раздела