bruno.demarini (Normal User)
Pro
Messaggi: 84
Iscritto: 22/03/2010
|
Ciao a tutti, vorrei caricare all'interno di una TImage una immagine e lo faccio attraverso questa procedura:
Codice sorgente - presumibilmente Delphi |
procedure TForm1.Open1Click(Sender: TObject); begin if OpenDialog1.Execute then CurrentFile := OpenDialog1.FileName; Image1.Picture.LoadFromFile(CurrentFile); end;
|
Il problema è che così riesco a leggere solo files bmp.
Dunque ho aggiunto la clausola uses:
Codice sorgente - presumibilmente Delphi |
Resta il problema con i files Gif, per cui ricevo il seguente errore:
"Unknown picture file extension (GIF)
C'è qualcuno che voglia aiutarmi? Grazie |
|
a_butta (Member)
Expert
Messaggi: 578
Iscritto: 16/03/2010
|
Ah cavolo hai ragione... Io ho Delphi 2010 e lì è implementato correttamente, ma già su delphi 7 non gira.
Ho provato allora con questo metodo, e sul 7 funziona:
aggiungi la unit axctrls e quindi usi questa procedura:
Codice sorgente - presumibilmente Delphi |
procedure TForm1.Button1Click(Sender: TObject); var f : TFileStream; graphic : TOleGraphic; begin if OpenDialog1.Execute then begin graphic := TOleGraphic.Create; f := TFileStream.Create (OpenDialog1.FileName, fmOpenRead or fmShareDenyNone); try graphic.LoadFromStream(f); Image1.Picture.Assign(graphic); finally f.Free end end end;
|
Funziona con OpenDialog tranquillamente. Non ho provato con OpenPictureDialog anche se dovrebbe funzionare lo stesso in quanto non dipende dal "dialogatore"
Comunque la TOleGraphic utilizza una dll microsoft, quindi questo metodo è utilizzato sotto windows.
Fammi sapere
|
|
a_butta (Member)
Expert
Messaggi: 578
Iscritto: 16/03/2010
|
Mmmh... strano da me carica i file GIF, anche senza aggiungere la unit JPEG... Comunque io ho usato non l'OpenDialog, ma il PictureOpenDialog...
Prova con quello e fammi sapere...
|
|
bruno.demarini (Normal User)
Pro
Messaggi: 84
Iscritto: 22/03/2010
|
Postato originariamente da a_butta:
Mmmh... strano da me carica i file GIF, anche senza aggiungere la unit JPEG... Comunque io ho usato non l'OpenDialog, ma il PictureOpenDialog...
Prova con quello e fammi sapere... |
Grazie per la risposta.
Ho fatto come mi hai detto usando i PictureDialog, ma ottengo lo stesso problema.
Difatti, nella proprietà filter dell'OpenPictureDialog ci sono diverse scelte (jpg, jpeg, bmp, ico, emf, wmf) ma non la scelta *.gif.
Dunque ho aggiunto questa scelta, ottenendo (prevedibilmente) comunque lo stesso errore... |
|
a_butta (Member)
Expert
Messaggi: 578
Iscritto: 16/03/2010
|
che versione di delphi usi?
|
|
bruno.demarini (Normal User)
Pro
Messaggi: 84
Iscritto: 22/03/2010
|
Postato originariamente da a_butta:
che versione di delphi usi? |
Delphi 6 Professional. |
|
bruno.demarini (Normal User)
Pro
Messaggi: 84
Iscritto: 22/03/2010
|
Postato originariamente da a_butta:
Ah cavolo hai ragione... Io ho Delphi 2010 e lì è implementato correttamente, ma già su delphi 7 non gira.
Ho provato allora con questo metodo, e sul 7 funziona:
aggiungi la unit axctrls e quindi usi questa procedura:
Codice sorgente - presumibilmente Delphi |
procedure TForm1.Button1Click(Sender: TObject); var f : TFileStream; graphic : TOleGraphic; begin if OpenDialog1.Execute then begin graphic := TOleGraphic.Create; f := TFileStream.Create (OpenDialog1.FileName, fmOpenRead or fmShareDenyNone); try graphic.LoadFromStream(f); Image1.Picture.Assign(graphic); finally f.Free end end end;
|
Funziona con OpenDialog tranquillamente. Non ho provato con OpenPictureDialog anche se dovrebbe funzionare lo stesso in quanto non dipende dal "dialogatore"
Comunque la TOleGraphic utilizza una dll microsoft, quindi questo metodo è utilizzato sotto windows.
Fammi sapere |
Ho provato il tuo codice prima con l'OpenPictureDialog e poi con l'OpenDialog. Il primo tentativo è fallito, stesso errore; con l'OpenDialog invece funziona perfettamente. Per cercare di capire il perché ho eseguito il debug e sembra proprio dipendere dal "dialogatore" Picture (l'errore avviene non appena seleziono l'immagine GIF da caricare).
Grazie mille per l'aiuto, ciao |
|
a_butta (Member)
Expert
Messaggi: 578
Iscritto: 16/03/2010
|
a ok perfetto! Questo non lo sapevo!
Ciaociao!!
|
|