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.