unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.WordWrap := False;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i, firstline, lastline: Integer;
begin
with Memo1 do
begin
Lines.BeginUpdate; // repaint ¸¦ ±ÝÁöÇÑ´Ù
firstline := Perform(EM_LINEFROMCHAR, SelStart, 0); // ¼±Åà ½ÃÀÛÇà
lastline := Perform(EM_LINEFROMCHAR, SelStart+SelLength, 0); // ¼±Åà ¸¶Áö¸·Çà
for i := lastline downto firstline do
begin
SelStart := Perform(EM_LINEINDEX, i, 0);
SelLength := 0;
// SelText´Â ¼±ÅÃµÈ ¿µ¿ªÀ» ´Ù¸¥ ¹®ÀÚ¿ ¹Ù²Ü¶§ »ç¿ëÇÏ´Â °ÍÀ¸·Î
// ¿©±â¼´Â SelLength °¡ 0 À̹ǷΠ' 'À» »ðÀÔÇÏ¿© µé¿©¾²±â(indent)°¡ µÈ´Ù
SelText := ' ';
end;
Lines.EndUpdate;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i, firstline, lastline: Integer;
begin
with Memo1 do
begin
Lines.BeginUpdate; // repaint ¸¦ ±ÝÁöÇÑ´Ù
firstline := Perform(EM_LINEFROMCHAR, SelStart, 0); // ¼±Åà ½ÃÀÛÇà
lastline := Perform(EM_LINEFROMCHAR, SelStart+SelLength, 0); // ¼±Åà ¸¶Áö¸·Çà
for i := lastline downto firstline do
begin
SelStart := Perform(EM_LINEINDEX, i, 0);
SelLength := 1;
// SelText´Â ¼±ÅÃµÈ ¿µ¿ªÀ» ´Ù¸¥ ¹®ÀÚ¿ ¹Ù²Ü¶§ »ç¿ëÇÏ´Â °ÍÀ¸·Î
// ¿©±â¼´Â SelLength °¡ 1 À̹ǷΠ°ø¹éÀ» »ðÀÔÇÏ¿©(»èÁ¦È¿°ú) ³»¿©¾²±â°¡ µÈ´Ù
SelText := '';
end;
Lines.EndUpdate;
end;
end;
end. |
|