Du kannst dir allerdings auch eine
TPaintBox über das Image legen und dort im
TPaintBox.OnPaint alles reinmalen was du möchtest.
Dadurch "kritzelst" du nicht auf dem Bild rum und trotzdem ist es "darüber".
Habe es jetzt mal so wie von BUG vorgeschlagen gemacht.
Zitat:
Wäre es so schlimm den Text auch jedes mal neu zu rendern?
Mit ein paar kleinen Änderungen funktioniert das soweit ganz gut.
Nach dem löschen
Image.Canvas.FillRect(Image.Canvas.ClipRect);
einfach ein
Delphi-Quellcode:
if HelpIsOn then
DrawHelp;
DrawHelp in die Klasse TGraph eingefügt
Delphi-Quellcode:
procedure TGraph.DrawHelp;
var
Txt:
string;
R: TRect;
begin
Image.Canvas.Font.
Name := '
Consolas';
Image.Canvas.Font.Size := 10;
Image.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) );
Image.Canvas.FillRect(R);
DrawText(Image.Canvas.Handle, PWideChar(Txt), -1, R, DT_LEFT);
end;
Und von außen (Form) geschaltet.
Delphi-Quellcode:
procedure TForm1.btnHelpClick(Sender: TObject);
begin
Graph.HelpIsOn := not Graph.HelpIsOn;
Graph.Draw;
end;
Projekt aktualisiert!
http://www.delphipraxis.net/184476-p...s-projekt.html
gruss