Q&A

  • 델파이 소스설명좀 부탁드려요.. 제발...
안녕하세요 ^^



직장다니면서 학교를 다니는 학생인데요... 교수님께서 시험을 레포트로 내주셨는데...



델파이를 첨 접해봤는데.. 아무리 봐두 잘 모르겠네요..



무슨 프로그래밍에 대한 주석을 달아서 설명하라구 하셨는데... 무슨소린지두 모릅니다..



이거 회사를 그만두던가 해야지...



조금만 부탁드립니다...그럼 안녕히 계세요.. 꾸벅 ^^



unit editor1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ComCtrls, ToolWin, StdCtrls, Menus, ImgList, ClipBrd;



type

TForm1 = class(TForm)

ImageList1: TImageList;

MainMenu1: TMainMenu;

F1: TMenuItem;

E1: TMenuItem;

N1: TMenuItem;

O1: TMenuItem;

S1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

F2: TMenuItem;

RichEdit1: TRichEdit;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

N8: TMenuItem;

X1: TMenuItem;

StatusBar1: TStatusBar;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

N9: TMenuItem;

PrintDialog1: TPrintDialog;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

ToolButton8: TToolButton;

ToolButton9: TToolButton;

ToolButton10: TToolButton;

FindDialog1: TFindDialog;

procedure X1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure O1Click(Sender: TObject);

procedure S1Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure F2Click(Sender: TObject);

procedure FindDialog1Find(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure RichEdit1SelectionChange(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

procedure ToolButton5Click(Sender: TObject);

procedure ToolButton4Click(Sender: TObject);

procedure ToolButton7Click(Sender: TObject);

procedure ToolButton8Click(Sender: TObject);

procedure ToolButton9Click(Sender: TObject);

procedure ToolButton10Click(Sender: TObject);

private

My_Start : integer;

procedure Info_Clip;

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}



procedure TForm1.Info_Clip;

begin

if Clipboard.HasFormat(CF_TEXT) = True then

begin



N4.Enabled := False;

ToolButton7.Enabled := False;



N5.Enabled := False;

ToolButton8.Enabled := False;



N6.Enabled := True;

ToolButton9.Enabled := True;

end

else

begin

N4.Enabled := False;

ToolButton7.Enabled := False;

N5.Enabled := False;

ToolButton8.Enabled := False;

N6.Enabled := False;

ToolButton9.Enabled := False;

end;

end;



procedure TForm1.X1Click(Sender: TObject);

begin

Close;

end;



procedure TForm1.FormCreate(Sender: TObject);

begin

Info_Clip;

My_Start := 0;

RichEdit1.Lines.Text :='';

StatusBar1.Panels[1].Text := 'noname01.rtf';

end;



procedure TForm1.N1Click(Sender: TObject);

begin

RichEdit1.Lines.Text :='';

StatusBar1.Panels[1].Text := 'noname01.rtf';

end;





procedure TForm1.O1Click(Sender: TObject);

var

File_Name : String;

begin



if OpenDialog1.Execute then

begin

File_Name := OpenDialog1.FileName;

StatusBar1.Panels[1].Text := File_Name;

RichEdit1.Lines.LoadFromFile(File_Name);

end;

end;



procedure TForm1.S1Click(Sender: TObject);

var

File_Name : String;

begin

File_Name := StatusBar1.Panels[1].Text;



if (RichEdit1.Text = '') then

ShowMessage('입력된 문장이 없으면 저장할 수 없습니다.')

else



RichEdit1.Lines.SaveToFile(File_Name);



end;



procedure TForm1.N9Click(Sender: TObject);

var

File_Name : String;

begin



if SaveDialog1.Execute then

begin

SaveDialog1.Title := '다른이름으로 저장';

File_Name := SaveDialog1.FileName;

end;



end;



procedure TForm1.N3Click(Sender: TObject);

begin



if PrintDialog1.Execute then

RichEdit1.Print(RichEdit1.Text);



end;



procedure TForm1.F2Click(Sender: TObject);

begin

RichEdit1.SelStart := My_Start;



FindDialog1.Execute;

end;



procedure TForm1.FindDialog1Find(Sender: TObject);

var

Len : integer;

Str : string;

begin

Len := Length(FindDialog1.FindText);

Str := FindDialog1.FindText;

RichEdit1.SelStart := RichEdit1.findtext(Str, RichEdit1.SelStart,

length(RichEdit1.Text),[]);

RichEdit1.SelLength := Len;



if RichEdit1.SelStart >= length(RichEdit1.Text) then

begin

ShowMessage('더이상 찾을 자료가 없습니다.');

RichEdit1.SelLength := 0;

My_Start := 0;

end

else My_Start := RichEdit1.SelStart + Len;





FindDialog1.CloseDialog;

end;



procedure TForm1.N4Click(Sender: TObject);

begin



RichEdit1.CutToClipboard;

end;



procedure TForm1.N6Click(Sender: TObject);

begin



RichEdit1.PasteFromClipboard;

end;



procedure TForm1.N5Click(Sender: TObject);

begin



RichEdit1.CopyToClipboard;

end;



procedure TForm1.RichEdit1SelectionChange(Sender: TObject);

begin

if RichEdit1.SelLength > 0 then

begin

N4.Enabled := True;

ToolButton7.Enabled := True;

N5.Enabled := True;

ToolButton8.Enabled := True;

N6.Enabled := False;

ToolButton9.Enabled := False;

end

else

Info_Clip;

end;



procedure TForm1.ToolButton1Click(Sender: TObject);

begin



N1Click(Sender);

end;



procedure TForm1.ToolButton2Click(Sender: TObject);

begin



O1Click(Sender);

end;



procedure TForm1.ToolButton3Click(Sender: TObject);

begin



S1Click(Sender);

end;



procedure TForm1.ToolButton5Click(Sender: TObject);

begin



N3Click(Sender);

end;



procedure TForm1.ToolButton4Click(Sender: TObject);

begin



N9Click(Sender);

end;



procedure TForm1.ToolButton7Click(Sender: TObject);

begin



N4Click(Sender);

end;



procedure TForm1.ToolButton8Click(Sender: TObject);

begin



N5Click(Sender);



end;



procedure TForm1.ToolButton9Click(Sender: TObject);

begin



N6Click(Sender);

end;



procedure TForm1.ToolButton10Click(Sender: TObject);

begin



F2Click(Sender);

end;



end.





1  COMMENTS
  • Profile
    탁발승 2001.10.23 00:38
    이건여....-_______-;

    교수님이 아마 레포트내는게 귀찮으셨던거 같은데....

    델파이 5 30일완성이라는 책의230~247페이지의 에디터 만들기와 동일한거 같네염....

    제가 책을 대충봤는데....거기에 있는거 같습니다.....

    영진 출판사 꺼구염....

    메모장보다는 좀 기능이 많구 워드패드보다는 좀 기능이 적은 겁니다.

    info_clip라는 프로시져하나 만들었구.....

    기타.....툴바사용해서 툴버튼 기능 넣었구....

    메인메뉴컴퍼넌트 사용했구.....등등....-_-;

    에궁...중간에 쓰다가 포기입니다......대충적을려구 했는데.....일일이 쓰기두 힘들구...아무래도 님의 숙제니깐...^^; 참고하시구 ....열심히 하셈..........

    책한번 찾아보셈....-_-;





    궁금이 wrote:

    > 안녕하세요 ^^

    >

    > 직장다니면서 학교를 다니는 학생인데요... 교수님께서 시험을 레포트로 내주셨는데...

    >

    > 델파이를 첨 접해봤는데.. 아무리 봐두 잘 모르겠네요..

    >

    > 무슨 프로그래밍에 대한 주석을 달아서 설명하라구 하셨는데... 무슨소린지두 모릅니다..

    >

    > 이거 회사를 그만두던가 해야지...

    >

    > 조금만 부탁드립니다...그럼 안녕히 계세요.. 꾸벅 ^^

    >

    > unit editor1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > ComCtrls, ToolWin, StdCtrls, Menus, ImgList, ClipBrd;

    >

    > type

    > TForm1 = class(TForm)

    > ImageList1: TImageList;

    > MainMenu1: TMainMenu;

    > F1: TMenuItem;

    > E1: TMenuItem;

    > N1: TMenuItem;

    > O1: TMenuItem;

    > S1: TMenuItem;

    > N2: TMenuItem;

    > N3: TMenuItem;

    > N4: TMenuItem;

    > N5: TMenuItem;

    > N6: TMenuItem;

    > N7: TMenuItem;

    > F2: TMenuItem;

    > RichEdit1: TRichEdit;

    > ToolBar1: TToolBar;

    > ToolButton1: TToolButton;

    > ToolButton2: TToolButton;

    > ToolButton3: TToolButton;

    > ToolButton4: TToolButton;

    > N8: TMenuItem;

    > X1: TMenuItem;

    > StatusBar1: TStatusBar;

    > OpenDialog1: TOpenDialog;

    > SaveDialog1: TSaveDialog;

    > N9: TMenuItem;

    > PrintDialog1: TPrintDialog;

    > ToolButton5: TToolButton;

    > ToolButton6: TToolButton;

    > ToolButton7: TToolButton;

    > ToolButton8: TToolButton;

    > ToolButton9: TToolButton;

    > ToolButton10: TToolButton;

    > FindDialog1: TFindDialog;

    > procedure X1Click(Sender: TObject);

    > procedure FormCreate(Sender: TObject);

    > procedure N1Click(Sender: TObject);

    > procedure O1Click(Sender: TObject);

    > procedure S1Click(Sender: TObject);

    > procedure N9Click(Sender: TObject);

    > procedure N3Click(Sender: TObject);

    > procedure F2Click(Sender: TObject);

    > procedure FindDialog1Find(Sender: TObject);

    > procedure N4Click(Sender: TObject);

    > procedure N6Click(Sender: TObject);

    > procedure N5Click(Sender: TObject);

    > procedure RichEdit1SelectionChange(Sender: TObject);

    > procedure ToolButton1Click(Sender: TObject);

    > procedure ToolButton2Click(Sender: TObject);

    > procedure ToolButton3Click(Sender: TObject);

    > procedure ToolButton5Click(Sender: TObject);

    > procedure ToolButton4Click(Sender: TObject);

    > procedure ToolButton7Click(Sender: TObject);

    > procedure ToolButton8Click(Sender: TObject);

    > procedure ToolButton9Click(Sender: TObject);

    > procedure ToolButton10Click(Sender: TObject);

    > private

    //변수 선언

    > My_Start : integer;

    > procedure Info_Clip;

    > { Private declarations }

    > public

    > { Public declarations }

    > end;

    >

    > var

    > Form1: TForm1;

    >

    > implementation

    >

    > {$R *.DFM}

    //사용자 프로시져.....클립보드에 들어 있는 내용이 텍스트인지 확인

    > procedure TForm1.Info_Clip;

    > begin

    텍스트이면 n4,n5,n6비활성화

    툴버튼7,8,9번 비활성화

    > if Clipboard.HasFormat(CF_TEXT) = True then

    > begin

    >

    > N4.Enabled := False;

    > ToolButton7.Enabled := False;

    >

    > N5.Enabled := False;

    > ToolButton8.Enabled := False;

    >

    > N6.Enabled := True;

    > ToolButton9.Enabled := True;

    > end

    > else

    > begin

    > N4.Enabled := False;

    > ToolButton7.Enabled := False;

    > N5.Enabled := False;

    > ToolButton8.Enabled := False;

    > N6.Enabled := False;

    > ToolButton9.Enabled := False;

    > end;

    > end;



    x1클릭하면 종료시킴....

    > procedure TForm1.X1Click(Sender: TObject);

    > begin

    > Close;

    > end;

    >

    폼이 실행될때 초기화

    > procedure TForm1.FormCreate(Sender: TObject);

    > begin

    > Info_Clip;

    > My_Start := 0;

    > RichEdit1.Lines.Text :='';

    > StatusBar1.Panels[1].Text := 'noname01.rtf';

    > end;

    >

    에디터화면을 공백으로 초기화

    스태투스바에 noname01.rtf로 출력

    > procedure TForm1.N1Click(Sender: TObject);

    > begin

    > RichEdit1.Lines.Text :='';

    > StatusBar1.Panels[1].Text := 'noname01.rtf';

    > end;

    >

    >

    파일열기 대화상자를 실행..

    > procedure TForm1.O1Click(Sender: TObject);

    > var

    > File_Name : String;

    > begin

    >

    > if OpenDialog1.Execute then

    > begin

    > File_Name := OpenDialog1.FileName;

    > StatusBar1.Panels[1].Text := File_Name;

    > RichEdit1.Lines.LoadFromFile(File_Name);

    > end;

    > end;

    >

    > procedure TForm1.S1Click(Sender: TObject);

    > var

    > File_Name : String;

    > begin

    > File_Name := StatusBar1.Panels[1].Text;

    >

    > if (RichEdit1.Text = '') then

    > ShowMessage('입력된 문장이 없으면 저장할 수 없습니다.')

    > else

    >

    > RichEdit1.Lines.SaveToFile(File_Name);

    >

    > end;

    >

    > procedure TForm1.N9Click(Sender: TObject);

    > var

    > File_Name : String;

    > begin

    >

    > if SaveDialog1.Execute then

    > begin

    > SaveDialog1.Title := '다른이름으로 저장';

    > File_Name := SaveDialog1.FileName;

    > end;

    >

    > end;

    >

    > procedure TForm1.N3Click(Sender: TObject);

    > begin

    >

    > if PrintDialog1.Execute then

    > RichEdit1.Print(RichEdit1.Text);

    >

    > end;

    >

    > procedure TForm1.F2Click(Sender: TObject);

    > begin

    > RichEdit1.SelStart := My_Start;

    >

    > FindDialog1.Execute;

    > end;

    >

    > procedure TForm1.FindDialog1Find(Sender: TObject);

    > var

    > Len : integer;

    > Str : string;

    > begin

    > Len := Length(FindDialog1.FindText);

    > Str := FindDialog1.FindText;

    > RichEdit1.SelStart := RichEdit1.findtext(Str, RichEdit1.SelStart,

    > length(RichEdit1.Text),[]);

    > RichEdit1.SelLength := Len;

    >

    > if RichEdit1.SelStart >= length(RichEdit1.Text) then

    > begin

    > ShowMessage('더이상 찾을 자료가 없습니다.');

    > RichEdit1.SelLength := 0;

    > My_Start := 0;

    > end

    > else My_Start := RichEdit1.SelStart + Len;

    >

    >

    > FindDialog1.CloseDialog;

    > end;

    >

    > procedure TForm1.N4Click(Sender: TObject);

    > begin

    >

    > RichEdit1.CutToClipboard;

    > end;

    >

    > procedure TForm1.N6Click(Sender: TObject);

    > begin

    >

    > RichEdit1.PasteFromClipboard;

    > end;

    >

    > procedure TForm1.N5Click(Sender: TObject);

    > begin

    >

    > RichEdit1.CopyToClipboard;

    > end;

    >

    > procedure TForm1.RichEdit1SelectionChange(Sender: TObject);

    > begin

    > if RichEdit1.SelLength > 0 then

    > begin

    > N4.Enabled := True;

    > ToolButton7.Enabled := True;

    > N5.Enabled := True;

    > ToolButton8.Enabled := True;

    > N6.Enabled := False;

    > ToolButton9.Enabled := False;

    > end

    > else

    > Info_Clip;

    > end;

    >

    > procedure TForm1.ToolButton1Click(Sender: TObject);

    > begin

    >

    > N1Click(Sender);

    > end;

    >

    > procedure TForm1.ToolButton2Click(Sender: TObject);

    > begin

    >

    > O1Click(Sender);

    > end;

    >

    > procedure TForm1.ToolButton3Click(Sender: TObject);

    > begin

    >

    > S1Click(Sender);

    > end;

    >

    > procedure TForm1.ToolButton5Click(Sender: TObject);

    > begin

    >

    > N3Click(Sender);

    > end;

    >

    > procedure TForm1.ToolButton4Click(Sender: TObject);

    > begin

    >

    > N9Click(Sender);

    > end;

    >

    > procedure TForm1.ToolButton7Click(Sender: TObject);

    > begin

    >

    > N4Click(Sender);

    > end;

    >

    > procedure TForm1.ToolButton8Click(Sender: TObject);

    > begin

    >

    > N5Click(Sender);

    >

    > end;

    >

    > procedure TForm1.ToolButton9Click(Sender: TObject);

    > begin

    >

    > N6Click(Sender);

    > end;

    >

    > procedure TForm1.ToolButton10Click(Sender: TObject);

    > begin

    >

    > F2Click(Sender);

    > end;

    >

    > end.

    >

    >