Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Object Pascal: кроссплатформенные технологии > Turbo Vision |
Автор: WolfON 16.6.2005, 17:30 |
Есть такой немалоизвестный компонент для Turbo Pascal, называется Turbo Vision. Так вот, менюхи он хранит в файле .MNU, кто знает как гео редактировать вручную или программно? |
Автор: Akina 16.6.2005, 18:06 |
Там есть тулза для визуального их создания и редактирования. Но можно и руками. |
Автор: WolfON 16.6.2005, 18:26 |
Это хорошо, что она есть, но нельзя было-бы на нее ссылку дать? И если руками, то как? |
Автор: TP@MB@Y 17.6.2005, 19:49 | ||
WolfON руками руками ![]() Поищи хелп. Вот например как создается нижний меню-бар:
|
Автор: WolfON 18.6.2005, 15:27 |
TP@MB@Y Как создается - я знаю. Но в .mnu файле такая белиберда, точнее я там могу поменять простейшие параметры, вроде адреса процедуры, кол-ва симаволов в назавнии или само название, но что-нибудь удалить не получается. |
Автор: Гость_Van 13.8.2005, 08:03 |
Помогите пожалуйста с программой. Она зависает при запуски, и воводит сообщ: прогр. виполнила недопустимую операцию... Место ошибки 0D70:0010 Прерывания : Нет program ViewText; uses App, Objects, Drivers, Menus, Views; var lines:PCollection; type TMyApp = object(TApplication) procedure Run;Virtual; end; type PInterior = ^TInterior; TInterior = object(TScroller) constructor Init(var R:TRect; SX, SY:PScrollBar); procedure Draw;Virtual; end; procedure TMyApp.Run; var R:Trect; W:Pwindow; s, name:string; f:text; begin name := copy(ParamStr(0),1,pos('.',paramStr(0)))+'PAS'; Lines := new(PCollection, Init(10, 5)); assign(f, name); {$I-} reset(f); {$I+} if ioResult = 0 then begin with lines^ do while not EOF(f) do begin readln(f, s); Insert(newStr(s)) end; close(f) end else Lines^.Insert(newStr('?Ґв ¤®бвгЇ Є д ©«г '+name)); DeskTop^.GetExtent®; w := new(PWindow,Init(R,'?а®б¬®ва д ©« '+Name, 0)); with W^ do begin GetClipRect®; R.Grow(-1, -1); Insert(new(PInterior, Init(R, standardScrollBar(sbHorizontal+ sbHandleKeyBoard), StandardScrollBar(sbVertical + sbHandleKeyBoard)))); end; DeskTop^.Insert(W); inherited Run; end; constructor TInterior.Init; begin inherited init(R, SX, SY); growMode := gfGrowHiX + gfGrowHiY; setLimit(128, Lines^.count-1); end; procedure TInterior.Draw; var Y:integer; B:TDrawBuffer; S:string; begin for Y := 0 to pred(size.Y) do begin MoveChar(B, ' ',GetColor(1), size.X); if (Y + Delta.Y < lines^.Count) and (lines^.At(Y+Delta.Y) = nil) then begin s := PString(lines^.At(Y+Delta.Y))^; MoveStr(B,copy(s, Delta.X+1, length(s)-Delta.X), getColor(1)); end; writeLine(0, Y, size.X, 1, B); end; end; var p:TMyApp; begin p.run; p.init; p.done; end. |
Автор: volvo877 13.8.2005, 12:58 | ||
Гость_Van Может все-таки, сначала инициализировать, а потом-запускать?
|
Автор: Гость_Van 13.8.2005, 13:35 |
спасибо!!! за ответ, большое!! |
Автор: Fedor 14.8.2005, 10:50 |
Модератор: Один топик - один вопрос. Тема закрыта |