Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 2
Благодарности: 1

Профиль | Отправить PM | Цитировать


R.i.m.s.k.y., спасибо, всё работает)


У меня еще один вопрос. Как в область, которая выделена на изображении, добавить текст?


Вот код
читать дальше »


Цитата:
;-------CD-Key------------

[Messages]
ClickNext=Вы должны ввести серийный номер, чтобы продолжить, или «Отмена», чтобы выйти из программы установки.

; заносим данные в реестр, 1 вариант
[Registry]
Root: HKLM; SubKey: SOFTWARE\Activision\Call of Duty 4; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Activision\Call of Duty 4; ValueType: string; ValueName: codkey; ValueData: {code:edtText}; Flags: uninsclearvalue

[code]
var
edt:array [1..5] of TEdit;
txt: TNewStaticText;
i, e, t: integer;
NewPage: TWizardPage;
lbl: TLabel;
procedure CurPageChanged1(CurPageID: Integer);
begin
if CurPageID = NewPage.ID then
end;


function edtText(s: string): string; //этот вариант, при записи через секцию [Registry]
//function edtText: string; // а этот, если вносить запись через 2 вариант
//var //
// s: string; //
begin
{ получаем текст из edit'ов и присваем переменной s }
for i:= 1 to 5 do begin
s:= s + edt[i].Text;
end;
{ удаляем лишний знак тире в конце строки }
s:= Copy(s, 1, Length(s) - 1);
Result:= s;
end;

//procedure CurStepChanged(CurStep: TSetupStep);
//begin
// { занасим данные в реестр 2 вариант}
// If CurStep = ssDone then
// RegWriteStringValue(HKEY_CURRENT_USER, 'Software\My Program\Settings', 'Serial', edtText);
//end;

//procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
//begin
// { удаляем данные из реестра, 2 вариант
// Здесь надо быть очень внимательным, а то по неосторожности можно удалить весь раздел... }
// If CurUninstallStep = usDone then
// RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\My Program');
//end;

procedure edtKeyPress(Sender: TObject; var Key: Char);
begin
{ здесь попытался реализовать, чтоб курсор автоматом перескакивал на следующий edit при вводе,
но есть косяк, если начать удалять через Backspace, то из-за SetFocus курсор снова перескакивает на уже очищенный edit }
for i:= 1 to 4 do begin

end; end;


procedure SerialPage;
begin
NewPage:= CreateCustomPage(wpWelcome, 'Ввод кюча (CD-key)', 'Ключ диска нужен для игры по интернету');

WizardForm.NextButton.Enabled:= False;
t:= 57;
e:= t;
// создаём Label
lbl:=TLabel.Create(NewPage);
with lbl do begin
Left:= 0;
Top:= 0;
Width:= 417;
Height:= 28;
AutoSize:= False;
WordWrap:= True;
Caption:= 'Введите код, отпечатанный на последней странице обложки Руководства пользователя или на упаковке диска';
Parent:= NewPage.Surface;
end;



// создаём 5 edit'ов
for i:= 1 to 5 do begin
edt[i]:= TEdit.Create(NewPage);
with edt[i] do begin
Parent:= NewPage.Surface;
Left:= 0 + (e*i);
Top:= 47;
Width:= 47;
Height:= 21;
MaxLength:= 4;
OnKeyPress:= @edtKeyPress;

end;
end;
end;



procedure InitializeWizard();
begin
SerialPage;
end;

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:09, 22-12-2010 | #192