Salve a tutti, come faccio a collegare un insieme di eventi alla pressione di un tasto?
Mi spiego meglio, ipotizziamo questa procedura:
Vorrei che in qualunque parte del codice potessi richiamare la pressione di un tasto. Nella fattispecie sto tentando di realizzare l'intelligenza artificiale, in maniera tale che in determinate condizioni, ad esempio la racchetta "gestita" dalla cpu prema "virtualmente" X (richiamando cosi la procedura POTERI). Volevo insomma evitare di ricopiare del codice presente nella procedura POTERI.codice:procedure TTennisForm.FormKeyPress(Sender: TObject; var Key: Char); begin {La racchetta non deve uscire fuori dal campo} case Key of 'A', 'a':if cpu1=FALSE then if not (pnRacchetta1.Top<=0) then //se é oltre non si muove if (pnRacchetta1.Top-12)<0 then //se continua si ferma al limite pnRacchetta1.Top:=0 else //normale pnRacchetta1.Top:=(pnRacchetta1.Top-12); // //così anche per gli altri 'Z', 'z':if cpu1= FALSE then if not ((pnRacchetta1.Top+pnRacchetta1.Height)>=pnCampo.Height) then if (pnRacchetta1.Top+pnRacchetta1.Height+12)>pnCampo.Height then pnRacchetta1.Top:=(pnCampo.Height-pnRacchetta1.Height) else pnRacchetta1.Top:=(pnRacchetta1.Top+12); 'J', 'j':if cpu2= FALSE then if not (pnRacchetta2.Top<=0) then if (pnRacchetta2.Top-12)<0 then pnRacchetta2.Top:=0 else pnRacchetta2.Top:=(pnRacchetta2.Top-12); 'M', 'm':if cpu2= FALSE then if not ((pnRacchetta2.Top+pnRacchetta2.Height)>=pnCampo.Height) then if (pnRacchetta2.Top+pnRacchetta2.Height+12)>pnCampo.Height then pnRacchetta2.Top:=(pnCampo.Height-pnRacchetta2.Height) else pnRacchetta2.Top:=(pnRacchetta2.Top+12); 'X','x':Poteri; 'L','l':Poteri2; end;
Spero di essermi spiegato dignitosamente (è più facile a farsi che a dirsi).
ciao


Rispondi quotando