Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - cambio colore sfondo
Forum - Pascal - cambio colore sfondo

Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 19:42
Giovedì, 20/05/2010
perchè se cambio il colore dello sfondo la prima volta che eseguo lo sfondo resta tutto nero a parte dei caratteri che ho scritto? mi spiego meglio: ho fatto una procedura così:

Codice sorgente - presumibilmente Delphi

  1. procedure prepara_campo;
  2. var i,d :integer;
  3. begin
  4.  TextBackground(Green);
  5.  TextColor(Black);
  6.  for i:= 1 to 80 do
  7.   begin
  8.   gotoxy(i,1);
  9.   write(chr(219));
  10.   end;
  11.  for i:=2 to 24 do
  12.   begin
  13.    gotoxy(1,i);
  14.    write(chr(219));
  15.    gotoxy(80,i);
  16.    write(chr(219));
  17.   end;
  18.  line_vert(30,5,10);
  19.  line_vert(36,5,10);
  20.  line_orr(8,23,20);
  21.  line_orr(12,23,20);
  22.  gotoxy(36,12);
  23.  write(chr(206));
  24.  gotoxy(30,12);
  25.  write(chr(206));
  26.  gotoxy(36,8);
  27.  write(chr(206));
  28.  gotoxy(30,8);
  29.  write(chr(206));
  30.  for i:= 1 to 3 do
  31.  begin
  32.  gotoxy(23+i*6,7);
  33.  write(i);
  34.  end;
  35.  for i:= 1 to 3 do
  36.  begin
  37.  gotoxy(23+i*6,11);
  38.  write(i+3);
  39.  end;
  40.  for i:= 1 to 3 do
  41.  begin
  42.  gotoxy(23+i*6,15);
  43.  write(i+6);
  44.  end;
  45. end;


che mi coloraw di verde lo sfondo e mi fa la griglia del tris.... però la prima volta che lo eseguo mi si colora solo lo spazio vicino alla griglia...come mai?

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 21:28
Giovedì, 20/05/2010
Per colorare lo sfondo dopo averne impostato un colore devi usare un clrscr.
Ti consigliereri, inoltre, per creare la cornice, di usare la procedura window, che limita l'area su cui si lavora quando si utilizza una funzione della unit crt.

Suggerirei :

Codice sorgente - presumibilmente Delphi

  1. procedure  prepara_campo;
  2. var i,d :integer;
  3. begin
  4. clrscr;
  5. TextBackground(Green);
  6. TextColor(Black);
  7. window(2,2,79,24);
  8. clrscr;
  9. line_vert(30,5,10);
  10. line_vert(36,5,10);
  11. line_orr(8,23,20);
  12. line_orr(12,23,20);
  13. gotoxy(36,12);
  14. write(chr(206));
  15. gotoxy(30,12);
  16. write(chr(206));
  17. gotoxy(36,8);
  18. write(chr(206));
  19. gotoxy(30,8);
  20. write(chr(206));
  21. for i:= 1 to 3 do
  22. begin
  23. gotoxy(23+i*6,7);
  24. write(i);
  25. end;
  26. for i:= 1 to 3 do
  27. begin
  28. gotoxy(23+i*6,11);
  29. write(i+3);
  30. end;
  31. for i:= 1 to 3 do
  32. begin
  33. gotoxy(23+i*6,15);
  34. write(i+6);
  35. end;
  36. end;



Ok ??

PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 10:51
Domenica, 23/05/2010
quindi in pratica window e come se aprisse una finestra all'interno dello schermo?

se è così quando uso un gotoxy(1,1) non considera l'intera area dello schermo, ma solo quella definita in window?

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 15:22
Domenica, 23/05/2010
sì, esatto.

Non l'ho fatto ma dovresti cambiare i parametri dei Gotoxy che hai usato.

Ultima modifica effettuata da Phi il 23/05/2010 alle 15:32
PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 18:58
Domenica, 23/05/2010
quando ho un pò di tempo provo...Grazie mille per il consiglio!!:k:

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 19:03
Domenica, 23/05/2010

Prego !!

PM Quote