|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите плз первокурснику с прогой!
В универе задали наклепать небольшую прогу, которая рисует 2 опред контура напосредственно на форме и считает центр тяжести всех точек контуров и площадь внешнего минус площадь внутреннего (в см^2, т.е. используется масштаб, но это не суть важно). Программу я написал, синтаксических ошибок (Делфи 6) не выводит, рисует нормально,но при нажатии на кнопку посчитать выводит Invalid floating point operation. Причем когда прохожу по Ф8 (пошагово), то почему-то в начале procedure TMainForm.Button2Click рядом с 4мя строчками кода не появляются синие точки и Watcher подтверждает, что эти операции присвоения не выполняются. Скажите плз, в чем может быть причина.
И расскажите еще плз, как сделать обработчик нажатия клавиши на клаве? т.е. Object inspector-mainform-events-onkeydown это понятно, а дальше? где взять таблицу кодов клавиш (в частности, стрелок) и какой оператор этот код возвращает? Спасибо. Последний раз редактировалось Radagast, 25.02.2006 в 19:55. |
#2
|
||||
|
||||
насчёт кодов клавиш глянь в файле windows.pas то, что под строкой { Virtual Keys, Standard Set }
|
#3
|
|||
|
|||
Может поможет.
vk_LButton = $01; vk_RButton = $02; vk_Cancel = $03; vk_MButton = $04; { генерятся только системой вместе с L & RBUTTON } vk_Back = $08; vk_Tab = $09; vk_Clear = $0C; vk_Return = $0D; vk_Shift = $10; vk_Control = $11; vk_Menu = $12; vk_Pause = $13; vk_Capital = $14; vk_Escape = $1B; vk_Space = $20; vk_Prior = $21; vk_Next = $22; vk_End = $23; vk_Home = $24; vk_Left = $25; vk_Up = $26; vk_Right = $27; vk_Down = $28; vk_Select = $29; vk_Print = $2A; vk_Execute = $2B; vk_SnapShot = $2C; { vk_Copy = $2C не используется клавиатурой } vk_Insert = $2D; vk_Delete = $2E; vk_Help = $2F; { vk_A - vk_Z такие же, как и их ASCII-эквиваленты: 'A' - 'Z' } { vk_0 - vk_9 такие же, как и их ASCII-эквиваленты: '0' - '9' } vk_NumPad0 = $60; vk_NumPad1 = $61; vk_NumPad2 = $62; vk_NumPad3 = $63; vk_NumPad4 = $64; vk_NumPad5 = $65; vk_NumPad6 = $66; vk_NumPad7 = $67; vk_NumPad8 = $68; vk_NumPad9 = $69; vk_Multiply = $6A; vk_Add = $6B; vk_Separator = $6C; vk_Subtract = $6D; vk_Decimal = $6E; vk_Divide = $6F; vk_F1 = $70; vk_F2 = $71; vk_F3 = $72; vk_F4 = $73; vk_F5 = $74; vk_F6 = $75; vk_F7 = $76; vk_F8 = $77; vk_F9 = $78; vk_F10 = $79; vk_F11 = $7A; vk_F12 = $7B; vk_F13 = $7C; vk_F14 = $7D; vk_F15 = $7E; vk_F16 = $7F; vk_F17 = $80; vk_F18 = $81; vk_F19 = $82; vk_F20 = $83; vk_F21 = $84; vk_F22 = $85; vk_F23 = $86; vk_F24 = $87; vk_NumLock = $90; vk_Scroll = $91; { Данные коды взяты из файлов помощи Ллойда (Lloyd) } |
#4
|
||||
|
||||
Все правильно
Цитата:
Код:
cpx:=0; cpy:=0; for i:=1 to 7 do begin cpx:=cpx+arx[i]; cpy:=cpy+ary[i]; end; Код:
cpx:=round(cx/7); cpy:=round(cy/7); по поводу вот этого: Цитата:
Код:
cx:=cpx/scale; cy:=cpy/scale; Ну там еще много багов, но думаю ты найдешь их сам Учись, студент |