Newsgroup: it.comp.lang.delphi
Titolo: installaziione package Graphic32

E' mia intenzione installare il package Graphic32 perché contiene un 
componente TImage con double buffering che fa al caso mio. Il problema è che 
non riesco assolutamente ad installare il package. Ho fatto molte prove. La 
struttura del file che si scarica da internet prevede una serie di file .pas 
e due cartelle :una che contiene gli esempi ed una che contiene pacchetti 
per C++Builder e file .dpk per Delphi. Qual'è la procedura più corretta da 
seguire? Devo fare un pacchetto partendo dal file .pas, oppure parto 
direttamente dal file .dpk? Purtoppo le informazioni che ho trovato nel 
newsgroup e in internet non sono state sufficienti a risolvere questo 
problema.Mi scuso in anticipo per la banalità del quesito.

 componente TImage con double buffering che fa al caso mio. [...]
La procedura da seguire è molto semplice, in quanto i componenti vengono 
forniti completi di package pronti all'uso.
E' sufficiente aprire il file ".dpk" corrispondente all'ambiente di 
sviluppo in uso (se possiedi D2006, suppongo sia possibile utilizzare 
tranquillamente le versioni per D2005).
Sono disponibili due package, uno di tipo "runtime" e uno di tipo 
"designtime"; il primo contiene il codice dei componenti e dei controlli 
visuali che verranno utilizzati nelle tue applicazioni, il secondo 
contiene tutto ciò che riguarda l'uso di tali componenti all'interno 
dell'IDE. Solo quest'ultimo può essere materialmente "installato" 
nell'ambiente di sviluppo.
Innanzitutto, apri il package runtime per compilarlo: è quello con nome 
"GR32_D2005.dpk". Dal Project Manager, fai clic con il tasto destro sul 
nodo del progetto e seleziona "Build"; in questo modo, il package 
runtime verrà compilato.
Se ti viene segnalato un errore nel file GR32.INC, è possibile che non 
siano state definite costanti per l'ambiente di sviluppo che usi (D2005 
oppure D2006); in tal caso, aggiungi queste righe all'inizio del file:
{$IFDEF VER180}
   {$DEFINE INLININGSUPPORTED}
   {$DEFINE COMPILER2005}
   {$DEFINE COMPILER7}
   {$DEFINE COMPILER6}
   {$DEFINE COMPILER5}
   {$DEFINE COMPILER4}
   {$IFNDEF BCB}
     {$DEFINE DELPHI2005}
   {$ELSE}
     {$DEFINE BCB7}
   {$ENDIF}
{$ENDIF}
in modo da rendere riconoscibile anche D2006, nella speranza che 
l'autore rilasci una versione "ufficiale" per questo ambiente.
Quando la combinazione va a buon fine, apri il secondo package, quello 
designtime, di nome "GR32_DSGN_D2005". Fai clic sul nodo del progetto 
con il tasto destro e scegli "Install" per installare il package.
Se l'operazione va a buon fine, ti verrà visualizzato un messaggio 
opportuno con l'elenco dei nuovi componenti installati.
Nello sviluppo di applicazioni, puoi trascinare i componenti e i 
controlli del package nelle tue applicazioni; per poter compilare i 
progetti, devi indicare a Delphi il percorso in cui si trovano i file 
sorgenti ".pas" corrispondenti (se vuoi compilare e integrare il codice 
dei componenti nella tua applicazione), attraverso la voce "Library 
Path" delle opzioni Delphi [Library - Win32], quindi in modo globale e 
valido per tutti i progetti, oppure nelle opzioni del progetto 
dell'applicazione stessa con la voce di menu [Project|Options...], 
pagina "Directories/Conditionals", campo "Search Path".
In caso contrario, puoi eseguire la compilazione con i runtime package, 
ma devi distribuire il file BPL del package runtime (assieme a tutti 
quelli da cui esso dipende) unitamente al file eseguibile affinchè esso 
funzioni sulla macchina di destinazione.
Ad ogni modo, informazioni estese su queste procedure si trovano anche 
nella Guida in linea di Delphi.
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

La tua spiegazione mi è stata indispensabile ed esauriente. Nel pacchetto 
Graphic32 ci sono due controlli TImage: in ambedue i casi non è presente la 
proprietà stretch e quindi mi è difficile fare lo zoom da codice come mi era 
stato suggerito nel mio post precedente "zoom immagine". (esisterebbe una 
proprietà scale mode:=smstretch ma non ottengo ugualmente lo zoom).
In effetti non ho più il problema del flickering anche se devo dire che era 
apparso non quando ho impostato la proprietà tracking della scrollbox a 
true, bensì quando ho inserito il codice per fare lo zoom dell'immagine.
A questo punto mi domando se è ugualmente possibile fare lo zoom da codice 
con questi componenti della libreria Graphic 32 o se non mi convenga usare 
una strategia alternativa.

 una strategia alternativa.
Io ho inserito un controllo TImage32 al posto del precedente TImage e 
modificato il codice come segue:
procedure TMainForm.LoadButtonClick(Sender: TObject);
begin
   if OpenPictureDialog.Execute then
   begin
     SourceImage.Bitmap.LoadFromFile(OpenPictureDialog.FileName);
     SourceImage.AutoSize := True;
   end;
end;
procedure TMainForm.SourceImageMouseDown(Sender: TObject; Button: 
TMouseButton;
   Shift: TShiftState; X, Y: Integer; Layer: TCustomLayer);
begin
   SourceImage.AutoSize := False;
   SourceImage.ScaleMode := smStretch;
   case Button of
     mbLeft:
       begin
         SourceImage.Width := Trunc(SourceImage.Width / 0.2);
         SourceImage.Height := Trunc(SourceImage.Height / 0.2);
       end;
     mbMiddle:
       begin
         SourceImage.ScaleMode := smNormal;
         SourceImage.AutoSize := True;
       end;
     mbRight:
       begin
         SourceImage.Width := Trunc(SourceImage.Width * 0.2);
         SourceImage.Height := Trunc(SourceImage.Height * 0.2);
       end;
   end;
end;
Prova a vedere se può esserti utile, magari inserendo qualche limite 
allo zoom in modo che l'immagine non diventi troppo piccola o 
eccessivamente grande.


   Shift: TShiftState; X, Y: Integer; Layer: TCustomLayer);
Non riesco a provare il codice perché mi sono bloccata davanti a questo 
messaggio di errore:
E2003 Undeclared identifier:TCustomLayer'
Vicky 

 E2003 Undeclared identifier:TCustomLayer'
Aggiungi la unit "GR32_Layers" alla clausola *uses*; la unit in 
questione definisce il tipo mancante. ;-)


Cosě funziona.Grazie per l'infinita pazienza!
Vicky 

 Vicky 
No problem! :-)
Comunque, l'esempio di "zoom" che abbiamo affrontato è un po'...come si 
dice in questi casi...triviale. :-)
Nel senso che molto probabilmente il pacchetto offre funzionalità 
apposite per gestire lo zoom e la qualità delle immagini generate.
Nella cartella del "package" c'è un file CHM con la documentazione dei 
componenti... prova a dare un'occhiata se vuoi ottenere qualche 
risultato più complesso rispetto a quello un po' banalotto raggiunto con 
l'esempio scarno che ti ho fornito. ;-)
Ciao,
   Marco.


 ha scritto nel messaggio 
news:43a5cca3$1...@newsgate.x-privat.org...
