03/08/09 7:57
giulioscatto
Cavolo il mio primo post!
Ciao a tutti!
Ho un piccolo, ma fastidioso problema: vorrei memorizzare la schermata di output
fatta con il graph per utilizzarla in seguito, durante il programma.
Questa mia necessità deriva dal fatto che, volendo simulare un pseudo-Windows, ho dovuto creare il mouse.
Praticamente funziona così:
1- Disegna se stesso;
[Il cursore reale si sposta]
2- Cancella se stesso;
3- Disegna se stesso sulla nuova posizione;
...
Questa era la mia idea... Il problema è che quando si cancella deve disegnare ciò che stava coprendo... (chiedo scusa se fin'ora, ma anche dopo, sarò impreciso ma sono abbastanza confuso di mio! ).
Per memorizzare una finta schermata avevo pensato di usare un pointer type, o come cavolo si chiamano , usando le procedure getimage,getmem,putimage... (tutto visto su internet ).
Avevo provato a fargli copiare l'intera schermata (480x640) ma TP si bloccava...
Allora ho provato dividendo la schermata in 12 parti (4x3) ma, praticamente, ora me ne ritorna solo 9!
Non so qual'è il problema... vi chiedo un grande HELP!
Ecco il codice (ci sono molte cose che non c'entrano, ho cercato di toglierle ma non so se le ho tolte tutte..):
Grazie in anticipo.
Ciao a tutti!
Ho un piccolo, ma fastidioso problema: vorrei memorizzare la schermata di output
fatta con il graph per utilizzarla in seguito, durante il programma.
Questa mia necessità deriva dal fatto che, volendo simulare un pseudo-Windows, ho dovuto creare il mouse.
Praticamente funziona così:
1- Disegna se stesso;
[Il cursore reale si sposta]
2- Cancella se stesso;
3- Disegna se stesso sulla nuova posizione;
...
Questa era la mia idea... Il problema è che quando si cancella deve disegnare ciò che stava coprendo... (chiedo scusa se fin'ora, ma anche dopo, sarò impreciso ma sono abbastanza confuso di mio! ).
Per memorizzare una finta schermata avevo pensato di usare un pointer type, o come cavolo si chiamano , usando le procedure getimage,getmem,putimage... (tutto visto su internet ).
Avevo provato a fargli copiare l'intera schermata (480x640) ma TP si bloccava...
Allora ho provato dividendo la schermata in 12 parti (4x3) ma, praticamente, ora me ne ritorna solo 9!
Non so qual'è il problema... vi chiedo un grande HELP!
Ecco il codice (ci sono molte cose che non c'entrano, ho cercato di toglierle ma non so se le ho tolte tutte..):
uses crt,graph; type part_sf = array[0..4,0..3] of pointer; var gm,gd,m,n:integer; size:word; schermo:part_sf; begin initgraph(gm,gd,''); setcolor(11); line(0,0,69,479); setcolor(14); rectangle(10,10,50,30); rectangle(10,110,150,30); rectangle(10,210,350,30); circle(500,400,50); circle(500,0,50); readln; for m:=0 to 3 do begin for n:=0 to 2 do begin rectangle(m*160,n*160,m*160+160,n*160+160); size:=imagesize(m*160,n*160,m*160+160,n*160+160); getmem(schermo[m,n],size); getimage(m*160,n*160,m*160+160,n*160+160,schermo[m,n]^); end; end; readln; clearviewport; readln; for m:=0 to 3 do for n:=0 to 2 do putimage(m*160,n*160,schermo[m,n]^,0); for m:=0 to 3 do begin for n:=0 to 2 do begin size:=imagesize(m*160,n*160,m*160+160,n*160+160); freemem(schermo[m,n],size); end; end; readln; closegraph; end.
Grazie in anticipo.
Ultima modifica effettuata da giulioscatto 03/08/09 7:58
aaa