![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Combobox на Api [D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
Nick Denry © (2003-03-06 14:11:00)Программисты!Помогите с comobobox"ом! Создаю комбобокс через
CreateWindow("Combo"....,ws_children or ws_show or cbs_hasstrings or Cbs_dropdown....
вставляю в него строки через
SendMessage(combo1,cb_addstring,....и посылаю сообщение
sendMessage(combo1,cb_showdropdown,integer(bool(true))); а он не дропдаунится!Что неправильно? помогите плз!
Nick Denry (2003-03-07 09:34:00) [1]2Игорь Шевченко © Спасибо большое!
Игорь Шевченко (2003-03-06 15:54:00) [2]
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
HCombo : HWND;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
HCombo := CreateWindow("COMBOBOX", nil,
WS_VISIBLE or WS_CHILD or CBS_DROPDOWN or CBS_HASSTRINGS,
ComboBox1.Left, ComboBox1.Top,
ComboBox1.Width, ComboBox1.Height * 8, Handle, 0, hInstance, nil);
//Все дело в том, что при создании ComboBox"а ему надо указывать
// высоту с учетом выпадающего списка
if HCombo = 0 then
RaiseLastWin32Error;
if SendMessage(HCombo, CB_ADDSTRING, 0, LPARAM(PChar("Строка 1"))) =
CB_ERR then
RaiseLastWin32Error;
if SendMessage(HCombo, CB_ADDSTRING, 0, LPARAM(PChar("Строка 2"))) =
CB_ERR then
RaiseLastWin32Error;
SendMessage(HCombo, WM_SETTEXT, 0, LPARAM(PChar("Строка 2")));
ComboBox1.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(hCombo, CB_SHOWDROPDOWN, 1, 0);
end;
end.
Nick Denry (2003-03-06 14:34:00) [3]В том то и дело, что если по дельфийским Windows SDK то все вроде правильно! (может у кого примерчик есть!)
gsu (2003-03-06 14:28:00) [4]Читай SendMessage и ее параметры