Форум: "WinAPI";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
ВнизМинимальное оконное приложение на Delphi 1.0 с использованием Win Найти похожие ветки
← →
Так себе (2006-08-23 00:23) [0]Как создать мин. приложение в первой версии Дельфи минуя при этом директиву stdcall?
← →
Германн © (2006-08-23 01:33) [1]ПППеревведи. (ц)
А при чём тут собсс-но stdcall?
← →
Так себе (2006-08-23 22:24) [2]Например,
program Small;
uses
Windows, Messages, Sysutils;
{$R *.res}
var
Instance: HWnd;
WindowClass: TWndClass;
Handle: HWnd;
Msg: TMsg;
//
procedure DoExit;
begin
Halt;
end;
//
function WindowProc(Hwn,msg,wpr,lpr: Longint): Longint; stdcall;
begin
Result := DefWindowProc(hwn,msg,wpr,lpr);
if msg = wm_destroy then
DoExit;
if msg = wm_KeyDown then
if wpr = VK_ESCAPE then
DoExit;
end;
begin
//
instance := GetModuleHandle(nil);
//
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 (GetMessage(msg,0,0,0)) do
begin
translatemessage(msg);
dispatchmessage(msg);
end;
end.
Это стандартный пример написанный на более поздней версии Делфи.
В первой версии нет директивы stdcall, а без нее приложение не работает.
← →
Чапаев © (2006-08-23 23:14) [3]> В первой версии нет директивы stdcall, а без нее приложение
> не работает.
Дети, дети... Вместо stdcall напиши export.
← →
Германн © (2006-08-24 01:53) [4]
> Это стандартный пример написанный на более поздней версии
> Делфи.
> В первой версии нет директивы stdcall, а без нее приложение
> не работает.
А где ты нашел сей пример, позволь тебя спросить? И для чего? И что ты хочешь сделать?
← →
guav © (2006-08-24 02:20) [5][3] Чапаев © (23.08.06 23:14)
> Вместо stdcall напиши export.
И всё равно работать не будет. Пусть лучше на вопросы в [4] ответит.
← →
Чапаев © (2006-08-24 08:28) [6]> И всё равно работать не будет.
Нуууу, может и не будет -- из-за других ошибок по тексту. Но вообще в древних версиях Делфи и в Паскале для Виндовс функции обратного вызова специфицировались именно как export.
← →
DrPass © (2006-08-24 12:25) [7]Не будет - как минимум, из-за
> function WindowProc(Hwn,msg,wpr,lpr: Longint): Longint;
> stdcall;
wParam в Win16 имел двухбайтовый целый тип.
← →
Чапаев © (2006-08-24 12:41) [8]Кстати, да. WParam=Word в данном случае.
← →
Так себе (2006-08-24 23:07) [9]Родитель (Чапаев) кинь пример и все на этом! (От начало и до конца)
← →
Германн © (2006-08-25 01:37) [10]
> Так себе (24.08.06 23:07) [9]
>
> Родитель (Чапаев) кинь пример и все на этом! (От начало
> и до конца)
> Чапаев © (24.08.06 08:28) [6]
>
> > И всё равно работать не будет.
>
> Нуууу, может и не будет -- из-за других ошибок по тексту.
> Но вообще в древних версиях Делфи и в Паскале для Виндовс
> функции обратного вызова специфицировались именно как export.
>
>
> Чапаев © (24.08.06 12:41) [8]
>
> Кстати, да. WParam=Word в данном случае.
Кинь ему Дмитрий Иванович! Пусть успокоится! (С миром) :-)
Ему же "так себе" "всё по-фигу"! Лишь бы пример был. А потом он придумает себе другой дурацкий ник и будет спрашивать "другое не знаю что".
← →
Германн © (2006-08-25 01:39) [11]Блин!
> Кинь ему Дмитрий Иванович!
Какой чёрт меня дёрнул за руку? Конечно же Василий Иванович! :-)
← →
guav © (2006-08-25 01:54) [12]Message вроде тоже Word. И вообще тем у кого сей раритет не установлен написать рабочий win16 код создания окна и цикла выборки сообщений будет затруднительно - из-за давности ухода этого всего.
Тут проще запустить Delphi (без параметров) и использовать созданный автоматом код - это будет почти такое же пустое окно.
← →
Чапаев © (2006-08-25 08:25) [13]> Дмитрий Иванович
В миру -- Дмитрий Николаевич. ;-)
Перепечатываю (творчески) пример из А Фёдоров, Д. Рогаткин "Borland Pascal в среде Windows".
program HelloWin;
uses Windows, Messages;
const AppName="WinMin";
function WindowProc(Wnd:HWND; Msg, WParam:Word; LParam:LongInt):LongInt;export;
begin
WindowProc:=0;
case Msg of
WM_DESTROY:
begin
PostQuitMessage(0);
Exit;
end;
end;
WindowProc:=DefWindowProc(Wnd, Msg, WParam, LParam);
end;
var
Window:HWND;
Msg:TMsg;
WinClass:TWndClass;
begin
if HPrevInst=0 then begin
FillChar(WinClass,SizeOf(WinClass),0);
WinClass.HInstance:=HInstance;
with WinClass do begin
Style:=CS_HREDRAW or CS_VREDRAW;
lpfnWndProc:=@WindowProc;
hIcon:=LoadIcon(0, IDI_APPLICATION);
hCursor:=LoadCursor(0, IDC_ARROW);
hbrBackground:=GetStockObject(WHITE_BRUSH);
lpszClassName:=AppName;
end;
if not RegisterClass(WinClass) then
Halt(255);
end;
Window:=CreateWindow(AppName,
"Hello",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
0,
0,
HInstance,
nil);
ShowWindow(Window, SW_SHOW);
UpdateWindow(Window);
while GetMessage(Msg,0,0,0) do begin
TranslateMessage(Msg);
DispatchMesage(Msg);
end;
Halt(Msg.WParam);
end.
← →
Other unknow what &COPY (2006-08-25 23:19) [14]Спасибо за пример! Когда была написана книга авторов А Фёдоров, Д. Рогаткин "Borland Pascal в среде Windows"?
← →
Чапаев © (2006-08-25 23:40) [15]Ноябрь 1992...
← →
Германн © (2006-08-26 01:10) [16]
> Перепечатываю (творчески) пример из А Фёдоров, Д. Рогаткин
> "Borland Pascal в среде Windows".
>
Помню ту книгу.Кто-то, когда-то её у меня заиграл. Свою первую программку для Винды на BPW писал с её помощью. Сейчас помню только, что обложка была в бело-синих тонах. :-(
← →
Чапаев © (2006-08-26 08:36) [17]> Кто-то, когда-то её у меня заиграл.
Не я! ;-)
← →
Чапаев © (2006-08-26 08:37) [18]> обложка была в бело-синих тонах
В жёлто-синих, я бы сказал. Хотя и белого немало.
ЗЫ. Первое сообщение отправлено по ошибки, не сочтите за флуд...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.009 c