프로그래밍/델파이
프로그래스바(TProgressBar) 색 바꾸기
채윤아빠
2009. 8. 2. 20:14
프로그레스바의 색을 바꾸는 방법은 매우 간단합니다.
위 그림을 보면, 붉은색으로 색을 변경하였는데, SendMessage로 메시지를 보내면 색 변경이 가능합니다.
SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, RGB(255, 0, 0));
PBM_SETBARCOLOR 상수가 CommCtrl에 정의되어 있으므로, 그 유닛을 포함해 줘야만 컴파일이 성공적으로 됩니다.
아래 위 데모의 예제 소스를 첨부합니다.
위 그림을 보면, 붉은색으로 색을 변경하였는데, SendMessage로 메시지를 보내면 색 변경이 가능합니다.
SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, RGB(255, 0, 0));
PBM_SETBARCOLOR 상수가 CommCtrl에 정의되어 있으므로, 그 유닛을 포함해 줘야만 컴파일이 성공적으로 됩니다.
아래 위 데모의 예제 소스를 첨부합니다.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls, CommCtrl; type TProgressBarColorChangeForm = class(TForm) pbChangeColor: TProgressBar; btnGO: TButton; tmrStep: TTimer; procedure btnGOClick(Sender: TObject); procedure tmrStepTimer(Sender: TObject); private { Private declarations } public { Public declarations } end; var ProgressBarColorChangeForm: TProgressBarColorChangeForm; implementation {$R *.dfm} procedure TProgressBarColorChangeForm.btnGOClick(Sender: TObject); begin Timer1.Enabled := True; ProgressBar1.Position := 0; SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, RGB(255, 0, 0)); end; procedure TProgressBarColorChangeForm.tmrStepTimer(Sender: TObject); begin ProgressBar1.StepBy(3); Timer1.Enabled := ProgressBar1.Max <> ProgressBar1.Position; end; end.
728x90
반응형