Topic: How can I pass an "SaveImageToDataBaseControl" to a Script function?
I want to use a resize function on different "SaveImageToDataBaseControls".
The procedure on an Butto works fine and so I want to use it in an function fo more then one Imagecontrols.
How can I pass the control to the function?
This function should then be called on saging the record
Bildverkleinern (frmAdresse.Foto1)
Bildverkleinern (frmAdresse.Foto2)
Bildverkleinern (frmAdresse.Foto3)
I tried something like this but leads to error:
function BildVerkleinern (Image: TPicture): boolean;
var
QuellBildName, QuellBildPfad: string;
ZielBildName, ZielBildPfad: string;
Querformat: boolean;
BreiteNeu,HoeheNeu: integer;
begin
Result := False;
ShowMessage ('BreiteVorher=' + IntToStr(Image.Picture.Width) + ' HöheVorher=' + IntToStr(Image.Picture.Height));
// if Image.dbImageIsChanged then
begin
if (Image.Picture.Width > 800) or (Image.Picture.Height > 800) then
begin
if Image.Picture.Width > Image.Picture.Height then
begin
BreiteNeu := 800;
HoeheNeu := int(Image.Picture.Height / Image.Picture.Width * 800);
end
else
begin
HoeheNeu := 800;
BreiteNeu := int(Image.Picture.Width / Image.Picture.Height * 800);
end;
QuellBildName := ExtractFileName(Image.dbFileName);
QuellBildPfad := GetEnvironmentVariable('Temp');
ZielBildName := '_' + QuellBildName;
ZielBildName := ChangeFileExt(ZielBildName, '.jpg');
ZielBildPfad := GetEnvironmentVariable('Temp');
ShowMessage('QuellBild=' + QuellBildPfad + '\' + QuellBildName);
ShowMessage('ZieBild=' + ZielBildPfad + '\' + ZielBildName);
Image.Picture.SaveToFile(QuellBildPfad + '\' + QuellBildName);
//PictureResizeToJpg(InFile, OutJpgFile: string; NewWidth: integer = -1; NewHeight: integer = 1, Quality: integer = 80);
if PictureResizeToJpg(QuellBildPfad + '\' + QuellBildName, ZielBildPfad + '\' + ZielBildName, BreiteNeu,HoeheNeu,75) then
begin
Image.dbImageIsChanged := True;
Image.Picture.LoadFromFile(ZielBildPfad + '\' + ZielBildName);
ShowMessage ('BreiteNachher=' + IntToStr(Image.Picture.Width) + ' HöheNachher=' + IntToStr(Image.Picture.Height));
DeleteFile(QuellBildPfad + '\' + QuellBildName);
DeleteFile(ZielBildPfad + '\' + ZielBildName);
Result := True;
end;
end;
end;
end;