{--------------------------------------------------------}
{            Telemark - selecao de registros
{--------------------------------------------------------}

unit tmSelec;
interface
uses dvcrt, dvwin, tmVars, tmMsg;

procedure seleciona;

implementation

{--------------------------------------------------------}
{                 seleciona registros
{--------------------------------------------------------}

procedure seleciona;

    procedure marcaTodos;
    var i: integer;
    begin
        for i := 1 to cadastrados do
            pessoas^[i]^.selecionado := true;
    end;

    {--------------------------------------------------------}

    procedure desmarcaTodos;
    var i: integer;
    begin
        for i := 1 to cadastrados do
            pessoas^[i]^.selecionado := false;
    end;

    {--------------------------------------------------------}

    procedure marcaUltimoLido;
    begin
        if posAtual <= 0 then exit;
        pessoas^[posAtual]^.selecionado := true;
    end;

    {--------------------------------------------------------}

    procedure desmarcaUltimoLido;
    begin
        if posAtual > 0 then
            pessoas^[posAtual]^.selecionado := false;
    end;

var opcao, quem, c2: char;
begin
    mensagem ('TMSELDES', 0);   {'Seleciona ou desseleciona ? '}
    sintLeTecla (opcao, c2);
    writeln;
    opcao := upcase (opcao);

    if not (opcao in ['S', 'D']) then
        begin
            mensagem ('TMDESIST', 1);   {'desistiu'}
            exit;
        end;

    mensagem ('TMTODULT', 0);    {'Todos ou último lido ? '}
    sintLeTecla (quem, c2);
    writeln;
    quem := upcase (quem);

    if not (quem in ['T', 'U']) then
        begin
            mensagem ('TMDESIST', 1);   {'desistiu'}
            exit;
        end;

    if (opcao = 'S') then
        begin
            if (quem = 'T') then marcaTodos
                            else marcaUltimoLido;
            mensagem ('TMSELEC', 1);    {'Selecionado'}
        end
    else
        begin
            if (quem = 'T') then desmarcaTodos
                            else desmarcaUltimoLido;
            mensagem ('TMNSELEC', 1);    {'Não selecionado'}
        end;
end;

end.
