유수입니다.
답변에 대한 약간의 부연 설명이 필요 한것 같군요.
답변을 명료하게 하기 위해 SDI를 기준으로 하겠습니다.
먼저 FileName은 전역변수 String형입니다.
String FileName;
화일을 오픈하는 순간, 오픈 다이알로그에서 받은 화일명을 FileName이라는
전역 변수에 넣어줍니다.
요렇게요.
void FileOpen()
{
if (OpenDialog1->Execute()){
FileName = OpenDialog1->FileName;
RichEdit1->LoadFromFile(FileName);
// 이때 리치에디트의 Modified 프로퍼티를 False로 셋팅합니다.
RichEdit1->Modified = False;
}
}
그런데 새 화일을 만들때는 이렇게 합니다.
void FileNew()
{
FileName = "Noname";
RichEdit1->Clear();
RichEdit1->Modified = False;
}
그리고, 저장할때는 다음과 같이 합니다.
void FileSave()
{
// 현재 새화일로 만든어 편집한 상태이기 때문에 Save Dialoge를 띄우고
// 화일명을 입력받습니다.
if (FileName == "Noname") {
if (SaveDialoge1->Execute())
{
FileName = SaveDialoge1->FileName;
RichEdit1->SaveToFile(FileName);
RichEdit1->Modified = False;
}
}
// 이미 저장했거나, 존재하고 있는 화일을 불러와 편집중이었다면
// 그냥 세이브 다이얼 로그를 띄울 필요없이 저장해 버립니다.
else
{
RichEdit1->SaveToFile(FileName);
RichEdit1->Modified = False;
}
}
에고... 델을 주로 쓰는 관계로 문법에 약간의 실수가 있을 수 있습니다.
그럼...
흐르는 물 유수~
|