How to make a pure API Window(Part1)

How to create a window with API

Hello every one!!

Today we will learn how to create a window with API code inside Delphi.

Don’t think that it is too hard

Every thing with Delphi is possible and easy!!!!

So instead of talking lets do it :-)

//Note: I will explain my code with comments between {}

//So lets have fun

…….

public

{ Public declarations }

end;

function RegisterClass:Boolean;

var

Form1: TForm1;

implementation

{$R *.dfm}

function RegisterClass: Boolean;

var

WindowClass: TWndClass;

begin

{setup our new window class}

WindowClass.Style := CS_HREDRAW or CS_VREDRAW; {set the class styles}

WindowClass.lpfnWndProc := @DefWindowProc; {point to the default window procedure}

WindowClass.cbClsExtra := 0; {no extra class memory}

WindowClass.cbWndExtra := 0; {no extra window memory}

WindowClass.hInstance := hInstance; {the application instance}

WindowClass.hIcon := 0; {no icon specified}

WindowClass.hCursor := 0; {no cursor specified}

WindowClass.hbrBackground := COLOR_WINDOW; {use a predefined color}

WindowClass.lpszMenuName := nil; {no menu}

WindowClass.lpszClassName := 'TestClass'; {the registered class name}

{now that we have our class set up, register it with the system}

Result := Windows.RegisterClass(WindowClass) <> 0;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

hWindow: HWND;

begin

{Step 1: Register our new window class}

if not RegisterClass then

begin

ShowMessage('RegisterClass failed');

Exit;

end;

{Step 2: Create a window based on our new class}

hWindow := CreateWindowEx(0, {no extended styles}

'TestClass', {the registered class name}

'New Window', {the title bar text}

WS_OVERLAPPEDWINDOW, {a normal window style}

CW_USEDEFAULT, {default horizontal position}

CW_USEDEFAULT, {default vertical position}

CW_USEDEFAULT, {default width}

CW_USEDEFAULT, {default height}

0, {no owner window}

0, {no menu}

hInstance, {the application instance}

nil {no additional information}

);

{Step 3: If our window was created successfully, display it}

if hWindow <> 0 then

begin

ShowWindow(hWindow, SW_SHOWNORMAL);

UpdateWindow(hWindow);

end

else

begin

ShowMessage('CreateWindow failed');

Exit;

end;

end;

So it is very easy to do

I compiled this program and I hope that you will not have any problems with this code

Good luck :-)

By: Mohamed El-Zayat.



Опубликовал admin
2 Май, Суббота 2009г.



Программирование для чайников.