C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[12622] Re:델파이 코드 리팩토링 문제(다 함께 풀어 봅시다)
주정섭 [jjsverylong] 2566 읽음    2007-01-08 11:03
// 컴파일 되게 하기 위해서...다음 함수를 구라로 정의
procedure RemoveFileDocKind(aValue: Integer);
begin
end;

// 컴파일 되게 하기 위해서 다음 상수들을 구라로 정의
const dkHwp = 100;
const dkWord = 101;
const dkExcel = 102;

// 리팩토링한 GetFileFilter 함수
function GetFileFilter:String;
type
  TDocType = Record
    comObject : TGUID;
    className : String;
    filter : string;
    dockKind : integer;
  end;
const
  noGuid = '{00000000-0000-0000-0000-000000000000}';
  docTypes : array[0..2] of TDocType = (
    (comObject:noguid; className:'WORD.Application'; filter:'MS-Word(*.doc)|*.doc|'; dockKind:dkWord),
    (comObject:noguid; className:'Excel.Application'; filter:'MS-Excel(*.xls)|*.xls|'; dockKind:dkExcel),
    (comObject:'{26319A34-0ADB-4F04-8EFD-4E6679644879}'; filter:'HWP Document(*.hwp)|*.hwp|'; dockKind:dkHwp )
  );
var
  checkVal:OleVariant;
  I: Integer;

begin
  Result := 'Image All(*.jpg;*.jpeg;*.gif;*.png;*.bmp;*.pcx;*.tif;*.tiff;*.psd;*.pdd)|*.jpg;*.jpeg;*.gif;*.png;*.bmp;*.pcx;*.tif;*.tiff;*.psd;*.pdd|';

  for I := Low(docTypes) to High(docTypes) do
  begin
    try
      if GuidToString(docTypes[i].comObject) = noGuid then
        checkVal := CreateOleObject(docTypes[i].ClassName)
      else
        checkVal := CreateComObject(docTypes[i].comObject);

        checkVal := Unassigned;
        Result := Result + docTypes[i].filter;
    except
      RemoveFileDocKind(docTypes[i].dockKind);
    end;
  end;

  Result := Result + 'Adobo PDF File(*.pdf)|*.pdf|PostScript(*.ps)|*.ps|Encapsulated PostScript(*.eps)|*.eps|';
end;
최일준.쮸니~ [1joon]   2007-01-09 10:17 X
ㅎㅎ 함수 하나로 이렇게 많은 리팩토링 함수가 나오네요..

역시 프로그램에는 정답이 없는것 같습니다.

고수와 하수는 코드 하나 차이라고 하더니 간단한 함수 하나를 만들때도 한번 더 생각하면 더 간결하고 좋은 코드가 나온다는것을 배우고 갑니다.

앞으로도 기회가 되면 이런 좋은 글 많이 올려주세요^^

그럼 오늘도 좋은하루되세요^^

+ -

관련 글 리스트
12602 델파이 코드 리팩토링 문제(다 함께 풀어 봅시다) 주정섭 5034 2007/01/04
12622     Re:델파이 코드 리팩토링 문제(다 함께 풀어 봅시다) 주정섭 2566 2007/01/08
12611     Re:델파이 코드 리팩토링 문제(다 함께 풀어 봅시다) 사악신 2213 2007/01/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.