Avatar billede michael-schou Novice
29. januar 2006 - 14:16 Der er 6 kommentarer og
1 løsning

Automatisk tilpasning af billede i DBImage - Hvordan?

Jeg sidder og roder med et lille database program, som holder styr på billeder. Databasen er Paradox 7.

Jeg her en TDBEdit og en DBImage komponent på min form og kanpper.

TDBEdit bruges til at indtaste en overskrift til billedet.
Under min DBImage har jeg en knap der hedder "Indsæt Billede".

Mit spørgsmål er så :

Hvordan kan jeg få DBImage til at automatisk at passe til billedet størrelse der bliver vist i DBimage når man gennem ser posterne og når man indsætter billeder?

Kode for knappen "Indsæt Billede" :

****KODE START*****

procedure TForm4.BitBtn1Click(Sender: TObject);
begin
if DataModule3.Table1.state in [dsedit,dsinsert] then
begin
  Form4.OpenPictureDialog1.initialdir := 'c:';
  if Form4.OpenPictureDialog1.execute then
  begin
  DataModule3.Table1Billede.LoadFromFile(Form4.OpenPictureDialog1.filename);
  end;
end;
end;

*****KODE SLUT*****
Avatar billede kroning Nybegynder
29. januar 2006 - 14:23 #1
Er det ikke bare at sætte Stretch=true i Object Inspectoren?
Avatar billede kroning Nybegynder
29. januar 2006 - 14:25 #2
P.S. Jeg har aldrig brudt mig om at smide billederne ind i databasen, jeg foretrækker at gemme et link til billedet i data basen i stedet. Men der kan sikker være grunde til at gemme billedern i basen som jeg ikke har tænkt på :-)
Avatar billede michael-schou Novice
29. januar 2006 - 14:40 #3
Jo man kan godt sætte Stretch=true men så skal man bare selv lave en standard størrelse af DBImage, så bliver billedet automatisk tilpasset den størrelse du har givet DBImage :) Men jeg ville gerne have at Billedet skulle give DBImage input om størrelsen :)
Avatar billede kroning Nybegynder
29. januar 2006 - 16:06 #4
Glem det, det var Proportional=true jeg mente men den findes så ikke i DBImage men kun i  TImage.
Avatar billede kroning Nybegynder
29. januar 2006 - 16:22 #5
Du har nok en TDataSource, i dennes OnDataChange event bruger du denne kode:

var
    Ratio: Double;
begin
    DBImage1.Width:=500; // din max standard bredde
  DBImage1.Height:=200; // din max standard højde

    Ratio:=DBImage1.Picture.Width / DBImage1.Picture.Height;
    if Ratio > 1 then
      DBImage1.Height:=Round(DBImage1.Width / Ratio)
    else
      DBImage1.Width:=Round(DBImage1.Height * Ratio);
end;
Avatar billede michael-schou Novice
29. januar 2006 - 17:55 #6
Det virker fint super takker.

Smid lige din sidste kommentar som et svar så for du point :)
Avatar billede kroning Nybegynder
29. januar 2006 - 18:19 #7
Godt så
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester