Ну решил написать статью о создании Builder Открываем delphi 7,создаём простой проект и на форму кинем Edit. В инспекторе объекта Edit ищем Text и вписываем xxxxxxxxxx можете другое написать,не в этом суть,а в количестве х Так как большее количество мы не изменим и программа просто не запустится(то есть,чем больше х тем лучше). кликаем по форме два раза и пише следущий код
function del(soure,simvol:string):string; var i:integer; f:string; begin f:=soure; i:=length(f); while f[i]=simvol do begin delete(f, length(f), 1); dec(i); result:=f; if f='' then exit; end; end; begin Edit1.text:=del( Edit1.text,'x'); end;
этот код удаляет лишние "x" Сохраните проект и компилируйте Назовём полученный файл test.exe
Теперь приступим к созданию билдера,который будет изменять надпись в Edit(xxxxxxxxxx) на нужную нам.
Открываем опять delphi 7 и создаём новый проект.
На форму кинем Edit и Button.
Сохраним проект.В папку с сохранённым проектом кинем ранее созданный text.exe
Там же создадим текстовый документ и напишем:
TEST EXEFILE C:\Users\admin\Desktop\test\test.exe Сохраним его и переименуем в test.rc
Открываем cmd и пишем>brc32.exe C:\\путь до файла\test.rc
У вас получится файл test.res
Открываем наш проект с билдером и находим {$R *.dfm} чуть ниже допишем {$R test.res}
Это мы наш text.exe поместили в ресурсы билдера. Теперь нам нужно прописать его извлечение из ресурсов и замену нашего xxxxxxxxxx
В проекте ниже {$R *.dfm} пишем две процедуры: [HIDE="1"]code: function ExtractRes(ResType, ResName, ResNewName: string): Boolean;
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
try
Res.SavetoFile(ResNewName);
Result := True;
finally
Res.Free;
end;
end;
procedure ReplaceStr(FileName, OldStr, NewStr: String);
var
f: file;
l: Longint;
S: string;
begin
S := OldStr;
AssignFile(f, FileName);
Reset(f, 1);
for l := 0 to FileSize(f) - Length(OldStr) - 1 do
begin
Application.ProcessMessages;
Seek(f, l);
BlockRead(f, OldStr[1], Length(OldStr));
if OldStr = S then
begin
Seek(f, l);
BlockWrite(f, NewStr[1], Length(NewStr));
end;
end;
CloseFile(f);
end; [/hide]
Теперь нажимаем два раза на Button и пишем: [HIDE="1"]code: procedure TForm1.Button1Click(Sender: TObject);
var
StrTest, hTest: String;
begin
StrTest := Edit1.Text;
if StrTest = '' then
begin
ShowMessage('Введите значение');
Exit;
end;
hTest := StrTest + #0;
begin
ExtractRes('EXEFILE', 'TEST', 'test.exe');
ReplaceStr('test.exe', 'xxxxxxxxxx', hTest);
ShowMessage('Готово');
end;
end; [/hide]
Компилируем и проверяем.
|