Ir para conteúdo
Fórum Script Brasil
  • 0

Comandos Que Não Tem No Turbo Pascal 7


plikts

Pergunta

Oi!

Desculpe se estou postando no local errado, mas como aqui o pessoal mexe com Delphi, devem conhecer um pouco do Turbo Pascal pelo menos(eu acho).

Bem.

Em primeiro lugar, o Turbo Pascal 7 é Orientado a objeto?

Existe algum compilador para Pascal melhor e mais completo?

Comando como KBD e BufLen(controle teclado) não funcionam no Turbo Pascal 7, como faço para eles funcionarem?bibliotecas para download?

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

opa

Em primeiro lugar, o Turbo Pascal 7 é Orientado a objeto?

Com certeza é orientado a objeto, mas lá não existem class, somente object.

A diferença é que tipos class são ponteiros, e é preciso alocar memória e inicializar um objeto e depois colocar o endereço nesse ponteiro, exemplo:

var
  List : TStringList;
begin
  List := TStringList.Create;
  .
  .
  .
nesse caso o construtor create cria o objeto na memória e coloca o endereço no ponteiro List. E no Turbo Pascal 7 existem os objetos->
type
  TClockView = object(TView)
    a, b, c : integer;
    procedure Update;
    .
    .
    .
nesse caso quando você declara uma var desse tipo, não está declarando um ponteiro, mas sim alocando todo o registro, não sendo necessário o construtor. Para usar de maneira semelhante as classes você pode usar um contrutor e usar a função new para alocar para o ponteiro ->
type
  PClockView = ^TClockView;
  TClockView = object(TView)
    a, b, c : integer;
    constructor create(Rect : TRect);
    destructor destroy;
    procedure Update;
    .
    .
    .
var
  Clock : PClockView;
begin
  Clock:=new(PClockView,Create(r));
  Clock^.Update;
  .
  .
  .
Assim é como se o ponteiro Clock fosse uma classe.
Existe algum compilador para Pascal melhor e mais completo?
Não acredito. Se você tiver a versão completa do Turbo Pascal 7 verá que é muito boa. Se quiser posso te enviar por email.
Comando como KBD e BufLen(controle teclado) não funcionam no Turbo Pascal 7, como faço para eles funcionarem?bibliotecas para download?
Básicamente se interceptam menssagens pelo teclado no Turbo Pascal pela função ReadKey que retira uma tecla do buffer do teclado. O buffer do DOS tem tamanho máximo de 15 bytes e é uma referencia circular que se encontra no endereço $0040:$001E. O byte em $0040:$001A aponta para o início dessa fila e o byte em $0040:001C aponta para a posição livre no final da fila. Então para limpar o buffer é só fazer ->
mem[$0040:$001A]:=mem[$0040:001C];

Certo?

Qualquer dúvida fala aí.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...