|
*** Unit1.Cpp ***
//---------------------------------------------------------------------------
// 기 능 : Edit에서 일력한 내용을 Memo1에 역순으로 추가한다.
// 추가시 Memo1의 Line수가 Limit보다 크면 가장 나중에 입력된
// 내용을 Memo1에서 제거한다.
// 작 성 일 : 2003-11-29
// 작 성 자 : 김용수
// 설 명 : 특별한 설명할 부분이 없어 보입니다. 다만 ① File 추가부분과
// ② Memo1에 추가하는 부분을 별개로 처리하는 것이 복잡도를
// 줄일 수 있음으로 ①과 ②를 별도로 처리할 것을 권장합니다.
// 참, TMemo는 Windows 객체로 OS에 따라 편집 정도가 다릅며,
// 모는 Windows계열의 OS에서 사용할 수 있도록 하시려면 가장 작은
// 편집 용량을 가진 OS(예: Windows 95 등)에 맞추시는게 좋을 듯 합니다.
// 참고로 Windows 95의 경우 64K 이하(Line 수보단 전체 용량이 그 크기를
// 좌우하며, 실제 용량은 이보다 더 적음)로 제한 하시면 좋을 듯 합니다.
// 질 문 : void TMain::Write()
// {
// MemoM1->SelStart = 0;
// MemoM1->Lines->Add(str1);
// MemoM1->Lines->Add(str);
// }
// 위와 같이 쓰면 위 함수를 호출할때마다
// 메모장맨위에 글을 쓰고 이전에 썼던글은 아래로 내려왔으면 합니다.
// 즉, 나중에 쓴글이 항상 매모장의 맨위에 위치 할수 있도록 하고 싶습니다.
// 그리고,메모장의 한계가 어느정도인지 알고 싶습니다.
// 한 몇라인정도인지가 궁금합니다.
// 왜냐하면 어느정도 차이게 되면 화일로 관리할려고 합니다.
// 그리고, 화일관리를 할때 어느 정도 사이즈가 차면 그전에
// 메모리장에 출력된내용은 화일로 저장할려면 어떻게 하면 되나여?
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if(Key == '\r') {
int nMax = 50;
int nCnt;
AnsiString asStr = Edit1->Text;
Key = '\0';
//-------------------------------------------------
// asStr를 Text File에 추가하는 부분을 아래에 추가 .... ①
// ...
//-------------------------------------------------
// asStr를 Memo1에 추가하기 ............................ ②
Memo1->Lines->Insert( 0, asStr );
nCnt = Memo1->Lines->Count;
while( nCnt > nMax ) {
Memo1->Lines->Delete( --nCnt );
}
}
}
//---------------------------------------------------------------------------
*** Unit1.h ***
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *Edit1;
TMemo *Memo1;
void __fastcall Edit1KeyPress(TObject *Sender, char &Key);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
*** Unit1.dfm ***
object Form1: TForm1
Left = 252
Top = 108
Width = 603
Height = 366
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Edit1: TEdit
Left = 0
Top = 0
Width = 595
Height = 21
ImeName = '한국어(한글) (MS-IME98)'
TabOrder = 0
OnKeyPress = Edit1KeyPress
end
object Memo1: TMemo
Left = 0
Top = 24
Width = 595
Height = 315
ImeName = '한국어(한글) (MS-IME98)'
TabOrder = 1
end
end
====================================================================
초보 님이 쓰신 글 :
: void TMain::Write()
: {
: MemoM1->SelStart = 0;
: MemoM1->Lines->Add(str1);
: MemoM1->Lines->Add(str);
: }
: 위와 같이 쓰면 위 함수를 호출할때마다
: 메모장맨위에 글을 쓰고 이전에 썼던글은 아래로 내려왔으면 합니다.
: 즉, 나중에 쓴글이 항상 매모장의 맨위에 위치 할수 있도록 하고 싶습니다.
: 그리고,메모장의 한계가 어느정도인지 알고 싶습니다.
: 한 몇라인정도인지가 궁금합니다.
: 왜냐하면 어느정도 차이게 되면 화일로 관리할려고 합니다.
: 그리고, 화일관리를 할때 어느 정도 사이즈가 차면 그전에
: 메모리장에 출력된내용은 화일로 저장할려면 어떻게 하면 되나여?
:
|