Ho già scritto tutto nel titolo: siccome eseguo su un'immagine uno zoom cliccandoci sopra con il tasto ds del mouse volevo chiedere come è possibile disabilitare questa funzionalità del mouse (mi serve per limitare lo zoom ). Grazie!
Ho già scritto tutto nel titolo: siccome eseguo su un'immagine uno zoom cliccandoci sopra con il tasto ds del mouse volevo chiedere come è possibile disabilitare questa funzionalità del mouse (mi serve per limitare lo zoom ). Grazie!
Immagino che lo zoom sia implementato facendo materialmente "qualcosa" (da leggere come "eseguire codice") quando viene premuto il pulsante del mouse, quindi basterebbe semplicemente evitare di farlo quando non vi sono le condizioni.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Si, ma le persone che usano il mouse non sanno che io non voglio che ingrandiscano troppo l'immagine (o la rimpiccioliscano troppo) quindi è necessario che io, dopo il raggiungimento di una certa dimensione dell'immagine trovi il modo di bloccarne l'ulteriore ingrandimento o riduzione. Forse vuoi dirmi che dovrei agire su qualche altro oggetto o controllo?
Scrivere in questo forum è per me un'ottima fonte di ispirazione! Ho risolto il problema così (altro che disabilitare il mouse):
codice:procedure TForm.ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer; Layer: TCustomLayer); var zoom:double; begin Image.AutoSize := False; Image.ScaleMode := smStretch; case Button of mbLeft: begin if (image.width >1600) then zoom:=1 else zoom:=0.8; Image.Width := Trunc(Image.Width / zoom); Image.Height := Trunc(Image.Height / zoom); end; mbRight: begin if (image.width <1200) then zoom:=1 else zoom:=0.8; Image.Width := Trunc(Image.Width * zoom); Image.Height := Trunc(Image.Height * zoom); end; end; end;
Quello che volevo dire è che se tu hai una procedura di evento simile alla seguente:
e desideri non gestirlo più, è facile scrivere:codice:procedure MouseClick; begin // Esegui operazione di zoom end;
Si tratta solamente di definire l'espressione di controllo che determina se, a fronte del clic, è necessario procedere con lo zoom oppure no.codice:procedure MouseClick; begin if EPossibileEffettuareLoZoom then begin // Esegui operazione di zoom end; end;
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...