Întrebări frecvente despre crearea autorun pe Delphi.
1. Cum fac programul meu să înceapă când încarc un disc în unitate?
Aici ICON.ICO este un fișier cu o pictogramă. Dacă doriți să utilizați pictograma aplicației dvs., trebuie să specificați fișierul aplicației. AUTORUN.EXE - aceasta este aplicația autorun, care va porni atunci când discul este plasat în unitatea CD.
2. Cum pornesc programul de instalare de la autorun?
Pentru a rula programe, utilizați funcția Win32API ShellExecute. Pentru ao folosi, trebuie să conectați modulul ShellAPI la program.
Cod: Selectați toate ShellExecute # 40; hwnd: HWND, lpOperation: LPCTSTR, lpFile: LPCTSTR, lpParameters: LPCTSTR, lpDirectory: LPCTSTR, nShowCmd: INT # 41;: HINSTANCE
De exemplu, pentru a rula notepad.exe, trebuie să executați următorul cod
Cod: Selectați toate ShellExecute # 40; mâner, zero, PChar # 40; 'notepad.exe' # 41;, zero, zero, SW_ShowNormal # 41 ;;
Dacă variabila lpFile conține calea spre director, un explorator cu acest director va fi deschis. Se pot utiliza atât căile absolute cât și cele relative.
3. Cum se fac butoane frumoase de text?
Butoanele frumoase de text pot fi făcute utilizând componenta TLabel. Un efect bun poate fi obținut dacă scoateți fontul Comic Sans MS. Dimensiunea fontului poate fi de asemenea mărită, iar culoarea mai strălucitoare - albastru, roșu.
În cazul OnClick, numim funcția ShellExecute () cu parametrii necesari
Cod: Selectați toate procedurile TForm1.Label1Click # 40; Expeditor: TObject # 41 ;;
începe
ShellExecute # 40; Manipulați, nul, '.. \ progi \ setup.exe', nul, zero, SW_SHOWNORMAL # 41 ;;
se încheie;
La evenimentul OnMouseMove, schimbați culoarea într-una nouă
Cod: Selectați toate procedurile TForm1.Label1MouseMove # 40; Expeditor: TObject; Schimbare: TShiftState; X,
Y: Integer # 41 ;;
începe
Etichetă 1.Font.Color: = clLime;
se încheie;
Și la evenimentul OnLeave schimba culoarea înapoi
Cod: Selectați toate procedurile TForm1. Label 1MouseLeave # 40; Expeditor: TObject # 41 ;;
începe
Etichetă 1.Font.Color: = clYellow;
se încheie;
Când plasați cursorul pe etichetă, schimbați culoarea albastră și faceți stilul de font subliniat.
Cod: Selectați toate procedurile TForm1.Label1MouseMove # 40; Expeditor: TObject; Schimbare: TShiftState; X,
Y: Integer # 41 ;;
începe
Label1.Font.Color: = clBlue;
Label.Font.Style:=#91;fsUnderline#93 ;;
se încheie;
Când cursorul se află în afara etichetei, atunci restaurați culoarea și stilul fontului.
Cod: Selectați toate procedurile TForm1.Label1MouseLeave # 40; Expeditor: TObject # 41 ;;
începe
Label1.Font.Color: = clBlack;
Label.Font.Style:=#91;#93 ;;
se încheie;
5. Cum sa faci design frumos pentru autorun?
În Delphi există o componentă minunată a TImage. Acum voi arăta cum să o folosesc în scopurile noastre.
Să presupunem că aveți o fotografie pe care doriți să o utilizați pentru a decora programul. Trebuie să punem componenta TImage pe o formă curată, în inspectorul de obiecte schimbăm proprietatea Align în alClient. Componenta a fost întinsă peste tot. Acum trebuie să încărcați fotografia. Pentru a face acest lucru, faceți dublu clic pe inspectorul de obiecte din proprietatea imaginii. Va deschide o fereastră în care apăsați butonul Încărcați ... pentru a încărca imaginea în componentă și faceți clic pe OK.
Excelent! Imaginea a apărut. Dar fie imaginea nu este complet vizibilă, fie locuri goale ale formei sunt vizibile. Nu e bine. Pentru a rezolva problema, setați proprietatea Stretch la true. Minunat iese! Dacă nu sunteți mulțumit de ceea ce vedeți, jucați-vă cu proprietățile centrale și proporționale. Numai un avertisment. Nu atingeți proprietatea Transparentă. Se poate produce o frânare semnificativă cu grafică.
6. Cum să eliminați antetul din formular și să stabiliți dimensiunile acestuia?
Pentru a face imposibilă modificarea dimensiunii formei, setați proprietatea BorderStyle la bsDialog, bsNone sau bsSingle. Cu valoarea bsSingle este încă de dorit să setați proprietatea BorderIcons în [].
Dacă ați verificat deja toate modurile BorderStyle, ați observat că atunci când este egal cu bsNone, atunci antetul dispare cu totul. Apoi, dacă utilizați răspunsul la întrebarea 5, puteți obține un rezultat destul de frumos.
7. Dacă formularul nu are un titlu, cum poate fi tras?
De exemplu, puteți trage peste Image1 din întrebarea 5. În secțiunea privată, trebuie să adăugați trei variabile
Cod: Selectați toate privaturile
OldX, OldY: întreg;
Mutarea: Boolean;
Apoi, pentru Image1, trebuie să procesați trei evenimente.
onmousedown:
Cod: Selectați toate dacă butonul = mbLeft începe apoi // Dacă apăsați butonul din stânga, atunci
mișcare: = adevărat; // Trageți statul
OldX: = X; // Amintește-ți X
OldY: = Y; // Ține minte Y
se încheie;
onmousemove:
Cod: Selectați toate dacă se mișcă, apoi începeți // Dacă este în starea de tragere, atunci
Stânga: = Stânga + X-OldX; // Mutare prin X
Sus: = Top + Y-OldY; // Mutare de Y
se încheie;
onmouseup:
Cod: Selectați toate dacă butonul = mbLeft apoi se deplasează: = false; // dacă apăsați butonul din stânga, atunci
// nu trageți
Aceleași funcții pot fi scrise pentru orice altă componentă pe care doriți să o trageți.
8. Dacă pe disc există o mulțime de programe, cum pot să le rulez din listă?
Esența exemplului este după cum urmează. Avem un ListBox1 de tip TListBox. În ea am ciocnit modalități de programare. Dând dublu-clic pe programul dorit, începe. Acest lucru se face foarte simplu.
În handle-ul OnDblClick pentru ListBox1 scriem acest cod.
Cod: Selectați toate procedurile TForm1.ListBox1DblClick # 40; Expeditor: TObject # 41 ;;
var
Nume: String;
începe
Nume: = ListBox1.Items.Strings # 91; ListBox1.ItemIndex # 93 ;;
ShellExecute # 40; Mâner, 'deschis', PChar # 40; Nume # 41;, zero, zero, SW_SHOWNORMAL # 41 ;;
se încheie;
Dacă doriți să afișați numele programelor listbokse, mai degrabă decât spre ea, te poate arunca pe formularul ListBox2, în care este necesar pentru a umple titlul, respectiv căi în ListBox1. Apoi, setați proprietatea ListBox1.Visible la false. Handlerul ListBox1DblClick nu mai este necesar. Acum, puteți scrie Handler-ul OnDblClick pentru ListBox2 în formular.
Cod: Selectați toate procedurile TForm1.ListBox2DblClick # 40; Expeditor: TObject # 41 ;;
var
Nume: String;
începe
Nume: = ListBox1.Items.Strings # 91; ListBox2.ItemIndex # 93 ;;
ShellExecute # 40; Mâner, 'deschis', PChar # 40; Nume # 41;, zero, zero, SW_SHOWNORMAL # 41 ;;
se încheie;
9. Cum se face un acompaniament muzical?
Cel mai convenabil mod de a reda muzica este cu componenta TMediaPlayer.
Aruncați o instanță a TMediaPlayer1 pe formular. Proprietatea sa vizibilă este imediat setată la falsă. În același timp, am pus formularul și CheckBox1. Titlul proprietății este redenumit "Redați muzică". Să presupunem că trebuie să redați fișierul 1.mp3, situat în dosarul de muzică de pe disc.
Apoi, în handlerul OnCreate pentru formular, scrieți acest cod
Cod: Selectați toate încercați
MediaPlayer1.FileName: = '. \ Music \ 1.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
CheckBox1.Checked: = true;
cu excepția
CheckBox1.Enabled: = false;
CheckBox1.Visible: = false;
CheckBox1.Checked: = false;
se încheie;
Aici vom deschide și vom activa redarea fișierului. În cazul în care fișierul nu există sau codec-urile nu sunt instalate în sistem, ascundem CheckBox1 și nu vom pierde nimic.
Dacă fișierul a fost deschis și a început să se joace, utilizatorul ar trebui să aibă posibilitatea de a îl dezactiva, dacă este necesar. Pentru a face acest lucru, scrieți handle-ul OnClick pentru CheckBox1.
Cod: Selectați toate procedurile TForm1.CheckBox1Click # 40; Expeditor: TObject # 41 ;;
începe
dacă CheckBox1.Checked atunci
MediaPlayer1.Play
altfel
MediaPlayer1.Stop;
se încheie;
Timpul tău este limitat, așa că nu o pierde în viața altcuiva.
madrat a scris: Programul în sine.
UPX nu a fost anulat încă.
Da, da. Îmi place mai mult, deși compresia este aceeași. probabil.
Cu respect, Vyacheslav.
Lite a scris (a): deși compresia este aceeași. probabil.
S? Cum este același lucru. Pentru comparație, comprimați unul și același fișier Aspack'om și UPX'om - asigurați-vă că nu același lucru.
E-mail / Jabber: andyeth0.spb.ru / andykorona-auto.com
S-au găsit, despre ce să ne certăm. Ar fi mai bine să scrie niște comentarii.
Este interesant să vorbim despre programe de compresie, deci creați un subiect separat. Apoi, ce fel de persoană va merge și să o văd imediat, aflați că astfel de programe sunt, precum UPX și ASPack. Iar faptul că această chestiune a fost discutată aici, își amintește vryatli. Din nou se pare că doi oameni au spus prostii și au plecat.
2 Eroare fatală: Pot muta ceva în ramura individuală?
Timpul tău este limitat, așa că nu o pierde în viața altcuiva.