Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2007, 10:43   #1
DarK_NighT
 
Аватар для DarK_NighT
 
Регистрация: 26.08.2007
Сообщений: 5
По умолчанию помогите пожалуйста

помогите пожалуйста, где может быть у меня ошибка не получается компилировать.
delphi выдает такую ошибку:

[Error] Unit1.pas(16): Statements not allowed in interface part
[Error] Unit1.pas(21): Statements not allowed in interface part
[Error] Unit1.pas(22): Undeclared identifier: 'result'
[Error] Unit1.pas(22): Undeclared identifier: 'hwn'
[Error] Unit1.pas(22): Undeclared identifier: 'lpr'
[Error] Unit1.pas(23): Incompatible types
[Error] Unit1.pas(26): Incompatible types
[Error] Unit1.pas(27): Undeclared identifier: 'VK'
[Error] Unit1.pas(40): ':=' expected but ':' found
[Error] Unit1.pas(47): Illegal character in input file: '"' ($22)
[Error] Unit1.pas(47): Incompatible types: 'Cardinal' and 'Pointer'
[Error] Unit1.pas(55): Undeclared identifier: 'GetMassege'
[Error] Unit1.pas(60): Record, object or class type required
[Error] Unit1.pas(62): 'END' expected but end of file found
[Error] Unit1.pas(15): Unsatisfied forward or external declaration: 'DoExit'
[Error] Unit1.pas(20): Unsatisfied forward or external declaration: 'WindowProc'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

я не понял в чем дело то есть не понял где у меня ошибка.

unit Unit1;

interface

uses
Windows, Messages, SysUtils;

{F$R *.RES}
var
instance: HWnd;
windowclass: TWndClass;
handle: HWnd;
msg: Tmsg;
// процедура выхода из программы
procedure DoExit;
begin
halt;
end;
// функция обработки событий windows
function WindowProc (Hwn,msg,wpr,lpr: longint): longint; stdcall;
begin
result:=defwindowproc(hwn,msg,wpr,l pr);
if msg=wm_destroy then
DoExit;

if msg=wm_keyDown then
if wpr=VK ESCAPE then
poExit;
end;

//отсюда начинается выполнение программы
begin
// получаем описатель модуля
instance :=GetModuleHandle(nil);
//заполняем структуру WindowClass
WindowClass.style:=CS_Hredraw or CS_VRedraw;
windowClass.Lpfnwndproc:=@windowPro c;
windowClass.Hinstance:=Instance;
windowClass.HbrBackground:=color_bt nface;
windowClass.LpszClassName:'DX';
windowClass.Hcursor:=LoadCursor(0,I DC_ARROW);

//Регистрируем новый класс
RegisterClass (WindowClass);

//Создаем окно
Handle:=CreatewindowEx (0,'DX',",WS_POPUP,1,1, 200, 200,0,0,Instance,nil);

ShowWindow(Handle,SW_SHOW);
UpdateWindow (Handle);

// здесь можно производить инициализацию

//Цикл обработки сообщений
while (GetMassege(msg,0,0,0)) do
begin
translatemessage (msg);
dispatchmessage (msg);
end;
end.
DarK_NighT вне форума Ответить с цитированием
Старый 26.09.2007, 10:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Для начала нужно понять что ты хош написать, потому как этот код ни консольный ни форменный, в любом случае обьясни задачу

В любом случае interface здесь лишний
I'm learning to live...

Последний раз редактировалось Stilet; 26.09.2007 в 10:56. Причина: Поправочка
Stilet вне форума Ответить с цитированием
Старый 26.09.2007, 11:06   #3
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

А где объявления переменных 'hwn' 'lpr' 'VK' ?
Noor вне форума Ответить с цитированием
Старый 26.09.2007, 13:10   #4
strannik
python developer
Пользователь Подтвердите свой е-майл
 
Аватар для strannik
 
Регистрация: 30.11.2006
Сообщений: 81
Сообщение

Во первых — пиши этот код в файл проекта ( .dpr)
Во вторых — убери
unit Unit1;
и
interface
сам код должен быть например таким:
Код:
uses
Windows, Messages, SysUtils;

{$R *.RES}
var
instance: HWnd;
windowclass: TWndClass;
handle: HWnd;
msg: Tmsg;


 // процедура выхода из программы
procedure DoExit;
begin
halt;
end;


 // функция обработки событий windows
function WindowProc (Hwn,msg,wpr,lpr: longint);
begin
if msg=wm_destroy then
doExit;
 if msg=wm_KeyDown then
  if wpr=VK_ESCAPE then
  doExit;
end;

//отсюда начинается выполнение программы
begin
// получаем описатель модуля
instance :=GetModuleHandle(nil);


 //заполняем структуру WindowClass
WindowClass.style:=CS_Hredraw or CS_VRedraw;
windowClass.Lpfnwndproc:=@windowProc;
windowClass.Hinstance:=Instance;
windowClass.HbrBackground:=color_btnface;
windowClass.LpszClassName:'DX';
windowClass.Hcursor:=LoadCursor(0,IDC_ARROW);

//Регистрируем новый класс
RegisterClass (WindowClass);

//Создаем окно
Handle:=CreateWindowEx (0,'DX',",WS_POPUP,1,1, 200, 200,0,0,Instance,nil);

ShowWindow(Handle,SW_SHOW);
UpdateWindow (Handle);

// здесь можно производить инициализацию

//Цикл обработки сообщений
while (GetMassege(msg,0,0,0)) do
begin
translatemessage (msg);
dispatchmessage (msg);
end;
end.
Границы расширяет тот, кто выходит за них.
strannik вне форума Ответить с цитированием
Старый 26.09.2007, 13:36   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А так меньше кода (вроде) :

program minwnd;
uses
Windows,
Messages;

const WND_CLASS_NAME = 'MinWND';
var
wndclass: TWndClass;
msg: TMsg;
function WndProc(hWnd,msg,wParam,lParam: Cardinal): LongInt; stdcall;
begin
Result := 0;
case msg of
WM_DESTROY: PostQuitMessage(0);
else Result := DefWindowProc(hWnd,msg,wParam,lPara m);
end;
end;
begin
with wndclass do begin
hInstance := hInstance;
lpszClassName := WND_CLASS_NAME;
lpfnWndProc := @WndProc;
end;
RegisterClass(wndclass);
CreateWindow(WND_CLASS_NAME,WND_CLA SS_NAME,WS_SYSMENU or WS_VISIBLE,
10,10,100,100,0,0,HInstance,nil);
while GetMessage (msg, 0, 0, 0) do DispatchMessage (msg);
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.09.2007, 13:41   #6
DarK_NighT
 
Аватар для DarK_NighT
 
Регистрация: 26.08.2007
Сообщений: 5
По умолчанию

нет почему то ругается USES
DarK_NighT вне форума Ответить с цитированием
Старый 26.09.2007, 13:48   #7
DarK_NighT
 
Аватар для DarK_NighT
 
Регистрация: 26.08.2007
Сообщений: 5
Смех спасибо

не получилась короче у меня попробую другое написать хотя на первый раз не чего, уже что то у меня получается писать проги спасибо всем
DarK_NighT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста!!! Esenin Помощь студентам 1 21.06.2008 01:45
Помогите пожалуйста Niki Помощь студентам 4 07.06.2008 08:30
помогите пожалуйста pelsh Помощь студентам 2 21.12.2007 00:26