Wenn ich selbiges noch einmal mache one ein Hintergrundbild zu laden ist die Rechteckfarbe richtig.

Ich benötige beides im gleiche Image, da es später abgespeichert werden soll und das Rechteck etwas markiert.
Hatte dieses Problem schon mal jemand und wenn ja, gibt es hierfür eine Lösung?
Danke und Beste Grüße
Vazili
Funktionen die benutzt werden:
Code: Alles auswählen
procedure Image_Rechteck_Zeichnen(Form_Name,Image_Name,Pinselfarbe{CLWhite}:String;Linienstaerke,X_Start,Y_Start,X_Laenge,Y_Laenge:Double);
var
Form : TForm;
Image_Componente : TComponent;
I : Integer;
begin
//Form und Componenten Definieren
Form := Application.FindComponent(Form_Name) as TForm;
Image_Componente := Form.findComponent(Image_Name) as TImage;
I := 0;
if Pinselfarbe = 'CLBlue' then
Pinselfarbe := 'CLRED';
(Image_Componente as TImage).canvas.AutoRedraw := True;
(Image_Componente as TImage).Canvas.pen.Width := round(Linienstaerke);
(Image_Componente as TImage).Canvas.Pen.Color := StringToColor(Pinselfarbe);
(Image_Componente as TImage).Canvas.Brush.Color := StringToColor(Pinselfarbe);
(Image_Componente as TImage).Picture.Bitmap.Transparent:=True;
//(Image_Componente as TImage).Canvas.Clear;
//(Image_Componente as TImage).Canvas.Clear;
while I <> Linienstaerke do
begin
(Image_Componente as TImage).Canvas.FrameRect(round(X_Start),round(Y_Start),round(X_Laenge),round(Y_Laenge));
X_Start := X_Start + 1;
Y_Start := Y_Start + 1;
X_Laenge := X_Laenge - 1;
Y_Laenge := Y_Laenge - 1;
I := I + 1;
end;
end;
Function Bild_in_Image_Laden(Form_Name,Image_Name,Datei_mit_Pfad:String;Grafik_aus_Zwischenablage:Boolean):String;
var
Form : TForm;
Scrollbox_Componente : TComponent;
Image_Componente : TComponent;
endung : STring;
begin
Form := Application.FindComponent(Form_Name) as TForm;
Image_Componente := Form.findComponent(Image_Name) as TImage;
(Form.FindComponent(Image_Name) as TImage).AutoSize := True;
(Form.FindComponent(Image_Name) as TImage).Proportional:= True;
If Grafik_aus_Zwischenablage = False then
begin
if Datei_mit_Pfad[length(Datei_mit_Pfad)-3] = '.' then
endung := copy(Datei_mit_Pfad,length(Datei_mit_Pfad)-2,length(Datei_mit_Pfad));
if Datei_mit_Pfad[length(Datei_mit_Pfad)-4] = '.' then
endung := copy(Datei_mit_Pfad,length(Datei_mit_Pfad)-3,length(Datei_mit_Pfad));
case uppercase(endung) of
'PNG': (Form.FindComponent(Image_Name) as TImage).Picture.PNG.LoadFromFile(Datei_mit_Pfad);
'BMP': (Form.FindComponent(Image_Name) as TImage).Picture.Bitmap.LoadFromFile(Datei_mit_Pfad);
'DIB': (Form.FindComponent(Image_Name) as TImage).Picture.Bitmap.LoadFromFile(Datei_mit_Pfad);
'JPG': (Form.FindComponent(Image_Name) as TImage).Picture.Jpeg.LoadFromFile(Datei_mit_Pfad);
'JPEG': (Form.FindComponent(Image_Name) as TImage).Picture.Jpeg.LoadFromFile(Datei_mit_Pfad);
'JPE': (Form.FindComponent(Image_Name) as TImage).Picture.Jpeg.LoadFromFile(Datei_mit_Pfad);
'JFIF': (Form.FindComponent(Image_Name) as TImage).Picture.Jpeg.LoadFromFile(Datei_mit_Pfad);
else endung := 'ERROR';
end;
if endung = 'ERROR' then
begin
showmessage('Keine Bilddatei ausgewählt!');
exit;
end;
end
else
begin
(Form.FindComponent(Image_Name) as TImage).Picture.Bitmap.LoadFromClipboardFormat(CF_BITMAP);
end;
(Form.FindComponent(Image_Name) as TImage).AutoSize := False;
(Form.FindComponent(Image_Name) as TImage).Proportional:= False;
Result := 'OK';
end;