Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Проблемы с ComboBox в Microsoft Visual Basic 6.0


Рекомендуемые сообщения

В Microsoft Visual Basic 6.0 нужно сделать следующее,

При записи в Text 1 и Text2 (это будет Имя и Фамилия) они сохранялись в файле,

А затем имя и фамилия должны загружаться в общий список который находится

В Combo1 (ComboBox)

Да и главное как сделать так чтобы можно было вводить неограниченное количество

имен и фамилий

Помогите кто знает (если нетрудно накидайте пример в Visual Basic 6.0 )

Заранее благодарен

Ссылка на комментарий
Поделиться на другие сайты

ниже привожу код модуля формы на которой распожены 2 кнопки, два текстовых поля и один комбо бокс, названия элементов после создания не изменялись

Option Explicit

Private FilePath As String 'локальная переменная данного модуля формы

'содержит путь к файлу, в данном листинге задается при загрузке формы

'процедура записи строки в файл, файл дополняется новыми данными а не

'переписывается целиком

'строка для записи=текст1 + пробелы + текст2

Private Sub Save_Data_In_File()

Dim FileNo As Integer

Dim CurrentString As String

CurrentString = Text1 & " " & Text2

FileNo = FreeFile

Open FilePath For Append As FileNo

Print #FileNo, CurrentString

Close FileNo

End Sub

'процедура чтения из файла, чтает все строки и заносит их в

'предвыарительно очищенный комбобокс

Private Sub Load_Data_From_File()

Dim FileNo As Integer

Dim CurrentString As String

Combo1.Clear

FileNo = FreeFile

Open FilePath For Input As FileNo

Do Until EOF(FileNo)

Line Input #FileNo, CurrentString

Combo1.AddItem CurrentString

Loop

Close FileNo

End Sub

Private Sub Command1_Click()

'вызов записи

Save_Data_In_File

End Sub

Private Sub Command2_Click()

'вызов чтения

Load_Data_From_File

End Sub

Private Sub Form_Load()

FilePath = "c:\Test.txt"

End Sub

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Есть вопрос по поводу ComboBox в Delphi, при работе на чистом WinAPI.

Есть код:

program winmin;uses windows,messages;varwc:TWndClassEx;MainWnd,cmb:HWND;Mesg:TMsg;str:string; function WindowProc(wnd:HWND;Msg:Integer;Wparam:Wparam;Lparam:Lparam):Lresult;stdcall; begin if msg=wm_destroy thenbeginpostquitmessage(0);Result:=0;exit;end else Result:=DefWindowProc(wnd,msg,wparam,lparam); end;var xPos,yPos,nWidth,nHeight:Integer;beginwc.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:=1;yPos:=1;nWidth:=260;nHeight:=260;//Создание главного окнаMainWnd:=CreateWindowEx ( WS_EX_APPWINDOW,'WinMin:Main','dynamic form caption', ws_overlappedwindow, xPos,yPos,nWidth,nHeight,0,0, Hinstance,nil );ShowWindow(MainWnd,CmdShow);//Создание comboboxcmb:=CreateWindowEx ( 0,'COMBOBOX','combo caption', WS_CHILD or WS_VISIBLE or WS_TABSTOP or WS_VSCROLL or CBS_DROPDOWN or CBS_HASSTRINGS or CBS_OWNERDRAWFIXED, xPos+10,yPos+20,200,100,MainWnd,0, Hinstance,nil );str:='first';//Добавление элементаSendMessage(cmb,CB_ADDSTRING,0,dword(str));While GetMessage(Mesg,0,0,0) do begin TranslateMessage(Mesg); DispatchMessage(Mesg) endend.

Вся фишка в том, что элемент добавляется в Combobox, но его надписи не видно!? :doh:

И при нажатии на него он нормально выделяется, тоесть его текст как и должен вставляется в поле.

А если ещё вот так:

program winmin;uses windows,messages;varwc:TWndClassEx;MainWnd,cmb:HWND;Mesg:TMsg;str:string; function WindowProc(wnd:HWND;Msg:Integer;Wparam:Wparam;Lparam:Lparam):Lresult;stdcall; begin if msg=wm_destroy thenbeginpostquitmessage(0);Result:=0;exit;end else Result:=DefWindowProc(wnd,msg,wparam,lparam); end;var xPos,yPos,nWidth,nHeight:Integer;beginwc.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:=1;yPos:=1;nWidth:=260;nHeight:=260;MainWnd:=CreateWindowEx ( WS_EX_APPWINDOW,'WinMin:Main','dynamic form caption', ws_overlappedwindow, xPos,yPos,nWidth,nHeight,0,0, Hinstance,nil );ShowWindow(MainWnd,CmdShow);cmb:=CreateWindowEx ( 0,'COMBOBOX','combo caption', WS_CHILD or WS_VISIBLE or WS_TABSTOP or WS_VSCROLL or CBS_DROPDOWNLIST or CBS_HASSTRINGS or CBS_OWNERDRAWFIXED, xPos+10,yPos+20,200,100,MainWnd,0, Hinstance,nil );str:='first';SendMessage(cmb,CB_ADDSTRING,0,dword(str));While GetMessage(Mesg,0,0,0) do begin TranslateMessage(Mesg); DispatchMessage(Mesg) endend.

Тут тоже самое, но ещё к тому же текст не вставляется в поле, а должен!? :) :(

Кто знает в чём тут дело помогите, заранее очень признателен.

P.S.

На других языках под Win32 тоже самое, например MASM.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...