Помощь - Поиск - Пользователи - Календарь
Полная версия: Formating in Turbo Vision
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
FX
Помогите пожалуйста с одной маленькой (для меня) проблемой...
Мне нужно вывести записи на эран, где элементы "god" и "cena" должны выводится не с левого края а с правого своей области.
Элементы все string.
Знаю как в числовых элементах делается:
god,'':(11-length(god))
а с символьными не могу разобратся...


cena:string[8];
god:string[11];


Procedure TInterior.ReadFile;
    var k:integer;
        s,shapka:String;
        data:autopark;
        t:text;
begin
    PS:=New(PStringCollection,Init(100,10));
    seek(f,0);
    shapka:='       Название     |     Марка     |   Год   |  Кузов  |   цвет   |  цена   ';
    PS^.insert(NewStr(shapka));
    while not (EOF(f) or LowMemory) do
    begin
         read(f,data);
         with data do
         begin
              s:=nazvanie;
              while Length(s)<Lnazvanie do s:=s+' ';
              s:=s+marka;
              while Length(s)<Lnazvanie+Lmarka do s:=s+' ';
              s:=s+god;
              while Length(s)<Lnazvanie+Lmarka+Lgod do s:=s+' ';
              s:=s+kuzov;
              while Length(s)<Lnazvanie+Lmarka+Lgod+Lkuzov do s:=s+' ';
              s:=s+cvet;
              while Length(s)<Lnazvanie+Lmarka+Lgod+Lkuzov+Lcvet do s:=s+' ';
              s:=s+cena;
         end;
    if s<>' ' then PS^.Insert(NewStr(S));
    end;
    Location:=0;
end;

Ozzя
GotoXY(80-Length(stroka),y);
FX
Ага...и куда его прописывать прикажите? Пробывал, но ниче не передвигает!
volvo
Цитата
Ага...и куда его прописывать прикажите?
А ты что, показал где-то как ты вообще выводишь что-то на экран? Или ты хочешь форматировать строку в памяти?
FX
Выводится она у меня так:
Название | Марка | Год | Кузов | Цвет | Цена
Опель Омега 1995 Седан Белый 8000

А нужно чтоб было так:
Название | Марка | Год | Кузов | Цвет | Цена
Опель Омега 1995 Седан Белый 8000
Гость
Ой, плохо получилось...
Гость
Ой, плохо получилось...
FX
Выводится она у меня так:
Название..|..Марка..|....Год....|..Кузов..|..Цвет...|..Цена
Опель........Омега.....1995........Седан.....Белый...8000

А нужно чтоб было так:
Название | Марка | Год | Кузов | Цвет | Цена
Опель........Омега............1995.Седан.....Белый......8000
FX
Да что такое! wacko.gif


Выводится она у меня так:
Название..|..Марка..|....Год....|..Кузов..|..Цвет...|..Цена
Опель........Омега.....1995........Седан.....Белый...8000

А нужно чтоб было так:
Название..|..Марка..|....Год....|..Кузов..|..Цвет...|..Цена
Опель........Омега............1995.Седан.....Белый......8000
Ozzя
Нет, тебя спрашивают КАК ты выводишь на экран данные - средствами ТВ или просто write(ln).
FX
Средствами ТВ!
Ozzя

var
  R  : TRect;
  Stroka: String;
...
R.Assign(1,1,79-Length(stroka),1);
Insert(New(PStaticText,Init(R,Stroka)));
...

FX

Извиняюсь за назойливость но я в ТВ не очень шарю, не могли б мне тыкнуть пальцем где это вообще прописывать! Прописал в процедуре (см. выше) - выдает ошибку...
Ozzя
У меня здесь все вставляется в диалог, например:
PTestWin =^TTestWin;
  TTestWin = object (TDialog)
    Procedure HandleEvent(var Event: TEvent); Virtual;
    Procedure Draw; Virtual;
  end;

var
d:TestWin;
Далее идет вышеозначенный код
и затем
q:=DeskTop^.ExecView(d);

Но рекомендую почитать книжку по ТВ.

Гость
OK! Спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.