Das ist kein Problem. Eigentlich hatte ich dir oben schon einpaar Stichworte genannt, die dir dank Hilfe und Suche schonmal weiterhelfen hätten sollen, aber gut: Hier ist mal eine etwas ausführlichere "Anleitung";
Zunächst deklarierts du im private-Bereich deines Formulars eine Instanz des Typs TBitmap:
Delphi-Quellcode:
private
{ Private-Deklarationen }
HintergrundBild : TBitmap;
//..
Anschließend musst du das Bitmap noch im OnCreate-Ereignis deines Formulars erzeugen und das entsprechende Bild von der Festplatte laden:
Delphi-Quellcode:
var P : TFileName;
begin
//--
Self.DoubleBuffered := true; // damit es nicht so flackert
//
HintergrundBild := TBitmap.Create;
//
p := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'hintergrund.bmp';
//
if FileExists(p) then HintergrundBild.LoadFromFile(p)
else MessageDLG('Bild-Datei "hintergrund.bmp" im Programm-Ordner nicht gefunden!',mtError,[mbOK],0);
Außerdem solltest du das TBitmap im OnDestroy deines Formulars wieder freigeben:
HintergrundBild.Free;
Jetzt musst du das Bild in der Zeichenroutine nur noch auf die Canvas zeichnen, etwa so:
PaintBox1.Canvas.Draw(0,0,HintergrundBild);
Und dann natürlich noch den Zeiger, aber das hatten wir ja oben schon.
Das Bitmap sollte genauso groß sein wie die PaintBox, alles andere macht kaum Sinn
Wenn du das Programm weitergeben willst, musst du auch immer die Datei, welche das Hintergrundbild beinhaltet, mitliefern und sie muss sich im Ordner der EXE-Datei befinden. Dies könntest du umgehen, indem du das Bild in eine unsichtbare TImage-Komponente lädst oder aus einer Ressource holst. Wenn du Fragen hast, dann kannst du in der
DP mal nach diesen Stichwörtern suchen oder hier einfach noch mal nachfragen.
Hab das Programm inklusive Bild-Datei und Quelltext mal in den Anhang.
Viel Spaß