Einzelnen Beitrag anzeigen

Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Prozentualer Fortschritt als Text in ProgressBar...

  Alt 21. Aug 2005, 15:16
Danke Luckie

Ich hab den Code noch etwas angepasst...
Delphi-Quellcode:
procedure TDupFind_Main.WritePercent(Progressbar: TProgressbar);
var
  dc: HDC;
  rect: TRect;
  Text: string;
begin
  if (ProgressBar.Max = 0) or (ProgressBar.Position = 0) then
    Text := '0%'
  else if ProgressBar.Max = ProgressBar.Position then
    Text := '100%'
  else
    Text := IntToStr(Trunc(100 / ProgressBar.Max * ProgressBar.Position)) + '%';
  dc := GetWindowDC(Progressbar.Handle);
  rect := ProgressBar.ClientRect;
  SetBkMode(dc, TRANSPARENT);
  DrawText(dc, PChar(Text), length(Text), rect, DT_SINGLELINE or DT_VCENTER or
    DT_CENTER);
  InvalidateRect(Progressbar.Handle, @rect, True);
end;
Die procedure rufe ich nun bei jedem Setzen der Position auf. 3 Probleme hab ich allerdings noch:
1. Wie ändere ich die Textfarbe? "SetDCBrushColor(dc,clred);" funktioniert jedenfalls nicht...
2. Wie ändere ich den Textstyle? Jetzt ist der Text immer Fett...
3. Es ist alles stark am Flimmern. Bei jedem neuzeichnen des Progressbar wird der Text wieder weggebügelt
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat