Visual Basic: Sfaturi și trucuri
Iată tot ce am ajutat vreodată și aș dori să-l împărtășească cu alții, precum și sfaturi utile de la alți utilizatori.
1. Există multe programe, eliminând masca cu o parolă ferestre. Toți trebuie să fi văzut: direcționați mouse-ul pe ecran cu textul apare stele și fereastra de cracare parola. Aplicațiile scrise în Visual Basic nu zaschescheny de la ea. Cu alte cuvinte în caseta de text conține încă textul, doar deghizat. Am găsit cum să-l evite:
- Formele secțiunea Declarații generale declara o variabilă care va conține codul:
Dim PSWD ca șir
- în proprietățile unui câmp de text, setați asteriscul PasswordChar „*“. Acum, faceți clic pe caseta text, apoi faceți clic pe eveniment de două ori Text1_KeyPress. introduceți:
Private Sub Text1_KeyPress (KeyAscii Ca Integer)
PSWD = PSWD + Cro (KeyAscii)
KeyAscii = Asc ( "*")
end Sub
- Acum apăsați va fi prins și va peredovat câmp text numai asteriscuri! Și cracare program parola nu va ajunge. Dacă cineva vrea să facă acest lucru, la fel ca în Linux'e, și anume nu asteriscuri deloc, atunci KeyAscii = asc ( „*“) trebuie să fie înlocuit cu un șir de caractere KeyAscii = 0 și toate!
Operatorii 2.Sochitanie de CHR (13) + Cro (10) poate fi înlocuit cu un vbCrLf constant.
3. EXE-ul nu este pornit în același timp, de două ori un registru eveniment Form_Load:
Private Sub Form_Load ()
Dacă App.PrevInstance = true Atunci
MsgBox „Proiectul a început deja!“
capăt
End If
5. Dacă utilizați în programul de comparare linii de text, vă va fi de ajutor memento pentru următoarele:
- siruri de caractere sunt identice în conținut, dar este diferit în ortografia budyt recunoscute ca fiind inegala:
"Visual Basic" <> "Visual Basic"
- Dacă doriți să similitudine a avut loc cu privire la conținutul, mai degrabă decât pe scris, va trebui să convertiți ambele siruri de caractere pentru a carcasei superioare sau inferioare:
UCASE ( "Visual Basic") = UCASE ( "Visual Basic")
' "Visual Basic" = "VISUAL BASIC"
LCASE ( "Visual Basic") = LCASE ( "Visual Basic")
' "Visual Basic" = "Visual Basic"
- sau pus în option Declarația generală Compara Text. Programul se va distinge între apoi doar text conținut
6. Dacă doriți să aduceți în câteva rânduri MsgBox'e și de fiecare dată când o nouă linie între aceste linii au nevoie pentru a insera vbCrLf constantă:
MsgBox "Galodrantsi" + vbCrLf + "ycix Krain" + vbCrLf + _
"Edinu gramada Y" + vbCrLf + "ho!"
7. Pe unul dintre site-urile romanesti dedicate VB, am dat peste o întreagă discuție despre ce să facă și cum să se ocupe de Nul (în special atunci când se lucrează cu baze de date). Poate că greșesc, dar am fost întotdeauna în acest scop, utilizați o funcție mică, plasat undeva în
modul:
Funcția publică CheckNull (SCHECK ca String) ca STRING
Dacă IsNul (SCHECK) Atunci
CheckNull = gol
altfel
CheckNull = Trim $ (SCHECK)
End If
end Function
8.Ochen adesea folosit în loc de imagine butoane convenționale. Ie există doar trei imagini - una care va culege (img1), al doilea stoarse (img2) și a treia presă (img3) (img2 și img3 - invizibil). Noi facem în acest fel:
Private Sub Form_Load ()
„Forma de imagine Boot 1 ia forma _
Imaginea 2 (lansat)
img1.Picture = img2.Picture
end Sub
Private Sub Image1_MouseDown (buton ca Integer. Shift Ca Integer. _
X Ca unic. Y Ca Single)
„Atunci când mouse-ul făcând clic pe imaginea 1, aceasta ia forma _
Imaginea 3 (apăsat)
img1.Picture = img3.Picture
end Sub
Private Sub Image1_MouseUp (buton ca Integer. Shift Ca Integer. _
X Ca unic. Y Ca Single)
„Când eliberați butonul mouse-ului, imaginea 1, se presupune din nou forma _
Imaginea 2 (lansat)
img1.Picture = img2.Picture
end Sub
Această tehnică este cunoscută pentru toată lumea. Dar există un defect în ea, și anume, atunci când o serie de click-uri continue pe o imagine într-un fel de obiect răspunde prin timp. Ie apoi apăsați, apoi nu apăsați. Deci, aici este Consiliul însuși :-). Pentru a evita acest lucru, în cazul Img1_MouseDown nevoie pentru a insera un rând
Ie imagine simultan trimite intrarile de la tastatura. De ce este, eu nu mă pot înțelege. Dar, între paranteze, desigur, indiferent de litera „A“ - și pot exista B și C. Evenimentul principal în sine. Dacă cineva poate da o explicație clară - hai! Vă mulțumim anticipat!
9. În cazul în care, în cursul programului de care aveți nevoie de ceva timp pentru a modifica valorile a două variabile, utilizați această procedură:
Sub Swap (V1 Ca variantă. V2 variantă)
Dim Mk Ca Variant
Mk = V2
V2 = V1
V1 = Mk
end Sub
Apel:
Swap x, y
ABC = Environ ( "windir")
Și totul!
Dar asta nu e tot! Puteți obține, de asemenea, următoarele variabile explicative cu privire la:
ABC = Environ ( "TMP") „fișiere temporare pentru directorul TEMP
ABC = Environ ( "BLASTER") „coordonatele soundcard
calea ABC = Environ ( "path")“a declarat în autoexec.bat
Dar nu e încă totul.
Pentru a obține numele și valoarea variabilelor explicative între paranteze în locul șirului trebuie să fie pus număr variabil (sau indexul?).
Introduceți sleduyushy fereastra Cod procedură, executați proiectul, faceți clic pe formular se va vedea o listă cu toate variabilele și valorile lor!
Private Sub Form_Click ()
„Ia variabilele explicative ale unității, și îi atribuie
m = 1
„Start buclă care incrementează m fiecare variabilă
„Ori de către unul și îndesat funcția ei Environ
face
„Atribuie variabilele explicative privind EnvString a revenit variabile explicative privind,
„Orice număr m adecvat
EnvString = Environ (m)
„Variabile explicative cu privire la imprimare, orice număr adecvat m
Print Environ (m)
„Variabile explicative privind m este crescut cu
m = m + 1
„În cazul în care variabilele explicative privind EnvString nu sunt încă goale - ne întoarcem următoare.
Buclă Până EnvString = „“
end Sub
Acum totul! ;-)) Și acum toți cei care nu-i place API-funcții (cred că sunt, în general, puțini oameni dolyublivaet :-)) poate folosi doar această linie!
11.Chtoby face forma unui cadru, dar fără un titlu, trebuie să-l modificați următoarele proprietăți:
Caption = ""
ControlBox = false
12. Dacă trebuie să modificați valoarea variabilă booleană opusul, în locul procedurii:
Dacă ABC Atunci
ABC = false
Altfel: ABC = true
End If
Puteți utiliza următoarea linie:
Și atunci ce valoare nu ar conține variabila ABC, acesta (valoarea) va fi opusul!
Meniul 13.Chtoby între paragrafe introduce o bandă de separare în fereastra „Editor Menu“ în câmpul „Caption“, de tip „-“ (liniuță), iar câmpul „Nume“ orice nume.
14. Dacă formularul conține un meniu, de tip în cazul Form_Load în codul și un mic bar apare sub meniu, meniul subliniază:
AutoRedraw = Adevărat
ScaleMode = 3
Cls
Linie (0, 0) - Step (ScaleWidth, 0), QBColor (8)
Linie (0, 1) - Step (ScaleWidth, 0), QBColor (15)
AutoRedraw = false