Registriert seit: 23. Nov 2011
40 Beiträge
Delphi 5 Enterprise
|
AW: Statisches BG in ScrollBox
19. Feb 2014, 16:58
Naja ganz weglassen kann ich sie an der Stelle nicht, dann würde
es ja gar nicht gezeichnet werden.
Krieg das leider auch nicht so gewünscht hin.
Delphi-Quellcode:
procedure TMyScrollBox.Painting;
var
FDrawHeight, FDrawWidth: Integer;
Row, Column, xl, xt, xw, xh: Integer;
xdl, xdt: Integer;
xRect: TRect;
i: integer;
xhdl: Word;
begin
if (FNHBitmap.width <> 0) and (FNHBitmap.Height <> 0) then
begin
xRect := ClientRect;
FDrawHeight := xRect.Bottom - xRect.Top;
FDrawWidth := xRect.Right - xRect.Left;
xdl := (HorzScrollBar.Position mod FNHBitmap.Width);
xdt := (VertScrollBar.Position mod FNHBitmap.Height);
for Row := 0 to (FDrawHeight div FNHBitmap.Height) + 1 do
begin
for Column := 0 to (FDrawWidth div FNHBitmap.Width) + 1 do
begin
xl := Column * FNHBitmap.Width + xRect.Left - xdl;
xt := Row * FNHBitmap.Height + xRect.Top - xdt;
xw := FNHBitmap.Width;
if (FDrawWidth - xl + xRect.Left) < xw then
xw := (FDrawWidth - xl + xRect.Top);
xh := FNHBitmap.Height;
if (FDrawHeight - xt + xRect.Top) < xh then
xh := (FDrawHeight - xt + xRect.Top);
(* FNHCanvas.CopyRect(
Rect(xl, xt, xl + xw, xt + xh),
FNHBitmap.Canvas,
Rect(0, 0, xw, xh)*)
// Kopiert immer gleichen Bereich und fügt ein
FNHCanvas.CopyRect(
Rect(0, 0, xw, xh),
FNHBitmap.Canvas,
Rect(0, 0, xw, xh)
);
end;
end;
end;
end;
|
|
Zitat
|