제가 델파이 시작한지 얼마 되지 않아소리....
엑셀 파일을 열어서 내용을 읽어오구... 다시 닫을려구 하는데염... 실행은 잘 되는데... 메모리를 잡구 있어서... 나중엔 메모리가 모자라다는 에러나 나거든염... 어떻게 하면 메모리를 완전하게 해제를 할수 있을까요....
이런 방법 말구.. 다른 방법이 있으면 알려주세염....
화면에 보일 필요는 없구염.. 구냥 내부적으러 빨리 처리를 할수 있으면 좋구여..
윈98에서 사용해야 하거든염... 웅... 오디 좋은 방법이 없을까요...
아래는 소스 입니다...
procedure TBarCodeProcess.ExcelLoad(); // 파일에서 엑셀 내용 불러오기
var
AllFileName : String; // 엑셀 경로와 파일 이름 저장할변수
ArCnt : integer;
Temp : String;
ASheets : Sheets;
WorkBks : WorkBooks;
begin
AllFileName := AllPath + 'ExcelData' + GLineName + '' + GPCBName; // 열 엑셀파일
WorkBks := ExApp.WorkBooks;
ExWkbook.ConnectTo(WorkBks.Add(AllFileName, 0));
ASheets := ExWkbook.WorkSheets;
ExWksheet.ConnectTo(ASheets.Get_Item(1) as _WorkSheet);
ArCnt := 7;
Temp := '메렁';
SulBiName := ExWksheet.Cells.Item[3, 2]; // 설비명 불러오기
lblModelName.Caption := ExWksheet.Cells.Item[4, 2]; // 모델명 화면에 출력
lblProgramName.Caption := ExWksheet.Cells.Item[5, 2]; // 프로그램명 화면에 출력
While Temp <> '' do begin
SNArray[ArCnt] := ExWksheet.Cells.Item[ArCnt, 2]; // 시리얼 번호 저장
LotArray[ArCnt] := ExWksheet.Cells.Item[ArCnt, 1]; // 로트번호 저장..
Temp := SNArray[ArCnt];
ArCnt := ArCnt + 1;
end;
SNCount := ArCnt - 1; // 시리얼 갯수 저장
ExApp.Quit;
WorkBks.Close(0); //엑셀 종료 하기.
// ExWkbook.Close;
end;
그럼 답변 부탁 드립니당.
이건 WorkBook을 닫는 건데요... ExApp가 엑셀의 COM Application인거 같은데 ExApp.Quit; 해보세요.
^^ 항상 즐코하세요...