Delphi 중류 사용 정보 (1) TMemory Stream (메모리 흐름) 으로 시작하기
1850 단어 Delphi
이른바'흐름'은 데이터나 메모리이다.
흐름 조작을 할 때 우리는 흐름 속의 데이터가 도대체 무엇인지 신경 쓸 필요가 없다.흐름의 크기와 현재의 바늘의 위치만 알면 된다.그래서 흐름은 두 가지 속성만 있다.
Size、Position.
대류 작업은 읽기와 쓰기에 불과하다.그래서 흐르는 가장 중요한 방법은 Read와 Write이다.
많은 컨트롤의 사용에서 주로 LoadFromStream을 사용합니다.쓰기 작업은 주로 SaveToStream 을 사용합니다.
예를 들어 (새 프로젝트를 만들고 두 개의 메모를 추가하고 두 개의 Button을 추가함)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
mStream: TStream; { }
procedure TForm1.FormCreate(Sender: TObject);
begin
mStream := TMemoryStream.Create;
{TStream , ; }
Memo1.Lines.Text := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
{ Memo1 }
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.SaveToStream(mStream); { Memo1 }
ShowMessage(IntToStr(mStream.Size)); {26, }
ShowMessage(IntToStr(mStream.Position)); {26, }
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
mStream.Position := 4; { }
Memo2.Lines.LoadFromStream(mStream); { Memo2}
{
Memo2 : EFGHIJKLMNOPQRSTUVWXYZ
Position 0, Memo2 : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Position Size, 26, Memo2 .
}
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
mStream.Free; { , }
end;
end.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder그리고 꼭 사용해야만 할까? 그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다. "Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다. 결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.