Max_T Опубликовано 31 июля, 2005 Жалоба Поделиться Опубликовано 31 июля, 2005 В Microsoft Visual Basic 6.0 нужно сделать следующее, При записи в Text 1 и Text2 (это будет Имя и Фамилия) они сохранялись в файле, А затем имя и фамилия должны загружаться в общий список который находится В Combo1 (ComboBox) Да и главное как сделать так чтобы можно было вводить неограниченное количество имен и фамилий Помогите кто знает (если нетрудно накидайте пример в Visual Basic 6.0 ) Заранее благодарен Ссылка на комментарий Поделиться на другие сайты Поделиться
Grimm Опубликовано 31 июля, 2005 Жалоба Поделиться Опубликовано 31 июля, 2005 ниже привожу код модуля формы на которой распожены 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 Ссылка на комментарий Поделиться на другие сайты Поделиться
LomaK.XP Опубликовано 16 марта, 2007 Жалоба Поделиться Опубликовано 16 марта, 2007 Есть вопрос по поводу 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, но его надписи не видно!? И при нажатии на него он нормально выделяется, тоесть его текст как и должен вставляется в поле. А если ещё вот так: 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. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти