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

Вниз

простой вопрос по API   Найти похожие ветки 

 
Anton S.   (2005-09-02 22:13) [0]

Как используя API-функции поместить на форму какой-нибудь элемент управления, например кнопку. Прошу, если можно, пример кода.


 
Турист   (2005-09-02 22:20) [1]


procedure TForm1.Button1Click(Sender: TObject);
begin
 CreateWindow("BUTTON", "Кнопка", WS_CHILD or WS_VISIBLE or BS_PUSHLIKE,
              50, 50, 75, 25, Handle, 0, HInstance, nil)
end;


 
Eraser ©   (2005-09-03 00:08) [2]

Anton S.   (02.09.05 22:13)

Если уже есть форма, зачем для помещения на неё кнопки нужно использовать именно API ф-ии?


 
Fay ©   (2005-09-03 03:05) [3]

2 Anton S.   (02.09.05 22:13)
Зри в "генофонд"


 
Anton S.   (2005-09-04 00:52) [4]

2 Eraser
Форма тоже создана на "чистом" win-API, а вообще просто хочу научиться работать с API.


 
Германн ©   (2005-09-04 01:23) [5]

2 Anton S.   (04.09.05 00:52) [4]

>2 Eraser
>Форма тоже создана на "чистом" win-API, а вообще просто хочу >научиться работать с API.

"Чмстый" WinApi ничего не знает о "формах"! Для него есть только "Окна". Он также не знает, что такое "элемент управления"! А "например кнопка" для него тоже такое же окно, но обрабатывающее сообщения так, как это нужно кнопке.


 
_RusLAN ©   (2005-09-05 18:41) [6]

:))
http://delphimaster.net/view/2-1125684802/


 
Marser ©   (2005-09-06 01:15) [7]

Вот, я как-то пробовал. В данном случае происходит ещё и обработка нажатия на кнопку с помощью wm_command.
program APIprob;

uses
 windows, messages;
var
 wc: TWndClassEx;
 MainWnd,ButWND : HWND;
 Mesg : TMsg;
procedure oncommand(wparam,lparam:longint);
var wmn:word;
   wnd:hwnd;
begin
 wmn:=wparam shr 16;
 wnd:=hwnd(lparam);
 if (wnd=butwnd)and(wmn=bn_clicked) then
   messagebox(0,"dfdf","dfd",mb_ok);
end;
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;
 wm_command:oncommand(wparam,lparam)

  else Result:=DefWindowProc(wnd,msg,wparam,lparam);
 end;
End;
procedure createwin;
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);
 xPos:=100;
 yPos:=150;
 nWidth:=400;
 nHeight:=250;
 MainWnd:=CreateWindowEx (0,"WinMin : Main","Win Min",
                          ws_overlappedwindow,xPos,yPos,
                          nWidth,nHeight,0,0,Hinstance,nil);
 ShowWindow(MainWnd,CmdShow);
end;
procedure createbutton;
begin
 ButWnd:=CreateWindowEx (0,"BUTTON","Button",
                         WS_CHILD,5,5,
                          60,30,MainWND,0,Hinstance,nil);
 ShowWindow(ButWnd,SW_SHOWNORMAL);
end;
begin
 createwin;
 createbutton;
 while GetMessage(Mesg,0,0,0) do begin
   TranslateMessage(Mesg);
   DispatchMessage(Mesg);
 end;
end.



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

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

Наверх




Память: 0.48 MB
Время: 0.042 c
2-1126454439
Зм1й
2005-09-11 20:00
2005.10.16
Вывести собщение


8-1117084077
Hilbert
2005-05-26 09:07
2005.10.16
Графическое отображение учебного расписания


14-1127366703
Starcom
2005-09-22 09:25
2005.10.16
Определение Noname Материнки?


2-1126351244
РА
2005-09-10 15:20
2005.10.16
SQL справочник


3-1125834784
Кабан
2005-09-04 15:53
2005.10.16
Выподающий список.





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