Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [delphi]disabilitare tasto ds del mouse


    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!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    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...

  3. #3
    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?

  4. #4
    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;

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quello che volevo dire è che se tu hai una procedura di evento simile alla seguente:
    codice:
    procedure MouseClick;
    begin
      // Esegui operazione di zoom
    end;
    e desideri non gestirlo più, è facile scrivere:
    codice:
    procedure MouseClick;
    begin
      if EPossibileEffettuareLoZoom then
      begin
        // Esegui operazione di zoom
      end;
    end;
    Si tratta solamente di definire l'espressione di controllo che determina se, a fronte del clic, è necessario procedere con lo zoom oppure no.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.