Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Вниз

поделитесь примером формы на чистом API, для D5-D7?   Найти похожие ветки 

 
Yuraz   (2003-08-29 15:06) [0]

Или желательней программой Hello Word!
Заранее спасибо


 
clickmaker   (2003-08-29 15:11) [1]

program Hello;
{$APPTYPE CONSOLE}
uses SysUtils;

begin
// Insert user code here
writeln("Hello, world!");
end.


:)


 
HolACost!   (2003-08-29 16:48) [2]

ЭЭЭЭЭ! А он не отличается особой умственной работой от любого другого языка!


 
nikkie   (2003-08-29 16:53) [3]

>clickmaker
эээ... да это ж разве WinAPI? вот как надо:

program Project1;

{$APPTYPE CONSOLE}

uses
Windows;

var
s: String;
BytesWritten: Cardinal;
begin
s := "Hello, World!";
WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), PChar(s), Length(s), BytesWritten, nil);
end.


 
Glajik   (2003-08-29 18:27) [4]

To All!
Читайте внимательней прозьбу человека:
Поделитесь примером формы на чистом API, для D5-D7

Искал сам не так давно, и во что нашёл:


Как создать минимальное окно на WinAPI?

Данный пример был взят с сайта "Win32API в Delphi" и на 28.01.2002 располагался по адресу http://www.ict.nsc.ru/~cancel/delphi/index.html.



program winmin;

uses
windows, messages;
{!Модули windows и messages самые необходимые — они обязательно должны быть
объявлены в начале каждой Вашей программы!}
var
wc : TWndClassEx; //Переменная шаблона класса окна

MainWnd : HWND; //Описатель главного окна
Mesg : TMsg; //Переменная для цикла сбора сообщений
{ Далее следует оконная процедура главного окна. Обратите внимание на служебное
слово stdcall оно вынуждает компиллятор генерировать особый вид кода, который
может быть вызван любой windows-программой, без этого служебного слова
программа не сможет работать вообще!}

function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam; Lparam:Lparam):Lresult;

stdcall;
Begin
{Далее происходит цикл обработки сообщений}
case msg of
wm_destroy : //Сообщение посылаемое при уничтожении окна
Begin
postquitmessage(0); exit;
Result:=0;
End
else Result:=DefWindowProc(wnd,msg,wparam,lparam);
end;
End;

{Переменные xPos,yPos,nWidth,nHeight в принципе не нужны, однако я их завел
(и вам рекомендую) для лучшей читабельности программы}

var
xPos,yPos,nWidth,nHeight : Integer;
begin //Тело программы
{ Далее идет заполнение шаблона класса окна}

wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw or cs_vredraw;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0,idi_application);
wc.hCursor:=LoadCursor(0,idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:="WinMin : Main";

RegisterClassEx(wc); //Регистрация нового класса в системе

{"c7аполнение переменных xPos,yPos,nWidth,nHeight}

xPos:=100;
yPos:=150;
nWidth:=400;
nHeight:=250;

{ Создание главного окна}
MainWnd:=CreateWindowEx (
0, //флаги расширенных стилей
"WinMin : Main", //имя класса окна, данное при заполнении структуры wc
"Win Min", //за"e0головок окна
ws_overlappedwindow, //флаги стилей окна

{подробнее о стилях см. после текста программы}
xPos, //горизонтальная позиция окна
yPos, //вертикальная позиция окна
nWidth, //ширина окна
nHeight, //высота окна
0, //описатель родительского окна (parent) или окна-владельца (owner)
0, //описатель меню окна (меню нет, нет и описателя)
Hinstance, //описатель приложения

nil //address of window-creation data
);
ShowWindow(MainWnd,CmdShow); //Отображаем окно

//Цикл обработки сообщений
//он может слегка видоизменяться, но эти строчки присутсвуют всегда
While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;
end.


Комментарий: Осталось только уточнить ряд деталей. Во-первых, ВСЕ присутствующее в данной программе (кроме комментариев, разумеется) ОБЯЗАТЕЛЬНО. Укоротить принципиально невозможно, можно, конечно, убрать некоторые переменные, но это сути дела не меняет. Во-вторых, в оконной процедуре могут присутствовать и другие строчки, принимающие сообщения. В-третьих, вызов в оконной процедуре функции DefWindowProc жизненно необходим. DefWindowProc - это оконная процедура по умолчанию, она обеспечивает окну возможность "вести" себя как окну, т.е. перетаскиваться мышкой, сворачиваться, разворачиваться и т.д.

Просто создай консольный проэкт, всё сотри и вставь этот код. Вот и всё - я проверял работает.


 
Polevi   (2003-08-29 18:40) [5]

просто вставь код.. и все.. а лучше засунь, мля



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
14-8638
Viks
2003-10-13 19:42
2003.11.03
Palm OS


1-8533
Igit
2003-10-23 13:24
2003.11.03
case ... of


3-8279
Art
2003-10-13 23:55
2003.11.03
Ошибка при переносе проги на другой ПК (InterBase)


6-8558
Kremen
2003-09-08 17:13
2003.11.03
Как узнать ip-адрес компьютера своего?


1-8534
Инна
2003-10-23 10:56
2003.11.03
Ещё раз о создании компонента





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский