Показать полную графическую версию : [решено] Visual basic 6.0 сохранить изменения в текстовом поле
artemu88
28-08-2018, 12:07
Добрый день! Хотел написать программу, в качестве шаблона использовал базу данных biblio.mdb. Есть 2 текстовых поля и два поля со списком бд, они связаны кнопкой "применить" так:
Private Sub Command1_Click()
Text1.Text = DBCombo1.Text
Text2.Text = DBCombo2.Text
End Sub
Также есть кнопки сохранить и выход.
Хотел спросить как сохранить изменения в текстовых полях - Text1.Text и Text2.Text (чтобы программа открылась с теми же значениями, что и были выбраны при закрытии)?
Заранее спасибо!
Хотел спросить как сохранить изменения в текстовых полях - Text1.Text и Text2.Text (чтобы программа открылась с теми же значениями, что и были выбраны при закрытии)? »
Сохраните их в ini-файле, например:
Option Explicit
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String _
) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String _
) As Long
Public strPath2Ini As String
Private Sub Form_Initialize()
strPath2Ini = App.Path & "\" & App.EXEName & ".ini"
End Sub
Private Sub Form_Load()
Text1.Text = INIRead("Global", "TextBox1", strPath2Ini)
Text2.Text = INIRead("Global", "TextBox2", strPath2Ini)
End Sub
Private Sub Form_Unload(Cancel As Integer)
INIWrite "Global", "TextBox1", Text1.Text, strPath2Ini
INIWrite "Global", "TextBox2", Text2.Text, strPath2Ini
End Sub
Public Function INIWrite(sSection As String, sKeyName As String, sNewString As String, sINIFileName As String) As Boolean
Call WritePrivateProfileString(sSection, sKeyName, sNewString, sINIFileName)
INIWrite = (Err.Number = 0)
End Function
Public Function INIRead(sSection As String, sKeyName As String, sINIFileName As String) As String
Dim sRet As String
sRet = String(255, Chr(0))
INIRead = Left(sRet, GetPrivateProfileString(sSection, ByVal sKeyName, "", sRet, Len(sRet), sINIFileName))
End Function
Вместо того, чтобы сохранять в процедуре Form_Unload, Вы можете делать это в процедуре обработки нажатия кнопки «Сохранить».
artemu88
28-08-2018, 12:44
Я хотел, чтобы эти значения (в текстовых полях) подтягивались с помощью кнопки применить, а потом сохранялись по закрытии программы и загружались при новом открытии. Или это то же самое?
чтобы эти значения (в текстовых полях) подтягивались с помощью кнопки применить »
Э… Поясните, какой смысл Вы вкладываете в «эти значения … подтягивались»?
а потом сохранялись по закрытии программы и загружались при новом открытии. »
При выгрузке формы значения текстовых полей сохраняются в ini-файл, одноимённый имени исполняемого файла приложения, расположенного рядом с с последним:
https://i.imgur.com/TinbxuB.png
При загрузке формы значения из ini-файла загружаются и присваиваются текстовым полям.
artemu88
28-08-2018, 13:48
Теперь понял
А для того, чтобы появился ini нужно скомпилировать программу при помощи Package & Deployment Wizard?
И писать все нужно код такой же как вы сказали?
Я просто хотел на кнопку сделать (кнопка сохранить).
При сохранении проекта у меня никакого файла ini нет
При сохранении проекта у меня никакого файла ini нет »
Естественно. Запустите проект на исполнение хотя бы один раз — ini-файл появится. Конечно, расположение его должно быть не рядом с исполняемым файлом проекта (это я только для простоты сделал, туда у пользователя тупо может не быть прав на запись), а в профиле текущего пользователя.
Я просто хотел на кнопку сделать (кнопка сохранить). »
Помещаете:
INIWrite "Global", "TextBox1", Text1.Text, strPath2Ini
INIWrite "Global", "TextBox2", Text2.Text, strPath2Ini
не в процедуру выгрузки формы Form_Unload(), а в процедуру обработки нажатия кнопки «Сохранить», только и всего.
artemu88
29-08-2018, 11:24
Спасибо большое, все заработало!
Не подскажете, какие книги по vb6 можно почитать, чтобы изучить в полном объеме?
Любые. Главное — объём: желательно не менее 1200~1500 страниц, чтобы худо-бедно были рассмотрены основные вопросы и технологии.
Хотя нет, одну таки посоветую: Dan Appleman's Visual Basic Programmer's Guide to the Win32 API: Dan Appleman: 9780672315909: Amazon.com: Books (https://www.amazon.com/Applemans-Visual-Basic-Programmers-Guide/dp/0672315904), (есть перевод на русский язык, ищите по: Дэн Эпплман, «Win32 API и Visual Basic»). Помогает понять внутреннюю кухню VB, что на самом деле происходит «за кадром» при исполнении приложения, написанного на VB.
artemu88
30-08-2018, 13:15
Спасибо, скачал! Заказал еще одну книгу по vb6 Сайлер Б. Использование Visual Basic 6. Классическое издание, правда 800 страниц, но по описанию вроде как ничего, потому как мой самоучитель даже бд не рассматривает
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.