Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Как добавить строки в ComboBox ????


Автор: BLACK_KOT 12.9.2010, 12:47
Код

program BLACK_KOT;

uses Messages,Windows;

var
Form1,ComboBox1,ListBox1 : HWND;
BLACK_KOT_window: TWndClass;
Msg: TMsg;

procedure setFont(w:HWND);  //устанасливает шрифт по умолчанию
begin
SendMessage(w,WM_SETFONT,GetStockObject(ANSI_VAR_FONT),1);
end;



//--------------------главный обработчик сообщений
function WndProc(hnd, wmsg, wparam, lparam: integer): integer; stdcall;
begin
Result:=0;
case wmsg of
  WM_CREATE:
  begin
  ComboBox1:=CreateWindowEx(0, 'ComboBox', 'ComboBox1',  CBS_DROPDOWN or WS_VISIBLE or WS_CHILD,104, 32, 145,21, hnd, 0, HInstance, nil);setFont(ComboBox1);
    SendMessage(ComboBox1,CB_ADDSTRING,0,integer(pchar('первая строка')));
    SendMessage(ComboBox1,CB_ADDSTRING,0,integer(pchar('вторая строка')));   // ПОЧЕМУ СТРОКИ НЕ ДОБАВЛЯЮТСЯ ? ? ?????????????
    SendMessage(ComboBox1,CB_ADDSTRING,0,integer(pchar('третья строка')));
    SendMessage(ComboBox1,CB_INSERTSTRING,0,integer(pchar('4 строка')));

  ListBox1:=CreateWindowEx(WS_EX_CLIENTEDGE, 'ListBox', '',  WS_VSCROLL or WS_VISIBLE or WS_CHILD,32, 64, 233,97, hnd, 0, HInstance, nil);setFont(ListBox1);
    SendMessage(ListBox1,LB_ADDSTRING,0,integer(pchar('первая строка')));
    SendMessage(ListBox1,LB_ADDSTRING,0,integer(pchar('вторая строка')));  // А ЗДЕСЬ ДОБАВЛЯЮТСЯ !!!!!!!!!!!!!
    SendMessage(ListBox1,LB_ADDSTRING,0,integer(pchar('третья строка')));
    SendMessage(ListBox1,LB_INSERTSTRING,3,integer(pchar('4 строка')));
  end;
  WM_DESTROY: PostQuitMessage(0);
  else Result:=DefWindowProc(hnd, wmsg, wparam, lparam);
  end;
end;

Procedure CreateMySelf;
begin
with BLACK_KOT_window do
  begin
  lpszClassName:='BLACK_KOT_window';
  lpfnWndProc:=@WndProc;
  hCursor:=LoadCursor(hInstance, IDC_ARROW);
  hbrBackground:=COLOR_3DSHADOW;
  end;
RegisterClass(BLACK_KOT_window);
Form1:=CreateWindowEx(0, 'BLACK_KOT_window','Form1', WS_OVERLAPPEDWINDOW or WS_VISIBLE,346, 216, 355,200, 0, 0, HInstance, nil);setFont(Form1);;
end;

begin
CreateMySelf;
while GetMessage(Msg, 0, 0, 0) do
  begin
  TranslateMessage(Msg);
  DispatchMessage(Msg);
  end;
end.


  КАК ДОБАВИТЬ СТРОКИ В ComboBox ????

Автор: Maks1509 12.9.2010, 15:39
Всё добавляется, просто у тебя высота 21 указана, сделай больше и увидишь раскрывающийся листбокс. smile

Автор: BLACK_KOT 12.9.2010, 17:44
ВОТ ВЕДЬ, РЕАЛЬНО САМ СТУПИЛ

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)