Q&A

  • 혹시 이런것도 델파이로 할 수 있을까요?
안녕하세요?

존경하는 델피언 여러분.


저는 그동안 시스템 펌웨어 엔지니어로만 경력이 있고, 간단한 VB 프로그램만 자동화 쪽 일을 하다보니 만들어 본것이

전부입니다. 그래서, 상위 계층은 잘 몰라서요.


저희 집 사람이, 파트타임으로 문서작업 같은 것을 복지관에서 하는데...

엑셀에서 한글로 데이타 옮기는 일이 있는데, 양이 많은가 봐요. 그래서, human mistake 가 발생해서

핀잔을 듣나 보더라구요.  애 낳고 돈 벌려고 일하는데 전화로 핀잔 듣는 거 보니 마음이 좋지 않더라구요..


제가 한번 만들어 볼려고 하는데요..

관련 소소나 홈페이지 게시판,, 등등 정보 좀 알려 주십시요.. 어디서 시작해야 할지 모르겠네요.

부탁 합니다.
1  COMMENTS
  • Profile
    구창민 2008.10.17 22:11
    안녕하세요..

    부인되시는 분이 어떤 실수를 하셨길래..ㅎㅎ::

    우선 부인되시는 분께서 하시는 일의 일련의 과정을 자동화 할 수 있는지 부터 검토해보셔야 할거 같아요..

    엑셀의 데이타를 다루는 부분은 이미 많이 다루어져 온 부분이라 델파이 관련 사이트에서 쉽게 정보를 구할수 있을 거구요,

    그 데이타를 한글로 이동할때 어떻게 이동을 해야 하는지 부분이 관건일거 같네요...

    아래아한글에 표가 들어간다거나 미세한 수정등이 따라야 한다면 매우 어려운 일이 될거 같구요..

    간단히 붙여 넣기 정도라면 API 를 이용해 수작업하는 부분을 자동화 할 수 있을것도 같네요..

    자세히 물어보시구 과정을 검토 해 보셔야 할거 같습니다..

    참고로 엑셀의 내용을 스트링 그리드로 옮기는 부분의 코딩을 올려드릴께요 참고하세요..

    var
    ExcelApp, ExcelBook, ExcelSheet : Variant;
    I, J : Integer; // 순환변수
    begin
    //엑셀이 설치되었있을 경우만 가능
    try
    //엑셀을 실행
    ExcelApp := CreateOLEObject('Excel.Application');
    except
    ShowMessage('Excel이 설치되어 있지 않습니다!!!');
    Exit;
    end;

    Try
    ExcelApp.Visible := False;
    ExcelApp.DisplayAlerts := False;
    //엑셀 통합문서 열기
    if OpenDialog1.Execute then
    begin
    ExcelBook := ExcelApp.WorkBooks.Open(OpenDialog1.FileName);
    ExcelBook := ExcelApp.WorkBooks.item[1]; //워크 쉬트 설정
    //일단 개별문서는 sheet1으로 고정
    ExcelSheet := ExcelBook.Worksheets.Item[1];

    //StringGrid 초기화 (Title은 고려하지 않았습니다.)

    StringGrid1.RowCount := ExcelSheet.UsedRange.Rows.count;
    StringGrid1.ColCount := ExcelSheet.UsedRange.Columns.count;

    For I := 1 to ExcelSheet.UsedRange.Rows.count do
    For J := 1 to ExcelSheet.UsedRange.Columns.count do
    StringGrid1.Cells[J,I] := vartostr(ExcelSheet.Cells[I,J]); //스트링그리드에 뿌리기
    ExcelApp.WorkBooks.Close;
    ExcelApp.quit;
    ExcelApp := unassigned;
    end;
    Except
    on err:exception do
    begin
    ExcelApp.WorkBooks.Close;
    ExcelApp.quit;
    ExcelApp := unassigned;
    ShowMessage('작업이 취소되었습니다. Data확인요망-'+err.message);
    end;
    end;
    ShowMessage(IntToStr(ExcelSheet.UsedRange.Rows.count) + '건의 자료를 변환하였습니다');
    end;

    또, 아래 링크를 따라가셔서 김성동님에게 자문을 구해보는것도 좋은 방법이 될거 같네요..

    델파이로 아래아한글 보기 지원이 되는 에디터를 만드신 분이죠..

    http://www.acrosoft.pe.kr

    그럼~ 즐거운 프로그래밍 하세요~
    • 구창민
      2008.10.17 22:11
      안녕하세요.. 부인되시는 분이 어떤 실수를 하셨길래..ㅎㅎ:: 우선 부인되시는 분께서 하시는 일의...
    • 최용일
      2008.10.16 06:05
      그냥 간단하게 WM_DEVICECHANGE메세지를 처리하는 메세지핸들러하나 만들어주시면 됩니다. 아래 예제...
    • 하늘사랑
      2008.10.16 08:43
      답변 너무 감사드립니다 ^^ 소스보구 더 연구좀 해봐야겠어요 ^^ 시점도 중요하궁.. 생각할께 많내...
    • 석주현
      2008.10.16 02:44
      정 어려우시다면 네이트온 친구 찾기 해주세요. ^^ superjuhyun 골뱅이 hotmail.com 입니다.
    • phono
      2008.10.16 09:48
      델7용 퀵4 소스가 있어야 해결이 날거 같네요..
    • 박무개
    • 2008.10.16 00:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2008.10.16 17:38
      안녕하세요.. 퀀텀 그리드는 잘 모르지만, SelectedRowCount -1 로 for 문을 한번 돌려보세요.. ...
    • 가르쳐주삼
      2008.10.16 19:13
      i = 0으로 하고 SelectedRowCount -1로 해서 for문을 돌아도 오류가 발생합니다.....ㅠ.ㅠ bmtemp에 ...
    • 석주현
      2008.10.15 17:40
      FindFirst, FindNext 를 찾아 보시면 될 것 같네요. 결국 파일 이름과 어트리 뷰트로 확인 합니다. ...
    • 하늘사랑
      2008.10.15 19:12
      친절한 답변 너무 감사드립니다 ^^ 오늘도 즐겁고 행복한하루 보내시구요~ 감시조심하셔용 ^^ 답변...
    • 정경철
    • 2008.10.15 06:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.10.15 17:19
      다이렉트 쇼 예제를 보시면 믹싱 예제가 있습니다. 예제에 보시면 믹싱과 PIP, Overlay 등 여러가지 ...
    • 구창민
      2008.10.16 17:40
      안녕하세요.. 질문이 너무 두리뭉실(?)한거 같습니다.. 오류가 발생했을때 어떤 오류메시지였으며...
    • 손석수
    • 2008.10.15 01:50
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.10.15 02:32
      다른 사람이 만든 소스면 그 사람에게 달라던지 아니면 TEdit를 상속해서 임시로 동작하게 한 후에 다시 ...
    • 손석수
      2008.10.15 13:44
      델파이는 처음 접하는 툴이라 직접 만드는 코딩을 하지 못하구요. 다른 사람이 만들어 놓은 소스를 ...
    • 석주현
      2008.10.15 17:24
      파일 이름에서 보듯이 분명히 TEdit에서 상속 받은 컴포넌트 같습니다. 일단 소스전체를 다른 디렉토...
    • 싸랑
      2008.10.16 19:55
      http://www.delphiforfun.org/Programs/Download/numedit.zip
    • steps
    • 2008.10.15 01:39
    • 5 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.10.15 01:56
      ocx내에서 close나 free를 쓰면 ocx자체는 없어지는데 IE가 이 파일명을 물고 있어서 새로 다운로드된 파...
    • 구창민
      2008.10.15 17:47
      안녕하세요.. 등록하실때 윈도그 명령 regsvr32 로 하지 않으셨나요..? regsvr32 -u 옵션으로 해...
    • steps
      2008.10.16 02:15
      ocx의 등록은 installshield로 배포판을 만들때 자동등록설정을 주어 설치시에 자동으로 됩니다. ocx의 ...
    • 구창민
      2008.10.16 17:49
      코드로 등록및 제거가 필요한 부분인거 같네요.. 아래 코드를 참고하셔서 테스트 해보세요.. 즐거...
    • steps
      2008.10.16 20:27
      구창민님 감사합니다.
    • 김주영
    • 2008.10.15 00:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.10.15 02:36
      기본 VCL만 사용했다면 아주 소소한 부분에서 프로퍼티 에러 정도 나겠죠. 다른 컴포넌트 같을 걸 사용...
    • 홍성락
      2008.10.15 00:45
      image Transparent로 검색하시면 투명, 반투명에 대해 많이 나옵니다, image에서 Transparent되는 Colo...
    • 석주현
      2008.10.15 03:02
      TImage 위에 TPaintBox를 올려 놓으시고 사용하시면 됩니다.
    • 임정미
      2008.10.17 23:43
      Transparent 색을 지정해 줘야하는진 몰랐네요. 덕분에 잘 해결했습니다. 감사합니다.^^
    • 김기범
    • 2008.10.14 21:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.10.15 02:50
      이동은 시킬수 있습니다. 메모장의 헨들을 가지고 와서 이동은 가능합니다만 회전을 안됩니다. ㅡ_ㅡ;...
    • 김원호
    • 2008.10.14 19:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.10.15 02:55
      무슨 리포트를 쓰시는지 알려 주셔야 아마도 답변이 나올것 같네요. 그런데 보통 리포트에도 메모와 ...
    • 최용일
      2008.10.14 02:39
      CreateProcess나 ShellExecuteEx등을 이용해서 종료될때까지 대기하시면 됩니다. 아래 팁을 참고하세...
    • 장성호
      2008.10.14 02:58
      프로그램을 실행후에 WaitForSingleObject 로 해당 프로세스가 종료될때 까지 기다리면 됩니다. ...
    • 하늘사랑
      2008.10.14 04:10
      두분 모두 좋은답변 너무너무 감사합니다.. ^^ 두분 덕분에 문제를 해결했습니다 ^^ 감기조심하시공 ...
    • steps
    • 2008.10.13 23:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.10.16 10:15
      ImageEn 이라는 컴포넌트를 확인해 보세요. AniGif를 읽고 쓰는 기능이 있습니다. 리사이징 기능도 있을...
    • steps
      2008.10.17 01:30
      ImageEn에 프레임별 이미지추출, 이미지삽입, 프레임삭제의 기능은 있는데 리사이징은 없군요. 정욱님 ...