jeg vil høre om nogle kan hjælpe mig med dette lille program jeg har en listbox1 som bliver fodret med paths til jpg billeder som skal resizes og gemmes på samme lokation (path) med samme fil navn. eks. c:\arkiv\resizes\test.jpg
jeg har med lidt hjælp kommet frem til denne stykke kode, men det bruger opendialog , filename, hvordan kan man få den til at loade filerne listet til listboxen en efter en og gemme dem igen ?
koden ser således ud:
procedure TForm1.Button4Click(Sender: TObject); var bmp: TBitmap; jpg: TJpegImage; scale: Double; begin if opendialog1.execute then begin jpg := TJpegImage.Create; try jpg.Loadfromfile(opendialog1.filename); if jpg.Height > jpg.Width then scale := 50 / jpg.Height else scale := 50 / jpg.Width; bmp := TBitmap.Create; try {Create thumbnail bitmap, keep pictures aspect ratio} bmp.Width := Round(jpg.Width * scale); bmp.Height:= Round(jpg.Height * scale); bmp.Canvas.StretchDraw(bmp.Canvas.Cliprect, jpg); {Draw thumbnail as control} Self.Canvas.Draw(100, 10, bmp); {Convert back to JPEG and save to file} jpg.Assign(bmp); jpg.SaveToFile(opendialog1.filename); finally bmp.free; end; finally jpg.free; end; end; end; end.
Jeg er støt på et lille problem med koden, hvis en jpg fil er åben i andet program når koden tager fat i jpg filen, så kommer der en jpg fejl #51 , kan man indbygge en exit on error ? alså så min application lukker hvis den støder på en fil som er åben.
Det er nemlig tanken at programmet løbende skal køre i takt med det kommer jpg filer ind, trigget af en scheduler, så det den ikke kan håndtere hvis filen er åben m.m klarer den bare senere når den kører. Det ville være smart hvis man kunne lukke programmet istedet for den stopper hele møllen med en popup fejl som der aktivt skal trykkes på.
jeg har prøvet at google mig lidt frem , skal man selv skrive en exit kode i programmet, eller har delphi en indbygget event på errors som man på en eller anden måde kan trigge en form1.close; på ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.