VB vupros

8 отговора 291 прегледа
#1

VB vupros

interesuvam se kak moga da nakaram vb da pomni kakvo e pravel potrebitelq s programata predishnoto startirane. Ne razbiram mnogo ot vb no znam nqkoi neshta i sega si pravq edna programa ... znache iskam da i napravq razlichni skinove ... rezultatut koito trqbva da se poluchi se poluchava no sled zatvarqne i otnovo otvarqne na programata vsichko e kakto si e bilo predi :(... Gledaite da obqsnqvate po tuka ... shtoto vi kazvam che ne razbiram mnogo ot vb
Vse pak blagodarq predvaritelno

Отговор
в отговор на beznadejden #2

Re: VB vupros

всичко е страшно просто:
1) изясняваш си какво ще позволиш на потребителя да прави и какво не
2) записваш всичко което потребителя прави в твоята програма и по този начин формираш състоянието на програмата ти.
3) при излизане записваш състоянието в което се намира програмата -- файл, registry, уеб сайт, телепатична връзка до мозъка ти...
4) при стартиране четеш и възстановяваш програмата до предишното състояние.

въпроса ти е много общ. пък и никой не казва, че просто и лесно са едно и същи неща нали?

ein heller Schein am Firmament
Отговор
в отговор на beznadejden #3

Re: Наистина, питай за по конкретни неща

За да ти отговори изчерпателно на въпроса, човек трябва да напише цяла статия. Ако имаш MSDN, хвърли един поглед там. Спомням си, че там има примери за запазване на настройки на програма в Registry или в .INI - файл.

Отговор
в отговор на beznadejden #4

Re: VB vupros

Mojesh da si pazish vsqkakvi nastrojki po programata si v registrite i v .ini failove

Naprimer, za chetene i zapis v registry polzvaj funkciite v advapi32.dll (RegCreateKeyEx, RegCloseKey, RegOpenKeyEx, RegQueryValueEx, RegSetValueEx i t.n.).
Za chetene i zapis v .ini files vij
[линк],
tam e napisano mnogo dobre.

Отговор
в отговор на beznadejden #5

Re: VB vupros

Hmmmmm .... verno che sum zadal vuprosa mnogo obshto za koeto se izvinqvam, no mai ne mojahte da me razberete kakvo tochno pitam za tova shte obqsnq po podrobno ... naprimer ako iskam da smenq cveta na butonite na programata mi(stava vupros za programa koqto e samo exe file) stava po sledniqt nachin:

cmd_1.backcolour = nqkuv cvqt
cmd_2.backcolour = nqkuv drug cvqt

tuka znache za tekushtata potrebitelska sesiq butonite shte budat sus smeneni cvetove , no sled zatvarqne i otnovo startirane na programata butonite shte budat
s osnovniq cvqt koito e zadaden ili da kajem che osnovniq cvqt na butonite e cheren, potrebitelqt go smenq na bql , no sled zatvarqne i otvarqne na programata butonite pak sa cherni ... nadqvam se tova e suvsem tochno obqsnenie. Ako nqkoi me oputi mnogo shte se radvam

Отговор
в отговор на beznadejden #6

Re: VB vupros

Az mislq, che sme te razbrali mnogo dobre. Pishesh v koda:

cmd_1.backcolour = cveta, zapisan v registry (ili ini file)

t.e. defaultskiq ti cvqt, da rechem cheren, s kojto se instalira programata, ti go chetesh ot registry, kudeto si go zapisal pri instaliraneto na programata ti. Ako potrebitela go sleni, to zapisvash promqnata pak v registry, i sledvashtiq put kato zarejdash exe-to to shte chete ot registry, kudeto cveta veche e smenen.

Отговор
в отговор на beznadejden #7

Re: VB vupros

Кой кого не може да разбере още не е ясно.

Значи хората ти казват, че ако опишеш в събитието FORM_UNLOAD() код, който записва текущото състояние на формата:

Private Sub Form_Unload()

Open "Program.ini" for output as #1
print #1, cmdButton1.BackColor
print #1, cmdButton2.BackColor
'И така нататък...
Close #1
End Sub


А пък във събитието FORM_LOAD() опишеш кода, който ще възстановява състоянието:

Private Sub Form_Load()

Dim lngData as Long
Open "Program.ini" for input as #1
Line Input #1, lngData: cmdCommand1.BackColor = lngData
Line Input #1, lngData: cmdCommand2.BackColor = lngData
'И така нататък...
Close #1
End Sub


при всяко зареждане на формата ще се търсят записаните в INI данни, и ще се възстановяват цветовете на контролите. Това е много ламерски начин, зашото този INI файл ще има такъв вид:

-2147483633
-2147483633
-2147483633

и няма да се разбира кое число за какво е. Но това е все пак някакво начало. Можеш да добавяш във всеки ред и стринг за разпознаване на настройката за какво се отнася. Потърси в MSDN указания за правене на INI файл, за използване на регистъра и т.н. Препоръчвам INI файл. Лично аз съм направил малка библиотека за запис и четене на INI, и когато я копирам в нов проект - просто добавям индивидуалния код за програмата. С регистъра се работи също лесно, но той е зависим от Windows, и засега предпочитам да не ми се губят настройките, когато преинсталирам системата.

ICQ-то ми е 34254941, ако имаш време се обади да кажеш става ли, или не...

----------------------------------
помислих, хареса ми, помислих пак...
Отговор
в отговор на Щиpлиц #8

Re: VB vupros

Taka tova neshto raboti no samo pri zapisvane tekushtoto sustoqnie na formata ... ili samo form_unload(), kakvo imam predvid pod raboti znache v ini faila se zapisvat nqkvi cifri (80123934 i t.n.)... no nqma rezultat, sled zatvarqne i otnovo startirane na prilojenieto butonite ne sa sus suotvetniq cvqt, koito e bil zadaden v predishnata rabota s programata.

Private Sub Form_Unload()
'tova raboti
Open "Program.ini" for output as #1
print #1, cmdButton1.BackColor
print #1, cmdButton2.BackColor
'И така нататък...
Close #1
End Sub

Tuka neshto moje bi da e oburkano ... ili moje bi nqkude az da burkam ... neznam no tova neshto ne dava nikakuv rezultat?

Private Sub Form_Load()
'tuka obache ima nekuv problem
Dim lngData as Long
Open "Program.ini" for input as #1
Line Input #1, lngData: cmdCommand1.BackColor = lngData
Line Input #1, lngData: cmdCommand2.BackColor = lngData
'И така нататък...
Close #1
End Sub




Отговор
в отговор на beznadejden #9

Re: VB vupros

Е, прав си. "Line Input" не е за числови променливи. Ти си копирал 1:1, а аз го писах като пример на сухо. Нямаше къде да пробвам.

Сега драснах едно примерче, проверих го, и ти го поствам тук:

Създадох форма, с един Command button (cmd1), и промених свойството Style на този Command button на "1-Graphical", за да няма проблеми с промяна на цвета. Във формата добавих и един Common Dialog (dlgCommon), за избор на цвят.

Option Explicit


Private Sub Form_Load()
If Dir("Program.ini") <> "" Then
Dim strData As String
Open "Program.ini" For Input As #1
Line Input #1, strData: cmd1.BackColor = Val(strData)
Close #1
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
Open "Program.ini" For Output As #1
Print #1, cmd1.BackColor
Close #1
End Sub

Private Sub cmd1_Click()
On Error GoTo EndSub
With dlgCommon
.CancelError = True
.DialogTitle = "Select Color"
.Color = cmd1.BackColor
.ShowColor
End With
cmd1.BackColor = dlgCommon.Color
EndSub:
End Sub


пробвай, и кажи резултата.
Обади се и по ICQ, ще ти направим 20-тина реда за да имаш основа за правене на INI без да ползваш библиотеки.

П.П. Когато постваш програмен код тук във клуба, го заграждай с тагове ето така:
[ p r e ] В началото, ама слято. Сега го пиша разделено, за да го видиш...
[ / p r e ] След края на текста.

----------------------------------
помислих, хареса ми, помислих пак...

Редактирано от Щиpлиц на

Отговор