Ich zeichne auf Image.canvas und möchte nun einen Text überlagern ohne das dieser gelöscht wird.
Wie gehe ich da am besten vor?
Betrifft das Projekt
http://www.delphipraxis.net/184476-p...-new-post.html
Irgendwo hier in ein Bitmap kopieren?
Delphi-Quellcode:
procedure TForm1.btnHelpClick(Sender: TObject);
var
Txt:
string;
R: TRect;
begin
if not HelpIsOn
then
begin
Image1.Canvas.Font.
Name := '
Consolas';
Image1.Canvas.Font.Size := 10;
Image1.Canvas.Font.Style := [fsBold];
Txt := Txt + '
' + sLineBreak + sLineBreak;
Txt := Txt + '
Anleitung' + sLineBreak + sLineBreak;
Txt := Txt + '
1. Set drücken' + sLineBreak;
Txt := Txt + '
2. Run drücken' + sLineBreak;
Txt := Txt + '
3. Abwarten, zuschauen' + sLineBreak;
Txt := Txt + '
4. Kick X oder Kick Y drücken - spielen,' + sLineBreak;
Txt := Txt + '
zuschauen ' + sLineBreak;
Txt := Txt + '
5. Stop drücken' + sLineBreak;
Txt := Txt + '
6. Roten oder schwarzen Punkt mit der Maus ' + sLineBreak;
Txt := Txt + '
verschieben ' + sLineBreak;
Txt := Txt + '
7. Run drücken, weiterspielen' + sLineBreak;
Txt := Txt + '
8. Break oder Ende in der IDE' + sLineBreak;
Txt := Txt + '
9. Parameter D in SetParam ändern: 0 bis 10000' + sLineBreak;
Txt := Txt + '
10. Neu starten, weiterspielen' + sLineBreak;
Txt := Txt + '
11. Code nach .Net übersetzen oder Code' + sLineBreak;
Txt := Txt + '
nach eigenen Vorstellungen erweitern' + sLineBreak;
Txt := Txt + '
12. Kluge Bemerkungen im Forum machen, den' + sLineBreak;
Txt := Txt + '
Autor mit Lob überhäufen, Kritik üben :-)' + sLineBreak;
Txt := Txt + '
' + sLineBreak;
Txt := Txt + '
99. ? drücken um den blöden Text wegzumachen' + sLineBreak;
R := Rect(Graph.xxc(Graph.xMin), Graph.yyc(Graph.yMax), Graph.yyc(Graph.yMin),Graph.xxc(Graph.xMax) );
Image1.Canvas.FillRect(R);
DrawText(Image1.Canvas.Handle, PWideChar(Txt), -1, R, DT_LEFT);
HelpIsOn := True
end else
begin
Graph.PrepareScale;
Graph.Draw;
HelpIsOn := False;
end;
end;
Mein Problem ist das ich im weiteren verlauf um die Grafik neu zu zeichnen.
Die alte mit
Delphi-Quellcode:
// Hintergrund löschen
Image.Canvas.FillRect(Image.Canvas.ClipRect);
lösche.
Der Text wird dann natürlich auch gelöscht.
gruss