ПредишенСледващото

Често задавани въпроси за създаване на стартиране в Делфи.

1. Как мога да направя моята програма стартира след зареждането на диск в устройството?

Тук ICON.ICO - файл с иконата. Ако искате да използвате икона на кандидатурата си, след това трябва да посочите файла на приложението. Autorun.exe - това е приложение за стартиране, която ще започне като поставите диска в CD-диск.

2. От стартирането си, за да стартирате програмата за инсталиране?

За да стартирате програмата използва Win32API-функция ShellExecute. За да използвате програмата трябва да свържете ShellAPI модул.

Код: Избери всички ShellExecute # 40; hwnd: HWND, lpOperation: LPCTSTR, lpFile: LPCTSTR, lpParameters: LPCTSTR, lpDirectory: LPCTSTR, nShowCmd: INT # 41;: HINSTANCE

Например, за да стартирате notepad.exe, трябва да се изпълнява следния код
Код: Избери всички ShellExecute # 40; дръжка, нула, PChar # 40; "notepad.exe '# 41;, нула, нула, SW_ShowNormal # 41 ;;

Ако променливата lpFile ще съдържа пътя до директорията, тя ще се отвори Windows Explorer с тази директория. Както начини могат да се използват и двете абсолютни и относителни.

3. Как да си направим красиви бутони текстови?

Красиви копчета текстови може да бъде направено с TLabel компоненти. Добър ефект може да се постигне, ако го на шрифта Comic Sans MS сложи. Размер на шрифта може да се направи по-голяма и по-ярка цвят, за да се направи - синьо, червено.

Събитие OnClick извикате функцията ShellExecute () с желаните параметри
Код: Избери всички процедура TForm1.Label1Click # 40; Sender: TObject # 41 ;;
започвам
ShellExecute # 40; Дръжка, нула, ".. \ progi \ setup.exe", нула, нула, SW_SHOWNORMAL # 41 ;;
приключи;

Събитие OnMouseMove промените цвета на нов
Код: Избери всички процедура TForm1.Label1MouseMove # 40; Sender: TObject; Shift: TShiftState; X,
Y: цяло число # 41 ;;
започвам
Етикет 1.Font.Color: = clLime;
приключи;

А OnLeave събитие променя цвета назад
Код: Избери всички процедура TForm1. Етикет 1MouseLeave # 40; Sender: TObject # 41 ;;
започвам
Етикет 1.Font.Color: = clYellow;
приключи;

Когато мишката върху етикета промените цвета към син и стила на шрифта направи преувеличени.

Код: Избери всички процедура TForm1.Label1MouseMove # 40; Sender: TObject; Shift: TShiftState; X,
Y: цяло число # 41 ;;
започвам
Label1.Font.Color: = clBlue;
Label.Font.Style:=#91;fsUnderline#93 ;;
приключи;

Когато курсорът е извън етикета, а след това се възстанови цвета и стила на шрифта.
Код: Избери всички процедура TForm1.Label1MouseLeave # 40; Sender: TObject # 41 ;;
започвам
Label1.Font.Color: = clBlack;
Label.Font.Style:=#91;#93 ;;
приключи;


5. Как да си направим красив дизайн за стартиране?

В Делфи, е прекрасно компонент TImage. Сега ще ви покажем как да го използваме за нашите цели.

Да кажем, че имате снимка, която искате да използвате за украса на програмата. Да бъдат пуснати на чиста форма на компонента TImage, в инспектора на Object промени Align имот да alClient. Компонент опъната през формата. Сега трябва да се качите изображение. За да направите това, щракнете двукратно върху инспектор на обекта за имот картина. Това отваря прозорец, в който кликване Load ... да се зареди изображението в компонента и кликнете OK.

Отличен! Имаше една снимка. Но картината не е напълно видими, или видима форма на празните места. Това не е добре. За решаване на проблема зададете Stretch имота да е вярно. Чудните листа! Ако не ви харесва това, което виждате, играе с качествата на център и пропорционална. Само едно предупреждение. Не докосвайте Прозрачен собственост. Възможно е да имате значителни спирачни графика.

6. Как да премахнете и заглавката от формата и размера правят го поправя?

За да размер формата не може да се променя, това ще постави BorderStyle имота bsDialog, bsNone или bsSingle. Ако стойността е по-желателно bsSingle BorderIcons имот избран [].

Ако вече сте проверили всички режими BorderStyle, ще забележите, че когато тя е равна на bsNone, заглавната изчезва. След това, ако използвате отговора на въпрос 5, можете да получите доста хубав резултат.

7. Ако няма форма с глава, тъй като може плъзнете мишката?

Например, можете да плъзнете вън от въпроса за Image1 5. В частния необходимостта да се добави три променливи
Код: Избери всички частни
OldX, OldY: цяло число;
Преместването: Булева;

Тогава Image1 трябва да се справят с три събития.

OnMouseDown:
Код: Избери всички ако бутон = mbLeft след това да започне // Ако е натиснат левия бутон, за
преместване: = вярно; // Статус завличане
OldX: = X; // Не забравяйте X
OldY: = Y; // Запомни Y
приключи;
OnMouseMove:
Код: Избери всички, ако се движи след това да започне // Ако сте в състояние да влачите и пускате, а след това
Ляво: = Ляв + X-OldX; // Преместване на X
Горе: = Top + Y-OldY; // Преместете Y
приключи;
OnMouseUp:
Код: Избери всички ако бутон = mbLeft след това се движат: = неверни; // ако се натисне бутона ляво, на
// не влача

Същите функции могат да бъдат написани на всеки друг компонент, за който искате да плъзнете.

8. Ако дискът има много програми, както можете да ги управляват от списъка?

Същността на такъв пример. Имаме тип ListBox1 TListBox. Тя изкован пътя към програмата. С двойно кликване върху желаната програма да се изпълнява. Достатъчно е просто.

В OnDblClick манипулатор за ListBox1 пиша този код.
Код: Избери всички процедура TForm1.ListBox1DblClick # 40; Sender: TObject # 41 ;;
Var
Име: String;
започвам
Име: = ListBox1.Items.Strings # 91; ListBox1.ItemIndex # 93 ;;
ShellExecute # 40; Дръжка, "отворен", PChar # 40; # Името на 41;, нула, нула, SW_SHOWNORMAL # 41 ;;
приключи;

Ако искате да се показват името на listbokse програми, а не към това, което може да хвърли по форма ListBox2 на, в които е необходимо да се запълни титлата, съответно пътища в ListBox1. Тогава ListBox1.Visible собственост е настроена да лъжа. ListBox1DblClick манипулатор вече не е необходимо. Сега можете да напишете манипулатор за OnDblClick ListBox2 във формата.
Код: Избери всички процедура TForm1.ListBox2DblClick # 40; Sender: TObject # 41 ;;
Var
Име: String;
започвам
Име: = ListBox1.Items.Strings # 91; ListBox2.ItemIndex # 93 ;;
ShellExecute # 40; Дръжка, "отворен", PChar # 40; # Името на 41;, нула, нула, SW_SHOWNORMAL # 41 ;;
приключи;


9. Как се прави музика?

Възпроизвеждане на музика най-удобният TMediaPlayer компонент.

Kinema в форма модел TMediaPlayer1. Неговата видима имот директно инсталирана в лъжа. В същото време постави на формата и CheckBox1. Той Надпис имот за преименуване на "Play музиката." Да кажем, че трябва да играе 1.mp3 на файла, който се намира в папката музика на диска.

След това в OnCreate манипулатор за формата, моля, напиши следния код
Код: Избери всички опитате
MediaPlayer1.FileName: =; '\ музика \ 1.mp3 ".
MediaPlayer1.Open;
MediaPlayer1.Play;
CheckBox1.Checked: = вярно;
с изключение на
CheckBox1.Enabled: = фалшива;
CheckBox1.Visible: = фалшива;
CheckBox1.Checked: = фалшива;
приключи;

След това отворете файла и включване на пиесата. В този случай, ако файлът не съществува или вече не е инсталиран кодеци, ние се скрие CheckBox1 и нищо няма да се възпроизведе.

Ако, обаче, когато файлът е бил успешно се отвори и започна да играе, потребителят трябва да бъде дадена възможност да го изключите, ако е необходимо. За да направите това, ние напише OnClick манипулатор за CheckBox1.
Код: Избери всички процедура TForm1.CheckBox1Click # 40; Sender: TObject # 41 ;;
започвам
ако CheckBox1.Checked след това
MediaPlayer1.Play
още
MediaPlayer1.Stop;
приключи;

Времето ви е ограничено, така че не го губете на някой друг живот.

madrat написал (а): Самата програма.


UPX не е бил отменен.


Е, да. Аз го харесвам повече, макар че в същото компресията. вероятно.

С уважение, Вячеслав.

Lite е написал (а): въпреки че компресията на един и същ. вероятно.


S? Тъй като това е едно и също нещо. За сравнение свиване един и същи файл и ASPACK'om UPX'om - Уверете се, че не е едно и също нещо.

Имейл / Jabber: andyeth0.spb.ru / andykorona-auto.com

Ние не намери нищо, за да спорим за. Би било по-добре всички писмени забележки.

Интересно е да се говори за компресия софтуер, така че да създадете отделна тема. Тогава някои хора ще отидат и да я видят веднага, той знае, че такава програма е, както UPX и ASPack. А фактът, че този въпрос се обсъжда, това vryatli помня. Отново се оказва, двамата мъже заявиха, глупости, и на разстояние и да отидем.

2Fatal Грешка: Може ли всичко, което се отнася до компресия, да се премести в отделна нишка?

Времето ви е ограничено, така че не го губете на някой друг живот.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!