Max_T Posted July 31, 2005 Report Share Posted July 31, 2005 В Microsoft Visual Basic 6.0 нужно сделать следующее, При записи в Text 1 и Text2 (это будет Имя и Фамилия) они сохранялись в файле, А затем имя и фамилия должны загружаться в общий список который находится В Combo1 (ComboBox) Да и главное как сделать так чтобы можно было вводить неограниченное количество имен и фамилий Помогите кто знает (если нетрудно накидайте пример в Visual Basic 6.0 ) Заранее благодарен Quote Link to comment Share on other sites More sharing options...
Grimm Posted July 31, 2005 Report Share Posted July 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 Quote Link to comment Share on other sites More sharing options...
LomaK.XP Posted March 16, 2007 Report Share Posted March 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.