Oppure

Loading
03/02/10 21:40
systemgvp
Salve, Utilizzo Delphi 2010.

Simulare il movimento di un oggetto, che supponiamo essere un bottone o meglio una serie di bottoni posti sul form.
Li faccio muovere, incrementando la loro posizione di una certa quantità.

Il problema però è che se metto la procedura in un ciclo for, dove esegue delle operazioni per determinarne la posizione, e sempre nello stesso ciclo la funzione che lo deve muovere, NON MI FA VEDERE IL MOVIMENTO, ma me lo piazza dierettamente alla posizione finale, Perchè?

Perchè nasconde "all'utente" i passaggi "dell'elaborazione" ?

:grr:
aaa
03/02/10 21:54
Alfonso
Devi mettere:

Application.ProcessMessages;

subito dopo il movimento altrimenti il sistema procede senza mostrare i cambiamenti
aaa
04/02/10 10:48
systemgvp
grazie, è rimasto solo un problema, non mostra proprio l'elemento ma la forma dell'elemento del colore del form.
aaa
04/02/10 11:13
systemgvp
un altro problema, più serio, al primo avvio funziona tutto perfettamente, ma quando riavvio il codice per la seconda volta, es.:

//...
//disegna veicoli
MenuGEN.DisegnaVeicoliVirtualiClick(Sender);
Application.ProcessMessages;
//...

Mi da errore! "raised exception class EInvalidPointer with message 'Invalid pointer operation'" e non capisco perchè l'errore me lo mostra in Application.ProcessMessages;
aaa
04/02/10 11:22
Alfonso
Per la prima domanda è stato semplice, anche se non conosco Delphi.
Per le altre domande aspetta le risposte di un esperto.
aaa
05/02/10 10:18
systemgvp
il problema dell'errore l'ho risolto, perchè l'errore era in un Array altrove.

Resta però il problema che l'elemento che si muove è trasparente, o meglio la forma è la sua, ma assume il colore di ciò che ci ha sotto
aaa