Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.09.2008, 07:55
AlexandeR AlexandeR вне форума
Прохожий
 
Регистрация: 19.09.2008
Сообщения: 7
Репутация: 10
По умолчанию Помогите с билдером

Подскажите как сделать программу что-бы когда пользователь вводит в Edit1 и нажимаем на кнопку ОК, то создается программа где в Edit написан тот текст, которой пользователь писал в билреде
Ответить с цитированием
  #2  
Старый 20.09.2008, 13:17
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Самый простой вариант.
Т.к тебе необходимо вписать строку в исполняемый файл можно поступить следующим образом, просто напросто вписав ее в конец исполняемого файла. Вот как это можно сделать.
Код:
var Dest:TMemoryStream;
  Text:ShortString;
begin
  Dest:=TMemoryStream.Create;
  Dest.LoadFromFile('Имя исполняемого файла');
  Dest.Position:=Dest.Size;
  Dest.Write(Text,$FF);
  Dest.SaveToFile('Имя куда следует сохранить');
  Dest.Free;
end;
Чтобы полученный экзешник мог прочесть эту инфу
Код:
var _Self:TFileStream;
  Text:ShortString;
begin
  _Self:=TFileStream.Create(Application.Exename,fmOpenRead);
  _Self.Position:=_Self.Size-$FF;//это важно
  _Self.Read(Text,$FF);
  _Self.Free;
  SHowMessahe(Text);
end;
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 28.09.2008, 05:49
AlexandeR AlexandeR вне форума
Прохожий
 
Регистрация: 19.09.2008
Сообщения: 7
Репутация: 10
По умолчанию

Что-бы не создавать новую тему хочю задать еще один вопрос:
билдер:
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
 fileName  :string;                //иия файла
 mes      :string;                 //112
 f         :thandle;
 fils      :integer;
 BytesRead :DWORD;
 c         :byte;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
filename:= '1.exe';
mes:= Edit1.Text;
f:=fileopen(fileName,fmOpenReadWrite);
fils:=Windows.GetFileSize(f,nil);

 c:=ord(char(pchar(mes[1])));             //патчим первий символ
 SetFilePointer(f, $3B81C, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

 c:=ord(char(pchar(mes[2])));             //патчим второй (2) символ
 SetFilePointer(f, $3B81D, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

 c:=ord(char(pchar(mes[3])));             //патчим 3 символ
 SetFilePointer(f, $3B81E, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

 c:=ord(char(pchar(mes[4])));             //патчим 4 символ;
 SetFilePointer(f, $3B81F, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

 c:=ord(char(pchar(mes[5])));             //патчим 5 символ
 SetFilePointer(f, $3B820, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

 c:=ord(char(pchar(mes[6])));             //патчим 6 символ
 SetFilePointer(f, $3B821, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

 c:=ord(char(pchar(mes[7])));             //патчим 7 символ
 SetFilePointer(f, $3B822, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

 c:=ord(char(pchar(mes[8])));             //патчим 8 символ
 SetFilePointer(f, $3B823, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

 c:=ord(char(pchar(mes[9])));             //патчим 9 символ
 SetFilePointer(f, $3B824, nil, 0);
 WriteFile(f, c, SizeOf(c), BytesRead, nil);

FileClose(f);
end;

end.
------------------
Файл:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

Я хотел что-бы Edit можно было менять. Пользовался программой WinHex. Вопрос; почему Edit не меняет текст
_____________________
M.A.D.M.A.N., можно пожалуйста немного поподробней, я в Delphi новичек, поэтому почти не че не понял
Ответить с цитированием
  #4  
Старый 28.09.2008, 09:19
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Потому что в коде Unit1 нет никакого кода, я билдер делал на вписании инфы в хвост проги, а не на изменении свойст объекта, в твоем случае придется менять чексумм иначе прга вывалит критическую ошибку.

и я так и не понял зачем ты патцищ символы?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:52.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter