PDA

Просмотр полной версии : Два вопроса по delphi


Delphi-X
01.07.2007, 11:35
Скажите плиз как сделать чтоб на ярлыке был значок мой размеров 16х16 или 32х32.

И еще нужно чтобы на двух полях edit1 edit2 сохранялись введенные тексты при оследующих запусках проги.

Если не трудно напишите код.

Gil
01.07.2007, 11:53
Всмысле значек у какого ярлыка, если у ехе-шника, то
Project-Options-Application-Load Icon. А если те надо чтоб с твоей прогой ассоциировались определенные файлы, они будут с такими же значками - то вот пример кода: (допустим для .txt файла)

var
Reg: Tregistry;
begin
Reg:=Tregistry.Create;
Reg.RootKey:HKEY_CLASSES_ROOT;
Reg.OpenKey('.txt', True);
Reg.WriteString('', 'Text file');
Reg.CloseKey;
Reg.CreateKey('txt"+'file_cyd');
Reg.OpenKey('Textfile\defaulticon', True);
Reg.WriteString('', Application.ExeName + ',0');
Reg.ClodeKey;
Reg.OpenKey('Textfile\shell\open\command', True);
Reg.WriteString('', Application.ExeName + ' "%1"');
Reg.CloseKey;
Reg.Free;
end;

А чтобы сохранялось в эдитах, так можно там же в реестре создать пару ключиков стринговых или же сохранять в файл. Чет мне лень эти коды писать. Поищи в поиске создание/чтение ключей из реестра. ---//--- данных из файла

Gil
01.07.2007, 12:03
var REG : TRegistry;

begin

REG := TRegistry.Create;

REG.RootKey:=HKEY_LOCAL_MACHINE;
REG.OpenKey('YourSoftwareName',true);
REG.WriteString('Edit1.Text',true);
REG.CloseKey;
REG.Destroy;
end;

-------------------//--------------------------

var REG : TRegistry;

begin

REG := TRegistry.Create;

REG.RootKey:=HKEY_LOCAL_MACHINE;
REG.OpenKey('YourSoftwareName',true);
Edit1.Text:=REG.ReadString('Edit1.Text',true);
REG.CloseKey;
REG.Destroy;
end;

Delphi-X
01.07.2007, 13:26
Спасибо зо значком понял и получилось. но с реестром проблеммы:

var
REG : TRegistry;

Показывает как ошибку ((.
Подскажите плиз....

Gil
01.07.2007, 13:40
Ты в uses точно Registry вписал, если честно я код не проверял, буквально щас написал, если хочш напишу проверю на работоспособность

Delphi-X
01.07.2007, 13:47
Уже прописал ))
Теперь со строкой
REG.WriteString('edtLogin.Text',true);
edtLogin = edit1

Gil
01.07.2007, 14:06
Вот 2 процедурки, работает 100%, 1-я записывает в раздел локал_машин - YourSoftwareName - ключ M - значение твоего едита. 2-я баттн читает и всовывает, я думаю сможешь сам это втсавить просто в Form.Activate (просто вместо баттн1.клик).



procedure TForm1.Button1Click(Sender: TObject);
var Reg : Tregistry;

begin

Reg := TRegistry.Create;

Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\YourSoftwareName',true);
Reg.WriteString('M', Edit1.Text);
Reg.CloseKey;
Reg.Destroy;
end;

procedure TForm1.Button2Click(Sender: TObject);
var Reg : Tregistry;
begin
Reg := TRegistry.Create;

Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\YourSoftwareName',true);
Edit1.Text:=Reg.ReadString('M');
Reg.CloseKey;
Reg.Destroy;
end;

end.

Есси не сложно поставь + :)

Delphi-X
01.07.2007, 14:13
Спасиба все пашет....
Насчет + неполучить ((. Его могут ставить те у кого уже есть 1+ а у меня 0 ))
Но незабуду. Как кто-набудь меня отблагодарит то сразу поставлю )) неволнуйся