Ich hab heute so im Zuge der Langeweile an einem Programm rumgebastelt, das einen Screenshot aufnehmen soll, diesen dann verfremdet in dem es zufällige Symbole hinein zeichnet und selbigen dann in einem Ordner speichert. Soweit so gut. Anschließend soll der veränderte Screenshot in einem TImage angezeigt werden und genau hier beginnen die Probleme. Wenn ich nämlich das Bild lade, erscheint zwar der Screenshot, aber die Stellen, welche verändert worden sein sollten werden einfach nicht angezeigt. Das irritiert mich jetzt ein wenig und deshalb wollte ich Fragen: Was mache ich falsch?
Hier mein Code:
Code: Alles auswählen
procedure MyForm.MyButtonClick(Sender: TObject);
var
MyBitmap: TBitmap;
ScreenDC: HDC;
mX: HWND;
begin
Dir:=Paramstr(0);
Dir:=ExtractfilePath(Dir);
Dir:=Dir+'Screens';
Dir:=includetrailingpathdelimiter(Dir); //bis hier wird der Pfad zum speichern des Bildes ermittelt
MyBitmap := TBitmap.Create;
ScreenDC := GetDC(0);
MyBitmap.LoadFromDevice(ScreenDC); //Das hier hab ich vom Lazarus Wiki, glaube ich
ReleaseDC(mX,ScreenDC);
With MyBitmap.Canvas do
begin
Pen.Color:=clLime; //soll hier halt ein einfaches grünes Rechteck auf das Bild zeichnen
Brush.Color:=clLime;
FillRect(10,10,1000,1000);
end;
MyBitmap.SaveToFile(Dir+'Screen.bmp');
MyBitmap.Free;
Image1.Picture.LoadFromFile(Dir+'Screen.bmp');
end;
Grußels
Jimmy
P.S. Die Suchfunktion des Forums wies mich immer nur an, andere Suchbegriffe zu wählen, da die von mir gewählten zu häufig vorkommen würden, irgendwann sind mir dann die Ideen ausgegangen.