の作品DelphiでTStatusBarにTProgressBarを配置するhereを説明した:(?最近Windowsアップデート後)方法私はこの方法を使用し過去に
procedure TForm1.FormCreate(Sender: TObject);
var
ProgressBarStyle: integer;
begin
//enable status bar 2nd Panel custom drawing
StatusBar1.Panels[1].Style := psOwnerDraw;
//place the progress bar into the status bar
ProgressBar1.Parent := StatusBar1;
//remove progress bar border
ProgressBarStyle := GetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE);
ProgressBarStyle := ProgressBarStyle - WS_EX_STATICEDGE;
SetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE, ProgressBarStyle);
end;
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
const Rect: TRect);
begin
if Panel = StatusBar.Panels[1] then
with ProgressBar1 do
begin
Top := Rect.Top;
Left := Rect.Left;
Width := Rect.Right - Rect.Left;
Height := Rect.Bottom - Rect.Top;
end;
end;
しかし、このもはや動作しません。つまり、古いプログラムは期待どおりに動作しますが、新しくコンパイルされたプログラムは動作しません。私はWindows 10で同じDelphiバージョン、XE8を使用しています。
これはこのメソッドが不適切だったということですか?これを行う正しい方法は何ですか?
それは、このような進行状況を表示するウィンドウコントロールを作成するには、上部の上です。私はいつも進行状況をパネルに直接ペイントすることでそれをやってきました。単純なFillRect呼び出し、またはスタイル/テーマの場合はスタイル/テーマAPIを使用します。 –
意味がある、私はそれを試みる。 (一般的にプログレスバーについても同じことは言えませんが)私のコードが突然動かないのはどういうことなのでしょうか?ありがとう。 – stevenvh