![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() день добрый. не могу понять причину ошибок, которые выдает компилятор в данном исходнике
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; Button1: TButton; Label1: TLabel; function AltKeyDown : Boolean; function ShiftKeyDown : boolean; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function AltKeyDown : boolean; begin Result:=(Word(GetKeyState(VK_MENU)) and $8000)<>0; end; function ShiftKeyDown : boolean; begin Result:=(Word(GetKeyState(VK_SHIFT)) and $8000)<>0; end; procedure TForm1.Button1Click(Sender: TObject); begin if AltKeyDown and ShiftKeyDown then begin Label1.Caption:='gogogo'; end; end; end. как видите, программа должна при нажатии определенных клавиш просто вывести сообщение на лейбл. но имею ошибку "unsatisfied forward or external declaration 'TForm1.AltKeyDown' тот же трабл с TForm1.ShiftKeyDown . насколько понял, я неверно объявил функции? извините за пустяковую тему, но ответ реально ускорит процесс обучения делфи. заранее спс. Последний раз редактировалось Admin, 02.03.2012 в 15:40. |
#2
|
||||
|
||||
![]() Если обьявил метод в классе, то и реализация должна быть там же:
Код:
function TForm1.AltKeyDown : boolean; begin Result:=(Word(GetKeyState(VK_MENU)) and $8000)<>0; end; и тд. |
#3
|
|||
|
|||
![]() большое спасибо. все стало ясно.)) и все же... компилятор создает проект,но при нажатии на кнопку - никакого результата.
|
#4
|
||||
|
||||
![]() Потому что должна быть реакция на событие, недостаточно просто написать "авось я нажму на такую-то клавишу"
![]() |
#5
|
|||
|
|||
![]() сорри. все нормально работает. спасибо!
|