unit HiddenText; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TfrmHiddenText = class(TForm) Panel1: TPanel; Button1: TButton; Button2: TButton; Memo1: TMemo; Panel2: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormActivate(Sender: TObject); private { Private declarations } public { Public declarations } end; implementation uses Main, Childwin; {$R *.DFM} // read procedure TfrmHiddenText.Button1Click(Sender: TObject); var ss: TMemoryStream; begin Memo1.Clear; ss := TMemoryStream.Create; with MainForm.ActiveMDIChild as TMDIChild do begin ss.Size := ImageEnView1.Proc.ReadHiddenData(nil, 0); ImageEnView1.Proc.ReadHiddenData(ss.memory, ss.Size); end; Memo1.Lines.LoadFromStream(ss); ss.free; end; // write procedure TfrmHiddenText.Button2Click(Sender: TObject); var ss: TMemoryStream; begin ss := TMemoryStream.Create; Memo1.Lines.SaveToStream(ss); with MainForm.ActiveMDIChild as TMDIChild do ImageEnView1.Proc.WriteHiddenData(ss.memory, ss.size); ss.free; end; procedure TfrmHiddenText.FormActivate(Sender: TObject); begin Memo1.Clear; with MainForm.ActiveMDIChild as TMDIChild do label3.Caption := IntToStr(ImageEnView1.Proc.GetHiddenDataSpace); end; end.