Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.011 c
2-1166550579
Vladimir1984
2006-12-19 20:49
2007.01.07
Изменение прорисовки OpenGL c помощью Radiobutton или др инстр..


15-1166101735
Ученик чародея
2006-12-14 16:08
2007.01.07
Был сегодня на предзащите докторской ф-м.н.


15-1162982792
Lamer@fools.ua
2006-11-08 13:46
2007.01.07
[Вакансия] Киев, до $1000, Junior .NET Developer (C#)


15-1166159323
KSergey
2006-12-15 08:08
2007.01.07
Сегодня ознакомился с новой религией


1-1163607106
atruhin
2006-11-15 19:11
2007.01.07
Печать на матричном принтере на рулоне





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский