Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание контекстного меню, Вопрос 
:(
    Опции темы
nero_schwarz
Дата 25.11.2004, 22:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Кто-нибудь выложите пример создания контекстного меню в Pascal! На первом курсе делал- уже не помню. Не хотелось бы снова Обьектно Ореентированное Программирование перерывать. По примеру легче! Или ссылку, если моно.
  Вверх
SPrograMMer
Дата 26.11.2004, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: нет
Всего: 6



А зачем ООП прерывать, пиши ОО контекстное меню.
Кстати в Pascal, если есть поддержка библиотеки Turbo Vision, то моно очень просто меню создать. Счас постораюсь ченить поконкретнее тебе отыскать....


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
nero_schwarz
Дата 27.11.2004, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



SPrograMMer, спасибо. Тurbo Visio мы вообще в политехе не проходили, но я уже пробовал работать с ним, так что если что найдешь я буду рад! И сам поищу что - нибудь.
PM MAIL   Вверх
nero_schwarz
Дата 27.11.2004, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



SPrograMMer, во нашел ссылку: http://www.citforum.ru/programming/tv_doc/tvdoc_01.shtml.
Но мне нужен простой пример- ОО контекстного меню. Если есть - выложи пожалуйста.
PM MAIL   Вверх
nero_schwarz
Дата 27.11.2004, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



Уже с самого начала проблемы!!!
Написал следующую прогу:
uses app, Menus, Objects, Drivers;
type
TMyApp=object(TApplication)
procedure InitStatusLine;
virtual;
end;
procedure TMyApp.InitStatusLine;
var
r: TRect;
begin
GetExtent®;
R.A.Y:=R.B.Y-1;
StatusLine := New(PStatusLine, Init(r,
NewStatusDef(0, $ffff,
NewStatusKey('~Alt-X~ Exit', kbAltX, cmQuit, {Oшибка!!!!}
NewStatusKey('~Alt-F3~ Close', kbAltF3, cmClose, {Ошибка!!!!}
nil)),
nil)
));
end;
var
MyApp: TmyApp;

begin
MyApp.Init;
MyApp.Run;
MyApp.Done;
end.
Все правильно, но выдается ошибка: неизвестная ...(unknown identifier) на константах cmQuit и cmClose. В чем проблема?

PM MAIL   Вверх
nero_schwarz
Дата 27.11.2004, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



Решил проблему написав вместо cmQuit - 1(работает!). Прошу помочь в поиске соответствий между стандартными константами и числами(нашел только: cmQuit=1, cmZoom=5).
PM MAIL   Вверх
Zero
Дата 27.11.2004, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Какая же она не известная, ты значит идентификаторы cmQuit и cmClose не указал, т.е. в разделе указания типов (или в др. месте) не выделил для них память.
PM MAIL ICQ   Вверх
nero_schwarz
Дата 27.11.2004, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



Zero, как это сделать скажи!

PM MAIL   Вверх
nero_schwarz
Дата 27.11.2004, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



этих индентификаторов у меня даже в хелпе нет! как и hcNoContext! есть только cmNew, cmOpen и несколько других, с числовыми соответствиями.
PM MAIL   Вверх
Zero
Дата 28.11.2004, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(nero_schwarz @ 27.11.2004, 23:39)
этих индентификаторов у меня даже в хелпе нет! как и hcNoContext! есть только cmNew, cmOpen и несколько других, с числовыми соответствиями
Конечно нет, в хелпе пишут только информацию о функциях, процедурах, типах (в частносте которые определяют идентификаторы) и т.д.
Цитата(nero_schwarz @ 27.11.2004, 23:21)
Zero, как это сделать скажи
Если ты имеешь ввиду как выделить память для идентификатора, то это делаестя либо в разделе констант
Код

Const
 cmQuit=<какое-нибудь значение любого типа (но который связан с тем что хочеш делать>;
...
Либо в разделе переменных
Код

Var
 <идентификатор>:<тип>;
...

Либо динамически во время выполнения программы, но если ты ещё незнаеш предыдущих двух способов, то этим я тебе даже голову забивать не буду.
PM MAIL ICQ   Вверх
nero_schwarz
Дата 28.11.2004, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



Цитата
cmQuit=<какое-нибудь значение любого типа (но который связан с тем что хочеш делать>;

да знаю я это! но ты можешь мне эти значения сказать? для cmQuit я нашел, оно =1. Я же не могу просто с неба эти значения брать!
PM MAIL   Вверх
Zero
Дата 28.11.2004, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



nero_schwarz, чем должны отличатся команды, Exit и Close??? Если это обе выход то зачем тебе 2 штуки? Если эти обе команды выхода, но хочеш сделать их на разные кнопки, то можеш сделать также
Код

Const
 cmQuit=1;
 cmClose=1;
...
Правда это всё тупо, ну и код у тебя тупой, и ещё написал ты его с ошибкой, т.е. чтобы получить координаты всего экрана, надо писать так
Код

GetExtent (R)
а ты там написал какуюто-закарючку... smile
Но если ты всётаки не понял про-что я те талкую, то вот тебе ещё одна ссылка, там вроде идёт базар про твой вопрос...
PM MAIL ICQ   Вверх
nero_schwarz
Дата 28.11.2004, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



Zero, ну ты дал! ты вообще понятие имеешь, про что говоришь? cmClose - команда закрытия активного окна, cmQuit - выход из программы. и написал я все нормально- просто при копировании текста лажа вышла!
Добавлено @ 17:29
Zero, насчет ссылки- я уже штук 20 сайтов на эту тему нашел, и похоже они все друг у друга слово в слово списывали. и ничего по существу. Ну не работает у меня прога, если я cmClose, cmQuit или hcNoContext пишу! Мне нужно числовое значение этих идентификаторов!
Некоторые описаны в Хелпе, для cmQuit и cmZoom я в инете нашел, ну и остальные должны же быть где-то!
PM MAIL   Вверх
nero_schwarz
Дата 28.11.2004, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



ну кто-нибудь, загляните в учебник Фаронова. там наверняка есть! в приложениях где-нибудь...

PM MAIL   Вверх
Zero
Дата 28.11.2004, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



У меня, есть его учебник, и он написан на тему "Delphi 6". Хотя может быть есть и с пакалем. Но помоему тебе надо лучше смотреть что написано на тех 20 сайтах которые ты нашёл, врядли они станут друг у друга всё переписывать если как ты говоришь у всех всё не правильно...
PM MAIL ICQ   Вверх
Guest
Дата 28.11.2004, 22:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Zero, да я не говорю, что у них не правильно! может и меня оболочка ТП 7.0 глюченная, но и в борланде та же фигня! У них нет того, что мне надо- соответствия между идентификаторами и числом! Если я пишу вместо cmQuit единицу, то все работает. И я думаю что в случае других идентификаторов так же будет работать. Но нет информации на этот счет!
  Вверх
nero_schwarz
Дата 28.11.2004, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



во нашел(хотя можно было и самому догадаться!) hcNoContext=0; но что же мне делать с другими идентификаторами? и почему у меня не работает все по-нормальному, как у всех...

Вот еще:
hcBenchmarks = 108;
hcConfig = 114;
hcConfigBench = 115;
hcConfigGlobal = 117;
hcConfigRPM = 116;
hcDisk = 104;
hcDiskSelect = 105;
hcDiskSelectList = 106;
hcDiskSelectManual = 107;
hcFile = 100;
hcFileDOSShell = 102;
hcFileExit = 103;
hcFileSave = 101;
hcGraphs = 109;
hcGraphsCache = 113;
hcGraphsRead = 110;
hcGraphsVerify = 112;
hcGraphsWrite = 111;
hcMainIndex = 7;
hcMsgBoxExit = 500;
hcMsgBoxMultitask = 501;
hcNoContext = 0;



Это сообщение отредактировал(а) nero_schwarz - 28.11.2004, 22:46
PM MAIL   Вверх
Zero
Дата 28.11.2004, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(Guest @ 28.11.2004, 22:18)
Но нет информации на этот счет!
У меня, тоже нет информации на тот счёт.
Цитата(nero_schwarz @ 28.11.2004, 22:43)
во нашел(хотя можно было и самому догадаться!) hcNoContext=0; но что же мне делать с другими идентификаторами? и почему у меня не работает все по-нормальному, как у всех...
И что интересно ты полезного нашёл, чему же ты приравнял cmClose ─ твою комманду закрытия активного окна? Я это спрашиваю потому что мне самому стало интересно, давно у меня уже небыло случая когда уменя возникают вопросы по паскалю. smile И ещё какие у тебя остались идентификаторы, и чё у тебя неработает?
PM MAIL ICQ   Вверх
nero_schwarz
Дата 29.11.2004, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.11.2004

Репутация: нет
Всего: нет



Всегда здал, что всё гениальное просто. Но хорошая мысля приходит опосля(что тоже верно).
Так вот зачем где-то искать, если у тебя всё под рукой:
Заходим в поиск файла, задаём найти текст: cmQuit в папке ТП и находим список файлов, один из которых tp\doc\views.int. Пожалуйста проблема решена:

const

{ TView State masks }

sfVisible = $0001;
sfCursorVis = $0002;
sfCursorIns = $0004;
sfShadow = $0008;
sfActive = $0010;
sfSelected = $0020;
sfFocused = $0040;
sfDragging = $0080;
sfDisabled = $0100;
sfModal = $0200;
sfDefault = $0400;
sfExposed = $0800;

{ TView Option masks }

ofSelectable = $0001;
ofTopSelect = $0002;
ofFirstClick = $0004;
ofFramed = $0008;
ofPreProcess = $0010;
ofPostProcess = $0020;
ofBuffered = $0040;
ofTileable = $0080;
ofCenterX = $0100;
ofCenterY = $0200;
ofCentered = $0300;
ofValidate = $0400;
ofVersion = $3000;
ofVersion10 = $0000;
ofVersion20 = $1000;

{ TView GrowMode masks }

gfGrowLoX = $01;
gfGrowLoY = $02;
gfGrowHiX = $04;
gfGrowHiY = $08;
gfGrowAll = $0F;
gfGrowRel = $10;

{ TView DragMode masks }

dmDragMove = $01;
dmDragGrow = $02;
dmLimitLoX = $10;
dmLimitLoY = $20;
dmLimitHiX = $40;
dmLimitHiY = $80;
dmLimitAll = $F0;

{ TView Help context codes }

hcNoContext = 0;
hcDragging = 1;

{ TScrollBar part codes }

sbLeftArrow = 0;
sbRightArrow = 1;
sbPageLeft = 2;
sbPageRight = 3;
sbUpArrow = 4;
sbDownArrow = 5;
sbPageUp = 6;
sbPageDown = 7;
sbIndicator = 8;

{ TScrollBar options for TWindow.StandardScrollBar }

sbHorizontal = $0000;
sbVertical = $0001;
sbHandleKeyboard = $0002;

{ TWindow Flags masks }

wfMove = $01;
wfGrow = $02;
wfClose = $04;
wfZoom = $08;

{ TWindow number constants }

wnNoNumber = 0;

{ TWindow palette entries }

wpBlueWindow = 0;
wpCyanWindow = 1;
wpGrayWindow = 2;

{ Standard command codes }

cmValid = 0;
cmQuit = 1;
cmError = 2;
cmMenu = 3;
cmClose = 4;
cmZoom = 5;
cmResize = 6;
cmNext = 7;
cmPrev = 8;
cmHelp = 9;

{ Application command codes }

cmCut = 20;
cmCopy = 21;
cmPaste = 22;
cmUndo = 23;
cmClear = 24;
cmTile = 25;
cmCascade = 26;

{ TDialog standard commands }

cmOK = 10;
cmCancel = 11;
cmYes = 12;
cmNo = 13;
cmDefault = 14;

{ Standard messages }

cmReceivedFocus = 50;
cmReleasedFocus = 51;
cmCommandSetChanged = 52;

{ TScrollBar messages }

cmScrollBarChanged = 53;
cmScrollBarClicked = 54;

{ TWindow select messages }

cmSelectWindowNum = 55;

{ TListViewer messages }

cmListItemSelected = 56;
Спасибо всем кто мне помогал в моём поиске!
Осталось разобраться с использованием драйвера для LPT в ТП. Думаю на этот раз мне не удастся так легко отделаться...

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0785 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.