[Back to MENU SWAG index] [Back to Main SWAG index] [Original]

    {
     TL>   Could someone please give me a good routine or sample for a
     TL> scrolling lightbar menu. Mine always trun out ka-putz.
    }

    Procedure TestMenu;
    VAR choices : ARRAY[1..6] of STRING[15];
        current : BYTE;
        c       : CHAR;
        done    : BOOLEAN;

    BEGIN
    done:=FALSE;
    clrscr;
    choices[1]:='Menu Option #1';
    choices[2]:='Menu Option #2';
    choices[3]:='Menu Option #3';
    choices[4]:='Menu Option #4';
    choices[5]:='Menu Option #5';
    choices[6]:='Menu Option #6';
    textcolor(7);
    textbackground(0);
    for current:=1 to 6 do begin
            gotoxy(2,current+1);
            write(choices[current]);
    end;
    current:=1;
    repeat
    { highlight current option }
    gotoxy(2,current+1);
    textcolor(15);
    textbackground(1);
    write(choices[current]);
    { process input }
    while not(keypressed) do begin end;
    c:=readkey;
    case c of
            #0:begin
                    c:=readkey;
                    case c of
                            #72:begin
                                    gotoxy(2,current+1);
                                    textcolor(7);
                                    textbackground(0);
                                    write(choices[current]);
                                    dec(current);
                                    if (current=0) then current:=6;
                                end;
                            #80:begin
                                    gotoxy(2,current+1);
                                    textcolor(7);
                                    textbackground(0);
                                    write(choices[current]);
                                    inc(current);
                                    if (current=7) then current:=1;
                                end;
                    end;
               end;
           #13:begin
                    case current of
                            { process actions based on the current option # }
                            1:begin
                              end;
                            2:begin
                              end;
                            { etc. }
                    end;
               end;
           #27:begin
                    done:=TRUE;
               end;
    end;
    until (done);
    end;

[Back to MENU SWAG index] [Back to Main SWAG index] [Original]