Главная страница
    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.039 c
6-1115292522
Egorr
2005-05-05 15:28
2005.10.16
Прокси


6-1119816920
Агент Смитт
2005-06-27 00:15
2005.10.16
помогите с запросом


1-1127326732
френк
2005-09-21 22:18
2005.10.16
GetProcAddress


14-1127320088
Piero
2005-09-21 20:28
2005.10.16
Задачка по теории вероятности


3-1125374795
novikova
2005-08-30 08:06
2005.10.16
ado в локальной сети





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