반응형

1. SOUP.SELECT

HTML 문서 내 특정 태그 속성들을 찾을 때 쓰입니다

결과 반환 시 논리적으로 동일한 값이 여러 개 존재해서 리스트 배열로 반환이 됩니다

TitleNames = soup.select('td.subject > div > a.deco')

타이틀명을 가져올 때 <td class="subject"> 내에 <div> 내에 <a class="deco"> 라는 값을 찾습니다

2.SOUP.SELECT 검색 결과 href, 텍스트 분리하기

결과가 반환되었으면 LIST값을 FOR문을 통해 출력을 할 경우 

<a class="deco" href="https://aaa.com/13431">이세계에선 내가 주인공?</a>

이라는 값으로 출력이 되는데 href 값과 텍스트만 분리하고 싶을 때는

        for TitleName in TitleNames :
            print(TitleName.attrs['href'])
            print(TitleName.text)

href 속성과 text 속성만 따로 분리되서 출력이 됩니다 

 

반응형
반응형

1.C, C#

   특화 분야: -. 설비 하드웨어 제어, 기업 업무 시스템

        : -. 다른 OS에서 사용 어려움

               -. 웹 환경 별도 구축 필요

 

2.JAVA

     특화 분야: -. 금융 산업, 공공 기관, 기업 업무 시스템

    

          : -. 플랫폼 독립적으로 다른 OS에서도 사용 가능

                -. 플랫폼 독립적이기 때문에 웹 프로그램 작업 용이

                                         -. 네트워크 분산 처리 구조로 보안이 우수

                                         -. 국내 공공 프로젝트 공식 프레임 워크

3.파이썬

 

     특화 분야: -. 인공지능, 과학자 통계 분석, IOT

          : -. 비전공 학습용 언어로 배우기 쉽고 개발 구현이 빠름

                 -. 다른 언어와 결합하여 사용 가능

                                                 -. 수많은 표준 라이브러리 활용

 

4.델파이

 

 

   특화 분야: -. POS, 기업 업무 시스템

    특     : -. 디자인 및 개발 구현이 빠름

                -. 윈도우 운영체제 내 사용 가능

                                         -. 웹 프로그래밍 어려움

반응형
반응형

라이브러리 내 특정 오브젝트(테이블)를 PC에 저장 및 서버로 다시 복구 하는 방법 

--- 백업 ----

백업 방법
  1. AS400 콘솔
  2. CRTSAVF FILE(AAALIB/AAASAVF)  - 오브젝트가 저장될 빈 SAVF 파일을 만든다  
  3. SAVOBJ OBJ(테이블네임) LIB(라이브러리네임) DEV(*SAVF) SAVF(AAALIB/AAASAVF) - 빈 SAVF 파일 내에 오브젝트들 삽입(압축개념)

PC FTP로 백업파일 다운받는 방법
  1. 도스모드
  2. FTP XXX.XXX.XXX.XXX
  3. 아이디 암호 입력
  4. CD AAALIB  - 백업파일이 저장된 라이브러리 경로
  5. LCD C:\SAVF - 백업파일이 저장될 로컬 경로
  6. BIN - 바이너리 모드로 전환
  7. GET AAASAVF - 백업파일을 내려받는다
  8. CLOSE
  9. QUIT

--- 복원 ---
복원 방법
  1. AS400 콘솔
  2. CRTSAVF FILE(MRLIB/AAASAVF) - 오브젝트가 저장될 빈 SAVF 파일을 만든다

PC FTP로 백업파일 업로드하는 방법
  1. FTP XXX.XXX.XXX.XXX
  2. 아이디 암호 입력
  3. CD MRLIB - 백업파일이 저장될 라이브러리 경로
  4. LCD C:\SAVF -백업파일이 저장된 경로
  5. BIN -바이너리 모드 활성화
  6. PUT AAASAVF
  7. CLOSE
  8. QUIT


업로드 한 파일 복구 방법
   
  1. AS400 콘솔
  2. RSTOBJ OBJ(테이블네임) SAVLIB(라이브러리네임) DEV(*SAVF) SAVF(AAALIB/AAASAVF) - 처음 백업된 위치로 동일하게 복구하여야 파일이 풀림

반응형
반응형

uses 
shellapi; 

{...} 

Procedure ShellExecute_AndWait(FileName:String;Params:String); 
var 
exInfo : TShellExecuteInfo; 
Ph : DWORD; 
begin 
FillChar( exInfo, Sizeof(exInfo), 0 ); 
with exInfo do 
begin 
cbSize:= Sizeof( exInfo ); 
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT; 
Wnd := GetActiveWindow(); 
ExInfo.lpVerb := 'open'; 
ExInfo.lpParameters := PChar(Params); 
lpFile:= PChar(FileName); 
nShow := SW_SHOWNORMAL; 
end; 
if ShellExecuteEx(@exInfo) then 
begin 
Ph := exInfo.HProcess; 
end 
else 
begin 
ShowMessage(SysErrorMessage(GetLastError)); 
exit; 
end; 
while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do 
Application.ProcessMessages; 
CloseHandle(Ph); 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
ShellExecute_AndWait('FileName','Parameter'); 
end; 

반응형
반응형

선택한 셀 내용을 엑셀 시트에 복사하기 (CTRL+C)
셀 색상을 바꿔놓았다면 셀 선택 시 텍스트 및 바탕이 하얗게 표시 되버리는 문제가 생긴다
해결법은 아래와 같이 gdSelected = false 일경우만 색이 바뀌게 해놓으면 정상적으로 표시 된다
procedure TAForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin

    if (ARow = 0) or (ACol=0) or (ACol=0) or (ACol=1) then
    begin
      if (State <> [gdSelected]) then //선택한 셀이 하얗게 되는것을 방지
      begin
        Canvas.Brush.Color := clInactiveCaptionText;   // 배경색을 바꿀때 사용
        canvas.TextRect(Rect, Rect.Left, Rect.Top, cells[ACol, ARow]);
      end;

    end;

end;

procedure TAForm1.StringGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  CopyString : String;
  item_Index,Column_Index : Integer;
  i,j : Integer;
  sRec : TGridRect;
begin
  if (Shift = [ssCtrl]) and (Key = 67)then
  begin
    CopyString := '';
    sRec := TStringGrid(Sender).Selection;
    //클립보드 복사(Ctrl+C)


    For i := sRec.Top to sRec.Bottom do
    begin

      for j:= sRec.Left to sRec.Right Do
      begin
        CopyString := CopyString + TStringGrid(Sender).Cells[j,i] +#9;
      end;
      CopyString := CopyString + #13#10;
    end;

    Clipboard.SetTextBuf(PChar(CopyString));

  end;

end;

반응형
반응형

엑셀 화일을 직접 저장하는 방법은 모르겠지만

셀에 내용입력, 셀병합, 테두리 지정, 수식 지정, 도움말 입력, 이미지 삽입등의 방법은 이 안에 다 있습니다.

필요한 부분 요약해서 참조하도록 하세요.

저도 정리를 하다 만 소스라서 좀 지저분 하기는 합니다.

그리고 부분적으로 삭제를 했기때문에

표가 아래쪽은 좀 깨질 수도 있으니 그저 참조만 하시길...

이해해 주시기 바래요.



procedure TMainForm.Button_Result_ExcelViewClick(Sender: TObject);

var

     LCID, I        : Integer;

     Sheet   : Variant;

     Format         : OleVariant;

     GraphTop, GraphLeft : Integer;

     oRng : OleVariant;

     DirName : String;

     ImageFile : String;

begin

     DirName := 'C:\...\...\' + FileNameEdit.Text;

     LCID := 0;

     If DirectoryExists(DirName) = False Then

     Begin

          CreateDir(DirName);

          ChDir(DirName);

          if IOResult <> 0 then  MessageDlg('Cannot find directory', mtWarning, [mbOk], 0);

     End;



     ExcelApplication1.Connect; //엑셀을 가동한다(InVisible 상태)

     ExcelWorkbook1.connectto(ExcelApplication1.workbooks.add(TOleEnum(xlWBATWorksheet), LCID));

     ExcelWorksheet1.connectto(ExcelWorkbook1.worksheets.item['Sheet1'] as _worksheet );

 

     //워크시트 이름 변경

     ExcelWorksheet1.Name := AnalEdit.Text;// '엑셀 쉬트 이름 '

 

     ExcelApplication1.DisplayAlerts[LCID] := False;

     ExcelApplication1.Visible[LCID] := true;

 

     Sheet := ExcelApplication1.WorkBooks[ExcelApplication1.Workbooks.Count].WorkSheets[ExcelWorkbook1.Worksheets.Count];

 

     ExcelWorksheet1.Range[Sheet.Cells[1,1],Sheet.Cells[1,1]].VerticalAlignment := xlHAlignCenter;

     ExcelWorksheet1.Range[Sheet.Cells[1,1],Sheet.Cells[1,1]].HorizontalAlignment := xlHAlignCenter;

     ExcelWorksheet1.Range[Sheet.Cells[1,1],Sheet.Cells[1,1]].Value := 'Drop Watcher Test';

     ExcelWorksheet1.Range[Sheet.Cells[1,1],Sheet.Cells[2,18]].MergeCells := true;

     ExcelWorksheet1.Range[Sheet.Cells[1,1],Sheet.Cells[2,18]].borders.LineStyle := 1;

     ExcelApplication1.Range['A1','A1'].borders.Color := clNavy;

     ExcelApplication1.Range['A1','A1'].Interior.Color := clYellow;

     ExcelApplication1.Range['A1','A1'].borders.lineStyle := 1;

     ExcelApplication1.Range[Sheet.Cells[1,1],Sheet.Cells[2,18]].font.bold := true;

     ExcelApplication1.Range[Sheet.Cells[1,1],Sheet.Cells[2,18]].font.Size := 20;

     ExcelApplication1.Range[Sheet.Cells[1,1],Sheet.Cells[2,18]].font.Name := '굴림체';

     ExcelApplication1.Range[Sheet.Cells[1,1],Sheet.Cells[2,18]].VerticalAlignment := xlHAlignCenter;

     Sheet.Cells[1,1] := 'Drop Watcher Test ';



     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 81, 18 ]].font.Size := 9;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 81, 18 ]].font.Name := '굴림체';

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 81, 18 ]].HorizontalAlignment := xlHAlignCenter;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 81, 18 ]].VerticalAlignment := xlHAlignCenter;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 81, 18 ]].font.bold := True;



     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 261, 18 ]].font.Size := 9;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 261, 18 ]].font.Name := '굴림체';

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 261, 18 ]].HorizontalAlignment := xlHAlignCenter;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 261, 18 ]].VerticalAlignment := xlHAlignCenter;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 261, 6 ]].borders.lineStyle := 1;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 261, 18 ]].font.bold := True;



     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 5, 6 ]].font.Color:= clWhite;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 5, 6 ]].borders.Color := clNavy;

     ExcelApplication1.Range[Sheet.Cells[ 4, 1 ],Sheet.Cells[ 5, 6 ]].Interior.Color := clBlue;



     ExcelApplication1.Range[Sheet.Cells[ 6, 1 ],Sheet.Cells[ 261, 1 ]].borders.lineStyle := 1;

     ExcelApplication1.Range[Sheet.Cells[ 6, 1 ],Sheet.Cells[ 261, 1 ]].borders.Color := clBlack;

     ExcelApplication1.Range[Sheet.Cells[ 6, 1 ],Sheet.Cells[ 261, 1 ]].Interior.Color := clYellow;



     ExcelWorksheet1.Range[Sheet.Cells[4,1],Sheet.Cells[4,6]].MergeCells := true;



     GraphTop := 5;



     Sheet.Cells[ GraphTop-1, 1 ].Value := '항  목';

     Sheet.Cells[   GraphTop, 1 ].Value := 'No';

     Sheet.Cells[   GraphTop, 2 ].Value := '부  피(pl)';

     Sheet.Cells[   GraphTop, 3 ].Value := '좌  우(um)';  //Sheet.Cells[   GraphTop, 3 ].Memo := '';

     Sheet.Cells[   GraphTop, 3 ].AddComment( '수평 좌우 편차거리');

     Sheet.Cells[   GraphTop, 4 ].Value := '상  하(um)';

     Sheet.Cells[   GraphTop, 4 ].AddComment( '수직 상하 편차거리');

     Sheet.Cells[   GraphTop, 5 ].Value := '속 도(m/s)';

     Sheet.Cells[   GraphTop, 6 ].Value := '각  도(˚)';



     Format := '0';       ExcelApplication1.Range[Sheet.Cells[ 6, 1 ],Sheet.Cells[ 261, 1 ]].NumberFormatLocal   := Format;

     Format := '#,##0.0'; ExcelApplication1.Range[Sheet.Cells[ 6, 2 ],Sheet.Cells[ 261, 6 ]].NumberFormatLocal   := Format;



     For I := 1 to xxx do

     Begin

          Sheet.Cells[ GraphTop + I, 1 ].Value := Formatfloat('000', I );      // Nozzle No

          Sheet.Cells[ GraphTop + I, 2 ].Value := Formatfloat('0.0', m_DropTailVolume       [I] ); // 부피

          Sheet.Cells[ GraphTop + I, 3 ].Value := Formatfloat('0.0', m_DropTailStraightness [I] );  // 좌우편차

          Sheet.Cells[ GraphTop + I, 4 ].Value := Formatfloat('0.0', m_DropTailLength       [I] ); // 드랍간 거리

          Sheet.Cells[ GraphTop + I, 5 ].Value := Formatfloat('0.0', m_DropTailSpeed        [I] ); // 드랍 속도

          Sheet.Cells[ GraphTop + I, 6 ].Value := Formatfloat('0.0', m_DropAngle            [I] ); // 휘어짐 각도

     End;



     GraphTop := 4; GraphLeft := 8;



     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+1,GraphLeft+10]].VerticalAlignment := xlHAlignCenter;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+1,GraphLeft+10]].HorizontalAlignment := xlHAlignCenter;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+1,GraphLeft+10]].Value := 'Test 환경';

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+1,GraphLeft+10]].MergeCells := true;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+1,GraphLeft+10]].borders.LineStyle := 1;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+1,GraphLeft+10]].borders.Color  := clBlack;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+1,GraphLeft+10]].Interior.Color := clYellow;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+6,GraphLeft+10]].borders.lineStyle := 1;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop+2,GraphLeft],Sheet.Cells[GraphTop+6,GraphLeft+10]].Interior.Color := $00DEFEE3;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+6,GraphLeft+10]].font.bold := true;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop  ,GraphLeft+10]].font.Size := 12;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop+2,GraphLeft],Sheet.Cells[GraphTop+6,GraphLeft+10]].font.Size := 9;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop  ,GraphLeft],Sheet.Cells[GraphTop+6,GraphLeft+10]].font.Name := '굴림체';

           

     Format := '#,##0.0';

     ExcelApplication1.Range[Sheet.Cells[GraphTop+11,GraphLeft+1],Sheet.Cells[GraphTop+15,GraphLeft+9]].NumberFormatLocal   := Format;

     Format := '0';

     ExcelApplication1.Range[Sheet.Cells[GraphTop+11,GraphLeft+6],Sheet.Cells[GraphTop+11,GraphLeft+6]].NumberFormatLocal   := Format;

     Format := '#,##0.0%';

     ExcelApplication1.Range[Sheet.Cells[GraphTop+11,GraphLeft+5],Sheet.Cells[GraphTop+15,GraphLeft+5]].NumberFormatLocal   := Format;

     ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



     GraphTop := GraphTop + 17;



     ExcelWorksheet1.Range[Sheet.Cells[GraphTop,GraphLeft],Sheet.Cells[GraphTop+102,GraphLeft+10]].VerticalAlignment := xlHAlignCenter;

     ExcelWorksheet1.Range[Sheet.Cells[GraphTop,GraphLeft],Sheet.Cells[GraphTop+102,GraphLeft+10]].HorizontalAlignment := xlHAlignCenter;



     for I :=  0 to 4 do

     Begin

  case I of

            0: ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop,GraphLeft],Sheet.Cells[(I*20)+GraphTop,GraphLeft+10]].Value := '부  피(pl)';

            1: Begin

              ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop,GraphLeft],Sheet.Cells[(I*20)+GraphTop,GraphLeft+10]].Value := '좌  우(um)';

        Sheet.Cells[   (I*20)+GraphTop,GraphLeft ].AddComment( '수평 좌우 편차거리');

             End;

            2: Begin

              ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop,GraphLeft],Sheet.Cells[(I*20)+GraphTop,GraphLeft+10]].Value := '상  하(um)';

        Sheet.Cells[   (I*20)+GraphTop,GraphLeft ].AddComment( '수직 상하 편차거리');

             End;

            3: ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop,GraphLeft],Sheet.Cells[(I*20)+GraphTop,GraphLeft+10]].Value := '속  도(m/s)';

            4: ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop,GraphLeft],Sheet.Cells[(I*20)+GraphTop,GraphLeft+10]].Value := '각  도(˚)';

          end;



      ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop  ,GraphLeft],Sheet.Cells[(I*20)+GraphTop   ,GraphLeft+10]].MergeCells := true;

      ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop+1,GraphLeft],Sheet.Cells[(I*20)+GraphTop+18,GraphLeft+10]].MergeCells := true;

      ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop  ,GraphLeft],Sheet.Cells[(I*20)+GraphTop+18,GraphLeft+10]].borders.LineStyle := 1;

      ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop  ,GraphLeft],Sheet.Cells[(I*20)+GraphTop   ,GraphLeft+10]].borders.Color  := clBlack;

      ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop  ,GraphLeft],Sheet.Cells[(I*20)+GraphTop   ,GraphLeft+10]].Interior.Color := clYellow;

      ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop  ,GraphLeft],Sheet.Cells[(I*20)+GraphTop+18,GraphLeft+10]].font.bold := true;

      ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop  ,GraphLeft],Sheet.Cells[(I*20)+GraphTop+18,GraphLeft+10]].font.Size := 12;

      ExcelWorksheet1.Range[Sheet.Cells[(I*20)+GraphTop  ,GraphLeft],Sheet.Cells[(I*20)+GraphTop+18,GraphLeft+10]].font.Name := '굴림체';



   oRng := Sheet.Cells[(I*20)+GraphTop+1,GraphLeft].Select;

          case I of

            0: ImageFile := VolumeGraph;

            1: ImageFile := StraightGraph;

            2: ImageFile := LengthGraph;

            3: ImageFile := SpeedGraph;

            4: ImageFile := AngleGraph;

          end;

      if FileExists(ImageFile) then

      begin

           oRng := Sheet.Pictures.Insert(ImageFile).ShapeRange;

               //oRng := Sheet.

        oRng.ScaleWidth (1, False, 1);

        oRng.ScaleHeight (1, false, 1);

               //////////// Excel 2007에서는 아래처럼 코딩 필요 ///////////////////////////////////////////////////////////////////////////////////////

               //oSheet.Shapes.AddPicture(gsAppDir + `\Logo\` + sCode + `.jpg`, msOTrue, msoTrue, Left:=0, Top:=(iPage*775)+0, Width:=148, Height:=55);

      end;

     End;

     Sheet.Cells[1,1].Select;



     //숫자형 포맷

   //Format := '_-* #,##0.0_-;-* #,##0.0_-;_-* "-"???_-;_-@_-';

   //ExcelApplication1.Range['B1','B1'].NumberFormatLocal := Format;



   //ExcelWorksheet1.Range['F3', 'H8'].Formula := '=RAND()*10';

   //ExcelWorksheet1.Range['F9', 'F9'].Formula := '=SUM(F3:F8)';

   //패턴변경

   //=============================================================================================================================

   //for i := 1 to 18 do

   //begin

      //ExcelWorksheet1.Range['D'+inttostr(i+24),'D'+inttostr(i+24)].Interior.Pattern := i;

      //ExcelWorksheet1.Range['E'+inttostr(i+24),'E'+inttostr(i+24)].Value := 'Interior.Pattern := '+inttostr(i);

   //end;

   //=============================================================================================================================

                  //

//  이미지를 삽입할경우 실제파일을 기록해야 되기 때문에 주석처리 했습니다.

//  실제 파일과 경로명 기록하고 주석푸시고 실행해보세요 ^^

//   백그라운드 이미지

//  //ExcelWorksheet1.SetBackgroundPicture('C:\My Documents\My Pictures\couplevssolo(6).jpg');

//  //이미지 입력

//  Selection := Sheet.Pictures.Insert('C:\My Documents\My Pictures\302492_2.jpg');

//  //이미지위치조절

//  Selection.ShapeRange.IncrementLeft(243);

//  Selection.ShapeRange.IncrementTop(605);



   //차트용 오브젝트 생성

   //ChObj := (ExcelWorksheet1.ChartObjects(EmptyParam, lcid) as ChartObjects).Add(600, 10, 400, 250);

   //ExcelChart1.ConnectTo(ChObj.Chart as _Chart);

   //데이터 범위(데이터뿐만아니라 가로축 세로축에 찍힐 주석값까지 포함해야함)

   //Rnge := ExcelWorksheet1.Range['E2','H8']; // the data range, including titles

   //차트타입

   //ChType := TOleEnum(xl3DColumn);

   //ExcelChart1.ChartWizard(Rnge, ChType, EmptyParam, xlColumns, 1, 1, True,

     //                     ExcelWorksheet1.Range['A1', 'A1'].Text, // The chart title

     //                     '번호', '점수', EmptyParam, lcid);

   //Ax := ExcelChart1.Axes(xlValue, xlPrimary, lcid) as Axis;

   //Ax.AxisTitle.Font.FontStyle := '굴림체';



   //자동으로 컬럼의 폭을 맞춘다.

   //ExcelWorksheet1.Columns.AutoFit;

end;


반응형
반응형

// 지정한 폴더의 파일 리스트 가져오기 : 서브 폴더 검색 대응

function FindFiles(const sPath, sMask: string; slFiles: TStringList; bSubDir: boolean): integer;
var
  iFindResult: integer;
 srSchRec : TSearchRec;
begin
  result := 0;

  iFindResult := FindFirst(sPath + sMask, faAnyFile - faDirectory, srSchRec);
  while iFindResult = 0 do
  begin
    slFiles.Add(sPath + srSchRec.Name);
    iFindResult := FindNext(srSchRec);
  end;
  FindClose(srSchRec);

  if bSubDir then
  begin
    iFindResult := FindFirst(sPath + '*.*', faDirectory, srSchRec);
    while iFindResult = 0 do
    begin
      if (srSchRec.Name <> '.') and (srSchRec.Name <> '..') then
        result := result + FindFiles(sPath + srSchRec.Name + '\', sMask, slFiles, TRUE);
      iFindResult := FindNext(srSchRec);
    end;
    FindClose(srSchRec);
  end;
end;




procedure TForm1.Button1Click(Sender: TObject);
var
  sl: TStringList;
begin
  Button1.Enabled := false;
  sl := TStringList.Create;
  sl.Clear;
  FindFiles('D:\Data\', '*.doc', sl, True);
  Listbox1.Items := sl;
  sl.Free;
  Button1.Enabled := True;
end;


출처 : http://wwwi.tistory.com/294


반응형
반응형


델파이 Library path와 Browsing path에서  썼듯이 정말 고생한 건데...델파이 5를 Win7 32bit에 설치하고 컴포넌트를 설치하다보면 문제없이 잘 설치되는가 보면 bpl 파일에 접근할 수 없다는 에러를 토하면서 설치가 안되는 경우가 있다.
음...VirtualTree 의 Theme Manager 같은 경우에는 설치는 된 것 같았는데...델파이를 재실행하면...설치한 컴포넌트가 사라진다.
Component - Install Packages 메뉴로 설치된 패키지를 확인하면 해당 패키지의 체크 박스가 해제되어 있는 것을 볼 수 있었다.

델마당에 질답란에 질문도 올리고...결국 구글링해서 해결했다.
방법은 좀 허망한데...윈도우 환경 변수 Path 에 bpl 폴더를 추가해주면 된다.
예를 들어 Win7 32bit 에서 델파이 5를 사용하는 경우
C:\Program Files\Borland\Delphi5\Projects\Bpl
와 같은 경로를 추가해주면 된다. 뭐...델파이 5를 설치한 경로나...BPL 을 저장한 경로가 다르다면 그에 맞게 적절하게 추가하면 된다.

정말...허망하지 아니한가...;

아...추가로 경로 추가하고서도 접근이 안된다고 뜬다면 우선 해당 bpl 파일과 dcp 파일을 삭제하고 다시 컴파일 한 후 생성된 bpl파일과 dcp 파일을 선택하고 Take Ownership 해준다.
...솔직히 경로 추가만 하면 이 짓은 일명 '뻘짓'이 될 확률이 크다.


Dark-Ryu님의 이글루 Dark-Ryu

출처 : http://darkryu.egloos.com/m/3409064

반응형
반응형