Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
Turbo Delphi für Win32
|
Re: TImage über TPaintBox
16. Mär 2008, 14:37
Zitat von turboPASCAL:
Zitat:
keinen billigen sondern was kmplizierteres ...
JA, das kann man dan auch vom Quellcode erwarten.
Also eine von vielen Ideen:
1. Text auf Bitmap A malen
2. Farbverlauf (oder ein Bitmapbild) auf Bitmap B malen
3. Bitmap C mit Scanline aus Bitmap A und B erstellen wobei der Schriftzug aus Bitmap A "abgetasted"
wird
4. Text noch einmal als Outlineschrift drüber malen auf C
Oder mit Transparenten und/oder Masken arbeiten.
Viel Spass.
hm leider war das etwas zu hoch für mich ...
hier der code
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var x:Integer;
begin
x:=475;
with PaintBox1 do
begin
DrawGradientH(Canvas, $00000000, $00FFFFFF, Rect(0, 0, Width, Height));
Canvas.Pen.Color := clBlack;
Canvas.MoveTo(0,31);
Canvas.LineTo(481,31);
Canvas.MoveTo(0,31);
Canvas.LineTo(0,0);
Canvas.MoveTo(x,31);
Canvas.LineTo(x,0);
Image2.BringToFront;
PaintBox1.SendToBack;
end;
end;
das DrawDradientH hab ich hier ausm Forum:
Delphi-Quellcode:
procedure DrawGradientH(Canvas: TCanvas; Color1, Color2: TColor; Rect: TRect);
var
X, R, G, B: Integer;
begin
for X := Rect.Top to Rect.Bottom do begin
R := Round(GetRValue(Color1) + ((GetRValue(Color2) - GetRValue(Color1)) *
X / (Rect.Bottom - Rect.Top)));
G := Round(GetGValue(Color1) + ((GetGValue(Color2) - GetGValue(Color1)) *
X / (Rect.Bottom - Rect.Top)));
B := Round(GetBValue(Color1) + ((GetBValue(Color2) - GetBValue(Color1)) *
X / (Rect.Bottom - Rect.Top)));
Canvas.Pen.Color := RGB(R, G, B);
Canvas.Pen.Width := 1;
Canvas.Pen.Style := psInsideFrame;
Canvas.MoveTo(Rect.Left, X);
Canvas.LineTo(Rect.Right, X);
end;
end;
Ich hoffe das hilft euch um mir weiter ...
ByStones
Wer nämlich mit "h" schreibt ist dämlich.
|
|
Zitat
|