Ir ao conteúdo
  • Cadastre-se

função gotoxy , ajuda em um programa


rasarib

Posts recomendados

Bom dia a todos !! =D

Intao estou com um probleminha , no caso tenho uma menu , e tenho uma 'Janelinha' para digitar a opção desejada , ai ao selecionar a mensagem escreve em cima do texto do menu ..

segue o codigo ...


unit trabalhoAv2;

interface

uses crt;

procedure menu();

implementation

procedure menu;
var
option: integer;

begin
while( option <> 6 ) do
begin
clrscr;
writeln('=======================================================');
writeln('+ LOCADORA INSERCTENTER +');
writeln('=======================================================');
writeln;
writeln;
writeln;
writeln('====== SELECIONE UMA OPCAO ====== ');
writeln(' [1] Cadastrar ' );
writeln(' [2] Pesquisar filme ' );
writeln(' [3] Alterar filme ' );
writeln(' [4] Excluir filme ' );
writeln(' [5] Listar filmes ' );
writeln(' [6] Finalizar sistema ' );

gotoxy (40,8);
textcolor(red);

gotoxy (40,9);
writeln('==============');

gotoxy (40,10);
writeln('| OPCAO = |' );

gotoxy (40,11);
writeln('==============');

gotoxy (50,10);
read(option);

case (option) of
// 1: cadastrar();
// 2: pesquisarFilme();
// 3: alterarFilme();
// 4: excluirFilme();
// 5: listarFilmes();
6: begin
gotoxy(10,40);
textcolor(white);

gotoxy(20,35);
writeln('Finalizando o sistema ...');
end
else
writeln(' OPCAO INVALIDA ' );
menu();
end;
end;
end;

end.

// agora o programa principal
program trabMain;
uses crt,trabalhoAv2;

begin
clrscr;
textbackground(lightgreen);
menu();

readkey;
delay(500);
end.

Qualquer duvida estou on , =D agradeço ai pela ajuda ^^

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

rasarib,

Olá, de antemão, a unit CRT deve ser declarada dentro do IMPLEMENTATION, não na INTERFACE... ^_^

Em relação a impressão em cima do texto, é simples:

      [color=#000000]6[/color] [color=#000000]:[/color][color=#0000ff]begin[/color]
[color=#000000]GotoXY[/color][color=#000000]([/color][color=#000000]10[/color][color=#000000],[/color][color=#000000]40[/color][color=#000000]);[/color]
[color=#000000]TextColor[/color][color=#000000]([/color]white[color=#000000]);[/color]
[color=#000000]GotoXY[/color][color=#000000]([/color][color=#000000]20[/color][color=#000000],[/color][color=#000000]35[/color][color=#000000]);[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Finalizando o sistema ...'[/color][color=#000000]);[/color]
[color=#0000ff]end[/color]

Veja, geralmente no Pascal só existem 25 linhas, logo as coordenadas do GotoXY estão erradas!!!

OBS.: Alinha GotoXY(10,40); não está servindo para nada, pois logo depois está chamando outro GotoXY(20,35);, ou seja, você primeiramente posiciona, não imprime nada, e depois reposiciona de novo! (fora a questão de 40 e 35 estarem da faixa padrão de linhas de 25 linhas...)

Esse "erro" está ocorrendo em outros casos. Observe que Textcolor(); é simplesmente um comando para alterar a cor da letra para as próximas escritas, ou seja, serve para mudar a "cor da caneta". Não faz sentido usar um posicionamento somente para alterar a cor.:rolleyes:

OBS.: É possível usar 43 ou 50 linhas também, mais é incomum, ou seja, o normal é ter somente 25 linha... indo de (1,1) até (80,25).

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!