Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Lynk & Co 01

Deschizator electric de conserve?

Poate un om care i-a cumparat unu...

Vacanta in Istria
 Suport metalic PNI pentru montaj ...

Boiler electric nu incalzeste apa...

Soferul pozitiv la 7 substante ps...

Se recomanda radioterapie dupa op...
 Ce vreti de la un AUDIO streamer ...

Accesorii S23 Ultra

Magic Mike's Last Dance (2023)

Samsung S24 - zvonuri
 RAM Dual Chanel

Baterii LiFePO4 cilindrice model ...

Cumparare apartament nou pe numel...

Nelamurire Whatsapp
 

VB6 sintaxa conditiilor

- - - - -
  • Please log in to reply
7 replies to this topic

#1
Crysty17

Crysty17

    Junior Member

  • Grup: Members
  • Posts: 86
  • Înscris: 28.07.2007
Am intrat de curand in tainele VB6. Nu pot sa il invat citind, trebuie sa  lucrez in program. Am inceput prin a copia alte probrame. Acum am ajuns la un wizzard de instalare si as avea nevoie de putin ajutor:

[ http://img574.imageshack.us/img574/9861/48172613.jpg - Pentru incarcare in pagina (embed) Click aici ]


Vreau de fapt, atat timp cat check1.value=1 command5.enabled sa fie true. Am incercat while, if do while... nimic nu a mers. ma puteti ajuta cu un sfat?

In momentul de fata, cand dau click ini da enabled, dar dupa ce debifez casuta tot enabled ramane command5

Am verificat multe tutoriale si nu am reusit sa ma prind de faza

Multumesc anticipat.

#2
Sandstorm

Sandstorm

    Member

  • Grup: Banned
  • Posts: 632
  • Înscris: 30.04.2009
Incearca asa:
Private Sub chkTest_Click()
	If chkTest.Value = vbChecked Then
		cmdTest.Enabled = True
			Else
		cmdTest.Enabled = False
	End If
End Sub

chkTest - checkbox-ul
cmdTest - butonul

Edited by Sandstorm, 04 November 2010 - 11:11.


#3
Crysty17

Crysty17

    Junior Member

  • Grup: Members
  • Posts: 86
  • Înscris: 28.07.2007

View PostSandstorm, on 4th November 2010, 12:10, said:

Incearca asa:
Private Sub chkTest_Click()
	If chkTest.Value = vbChecked Then
		cmdTest.Enabled = True
			Else
		cmdTest.Enabled = False
	End If
End Sub

chkTest - checkbox-ul
cmdTest - butonul

Am reusit. Multumesc mult. A trebuit doar sa modific chkTest si cmdTest cu ce aveam eu in program.

chkTest.value ia valoarea 1 pentru check si 0 pentru uncheck, totusi ai folosit vbChecked. Mai am multe de invatat.... :-(

Multumesc inca odata.

#4
Sandstorm

Sandstorm

    Member

  • Grup: Banned
  • Posts: 632
  • Înscris: 30.04.2009
Poti sa pui 1 si 0, checked si unchecked, TRUE si FALSE.

Un sfat: incearca sa modific numele controalelor. Sa nu le lasi pe cele implicite pt. ca e cam greu de citit codul.
Sa iti dau un exemplu.
Ai un userform cu 3 butoane: button1, 2 si 3. De unde stii ce rol are fiecare?
Daca pui cmdAfiseazaForm, cmdRuleazaCod, etc. e mai usor de identificat rolul fiecaruia, plus ca ai codul mai ordonat.
Apoi, sa indentezi codul pentru o mai buna citire. E mai usor de urmarit firul de executie daca e indentat corect.

#5
Crysty17

Crysty17

    Junior Member

  • Grup: Members
  • Posts: 86
  • Înscris: 28.07.2007
Asa m-a intrumat si profesorul de programare vizuala, sa schimb numele. Eu insa prefer sa le las in ordinea lot. Probabil ca m-am obisnuit cu ele.
La programu care lucrez mi-a intrat in reflex... command1 face aia, command2 e ala... stiu ce fac toate butoanele importante plus ca nu am extraordinar de multe.
Codul intradevar devine greoi. Am sa tin cont de sfatul tau la urmatorul proiect. Acum e prea avansat ca sa stau sa schimb numele tuturor cntrolelor
La cod nu stiu ce as putea sa ordonez, sunt doar functii sinple de enable si visible. Acum s-ar putea sa ma chinui la instalarea propriuzisa a fisierelor. Am gasit baza de date cu VB**...*. Trebuie doar sa ma uit prin ea foarte atent pentru ca fiecare comanda are o mica descriere.

#6
Crysty17

Crysty17

    Junior Member

  • Grup: Members
  • Posts: 86
  • Înscris: 28.07.2007
Am dat de o alta problema (nu are treaba cu titlul topicului dar nu vrea sa aglomerez forumul): Nu stiu codul care imi genereaza foldere automat. Am cautat pe tot internetul si nimic :-s

Private Sub Command6_Click()
Dim s() As Byte
s = LoadResData(101, "CUSTOM")
Open Text2.Text & " fisier1.txt" For Binary Access Write As #1
Put #1, , s
Close #1

s = LoadResData(102, "CUSTOM")
Open Text2.Text & "fisier2.txt" For Binary Access Write As #1
Put #1, , s
Close #1
End Sub

Aici pune fisier1.txt respectiv fisier2.txt  in folderul dat de utilizator. Merge perfect atat timp can folderul este existent.
Daca folderul nu exista primesc o eroare si anume:
Rune-time error '76':
   Path not found

pe langa conditia if  ce comanda trebuie sa apelez?

Edited by Crysty17, 04 November 2010 - 22:04.


#7
Sandstorm

Sandstorm

    Member

  • Grup: Banned
  • Posts: 632
  • Înscris: 30.04.2009
Nu inteleg ce vrei sa faci daca primesti eroarea.
De preferat (si este indicat) ca intotdeauna sa pui o procedura de error traping.
Uite asa:
Private Sub Command6_Click()
Dim s() As Byte
On Error GoTo err

s = LoadResData(101, "CUSTOM")
	Open Text2.Text & " fisier1.txt" For Binary Access Write As #1
		Put #1, , s
	Close #1

s = LoadResData(102, "CUSTOM")
	Open Text2.Text & "fisier2.txt" For Binary Access Write As #1
		Put #1, , s
	Close #1
Exit Sub

err:
	MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub

Acum, cand va aparea o eroare, ti se va afisa un mesaj de eroare, DAR programul tau nu se va mai inchide, asa cum iti face acum cand primesti eroare.
Poti sa particularizezi si eroarea aparuta: folosesti Select Case
Uite un model:
Private Sub Command6_Click()
Dim s() As Byte
On Error GoTo err

s = LoadResData(101, "CUSTOM")
	Open Text2.Text & " fisier1.txt" For Binary Access Write As #1
		Put #1, , s
	Close #1

s = LoadResData(102, "CUSTOM")
	Open Text2.Text & "fisier2.txt" For Binary Access Write As #1
		Put #1, , s
	Close #1
Exit Sub

err:
	Select Case err.Number
		Case 76
			MsgBox "Folderul destinatie nu exista. Te rog sa il creezi si apoi sa rulezi comanda dorita.", vbOKOnly + vbInformation, "Folder inexistent"
		Case Else
			MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
	End Select
End Sub

L.E.
Uite codul ca sa iti faca folderele dorite cand ele nu exista:
Sub FolderNou
	mkdir ("C:\Folder nou")
End Sub

Edited by Sandstorm, 05 November 2010 - 08:53.


#8
Crysty17

Crysty17

    Junior Member

  • Grup: Members
  • Posts: 86
  • Înscris: 28.07.2007
Am reusit:

Private Sub Command6_Click()
Dim ok As Integer
Text2.Text = Text2.Text & "\"
On Error GoTo err
err:
 Select Case err.Number
		Case 76
			MsgBox "Your destination folder dose not exist. The wizzard will create the folder(s) for you", vbOKOnly + vbInformation, "Invalid folder"
			ok = 1
		Case Else
			MsgBox err.Description, vbOKOnly + vbInformation, "Unknown error"
	End Select
If ok = 1 Then
	MkDir (Text2.Text)
End If

Ruleaza perfect. Daca folderul nu exista, apare casuta de avertisment si creeaza sigur folderul. Totodata pune si fisierele necesare in acel folder.
Daca exista folderul respectiv, pune fisierele fara nici-o eroare.

Multumesc mult pentru ajutor. Daca am sa ajung un mare programator am sa imi aduc aminte de tine, promit. :)

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate