Selam;
Forumda sadece Progressbar ve label var label Progressbar altında kalıyor geçen süreyi göstermek istiyorum, bu işlemi tersine nasıl yapabilirim? label üste Progressbar alta kalacak...
ProgressBar üzerinde süre gösterme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
ProgressBar üzerinde süre gösterme
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: ProgressBar üzerinde süre gösterme
Bahsettiğiniz TProgressBar ise; bu iş için biraz kulağınızı tersten göstermeniz gerekebilir. Custom draw işlemi yapabilirsiniz Progressbar üzerinde. Öncelikle, bir interposer sınıf tanımlayıp içinde WM_PAINT mesajına yanıt vermelisiniz. Yazmak yerine örnek bir kod ile açıklamak daha kolay olabilir.
Kod: Tümünü seç
TProgressBar = class(Vcl.ComCtrls.TProgressBar)
protected
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
end;
TForm1 = class(TForm)
ProgressBar1: TProgressBar;
Label1: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
{ TProgressBar }
procedure TProgressBar.WMPaint(var Message: TWMPaint);
var
ACanvas : TControlCanvas;
begin
inherited;
ACanvas:= TControlCanvas.Create();
ACanvas.Control := Self;
ACanvas.TextOut(100, 20, 'Basit bir mesaj..');
ACanvas.Free;
end;
Re: ProgressBar üzerinde süre gösterme
Teşekkür ederim, ben biraz eklemeler yaptım...
Kod: Tümünü seç
procedure TProgressBar.WMPaint(var Message: TWMPaint);
var
ACanvas: TControlCanvas;
begin
inherited;
ACanvas := TControlCanvas.Create();
ACanvas.Control := Self;
ACanvas.Brush.Style := bsClear;
ACanvas.Font.Style := [fsBold];
ACanvas.Font.Color := clRed;
ACanvas.TextOut(100, 15, 'Lütfen Bekleyiniz...');
ACanvas.Free;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...