라벨이 Delphi인 게시물 표시

Delphi 자작 컴포넌트

이미지
자작 컴포넌트 필요해서 만들기 시작한 Delphi 컴포넌트를 소개합니다. 자주 쓰는 기능을 미리 만들어 놓고 사용하고 있습니다. 다만 최근에는 잘 안 쓰는데 회사에서는 C#을 사용하기 때문에 Delphi를 자주 사용하지 않습니다. khXLS : Excel 제어 유닛 khGrid : StringGrid 기능 추가 khEdit : 정렬, Mouse Enter. Leave Event khComboBox : 값이 두개인 Combobox, Item/Values : TStrings khImage : 이미지 컴포넌트 확장 khReport : 출력 기능 khTrayIcon : 트레이 아이콘 제어 컴포넌트 소스 https://github.com/skshpapa80/skshpapa80_pack

[Delphi] ShellContols 컴포넌트 등록법

 ShellContols 컴포넌트 등록법 Delphi 설치시 컴포넌트 팔레트에 기본적으로 등록이 되지 않아서 등록하는 방법을 소개합니다. Delphi 메뉴 Component -> Install Component Vcl.Shell.ShellCtrls.pas 소스를 선택합니다. 소스 경로는 C:\Program Files (x86)\Embarcadero\Studio\21.0\source\vcl 폴더에 있습니다. 설치 버전에 따라 조금씩 다릅니다. 그리고 install new package 옵션을 선택하고 Next 를 클릭합니다. 저장할 경로 ShellControls.dpk 를 생성해서 지정하고 Description 에는 ShellControls 라고 입력합니다. 그리고 Finish​ VCL 추가하겠다는 메세지는 확인을 눌러주고 Vcl.Shell.ShellConsts.pas 소스를 하나더 추가해줍니다. 그리고 Vcl.Shell.ShellCtrls.pas 소스를 열어서 interface 섹션 가장 마지막에 procedure Register; 추가합니다. 그리고 implementation 섹션에 procedure Register; begin   RegisterComponents('Shell Controls', [TShellListView]);   RegisterComponents('Shell Controls', [TShellTreeView]);   RegisterComponents('Shell Controls', [TShellChangeNotifier]); end; 추가해줍니다. 그리고 나서 Install 해주면 Shell Controls 가 등록됩니다.

Lotus 123 파일 읽는 프로그램

이미지
  Lotus 123 파일 읽는 프로그램 2006년에 작업했던 프로그램 입니다. 지인의 부탁으로 작업한 프로그램인데 소스 정리하다가 나왔네요.  예전에 Lotus 123이라는 오래된 Spreadsheet프로그램이 있었는데 Excel이 나오기 전에는 많이 사용했습니다. 지인의 회사에서 Lotus 123 구동하는 PC 가 고장이 나면서 기존 파일을 읽어 오지 못해서 난처했었죠.  그러다 Lotus 123 파일을 읽어서 Excel 변환하는 프로그램을 만들었습니다.  우연히 Lotus 123을 읽어오는 Delphi Component가 저에게 있어서 그 Component 를 사용해서 읽은 후 Excel 저장합니다. Delphi 7 버전으로 만들었네요. 기능 Lotus 123 파일 읽어오기 (파일에 여러시트가 있을경우 Tab을 생성하면서 열기) Excel저장, 전체저장(전체 탭 Excel파일로 저장) Excel 이 설치된 PC 에서만 동작합니다. 엑셀 저장은 Excel Automation 사용하거든요

Sheet2DB – Excel DB 업로드 프로그램

이미지
Sheet2DB  프로젝트를 진행하다 보면 Excel 데이터를 DB Table로 입력해야 되는 경우가 많이 생깁니다. Excel 데이터를 DB Table 구조에 맞춰서 입력하기가 때로는 막 노동처럼 느껴져서 만들게 되었습니다. 스크린샷(ScreenShot) Excel 선택하는 페이지 Excel 선택 후 DB 접속 정보 입력 DB 접속 정보를 입력한 후 DB연결/테이블 리스트 버튼을 누르면 다음페이지로 넘어 갑니다. MSSQL 용이라서 sp_tables 테이블 정보와 sp_columns 컬럼정보를 가져옵니다. 테이블 리스트에서 사용할 테이블을 선택하고 테이블 컬럼명 버튼을 누르면 테이블 컬럼 정보가 나오고 Excel 컬럼 정보랑 연결/취소 버튼을 이용해서 매칭 시킨 후 다음페이지에서 DB작업 버튼을 클릭하면 DB 에 Insert 됩니다. 테이블 정보와 Excel 컬럼(타이틀) 정보를 활용하여 Insert 구문을 자동으로 만들어서 테이블에 저장됩니다. 처리결과를 확인합니다. 프로그램 정보 Delphi 10.3 커뮤니티 에디션으로 작업 엑셀 읽어 오는 부분은 Excel.Application OLE 를 사용했습니다. 그리드는 기본그리드인 스트링 그리드 현재는 MSSQL 만 됩니다. 오라클 추가한 후 공개할 예정입니다. 그전에 필요하신분은 따로 연락 주세요!!! PS . 2022-04-28 소스 github 에 올렸어요  https://github.com/skshpapa80/Sheet2DB

[Delphi] 웹프로그래밍 #4 - 게시판 만들기

이미지
  웹프로그래밍 04 - 게시판 만들기 새로운 프로젝트를 생성합니다. ISAPI 프로젝트를 만들고 저장을 DelphiBoard 로 합니다. 이번엔 게시판은 DB 연결을 해야 하니 MSSQL 을 사용하기 위해 ADOConn, ADOQuery1 컴포넌트도 올려줌니다. 이번에 사용할 액션은 우선 3개 List(기본), Read(읽기), Write(쓰기) 입니다. ​HEAD 와 FOOT 만들기 웹의 HEAD 부분을 코딩합니다. function TWebModule1.Head: String; var     view_html : String; begin     view_html := '<html>'+ sLineBreak;     view_html := view_html + '<head>'+ sLineBreak;     view_html := view_html + '<title>Delphi board</title>'+ sLineBreak;     view_html := view_html + '<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">'+ sLineBreak;     view_html := view_html + '</head>'+ sLineBreak;     view_html := view_html + '<body>'+ sLineBreak;     view_html := view_html + '<div cl...

[Delphi] 웹프로그래밍 #3 - 코딩 심화

이미지
  웹프로그래밍 03 지난번 강좌는 실행까지 부분이고 실제 코딩을 해보겠습니다. ​ Projects 창에서 WebModuleUnit1.pas 를 더블클릭하면 아래창이 나오고 마우스 오른쪽 버튼을 클릭하면 아래 팝업이 나옵니다. Action Editor 창이 열리면 여기에서 Path를 추가할수 있습니다. Path 란​ http://localhost/TEST/test.dll/list?page=1 list 같이 Path 를 추가하여 여러개의 하위서비스를 추가할수 있습니다. 기본은 "/" 라서 아무것도 없으면 기본이 처리됩니다. Object Inspector 창에서 Events 탭에서 OnAction 이벤트를 추가하여 아래처러 코딩하면 procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin     Response.Content :=         '<html>' +         '<head><title>Web Server Application</title></head>' +         '<body>List Page</body>' +         '</html>  end; http://localhost/TEST/test.dll/list 로 접속하면 다음과 같은 결과를 얻을수 있습니다. OnAction 에는 Request, Response 라는 객체가 선언되어 있는데요. Request 값을 받아올때 Response 는 HTML 을 html을 출력할때 사용합니다. GET 방식으로 page 값 받...

[Delphi] 웹프로그래밍 #2 - 코딩

이미지
  웹프로그래밍 02 이제 본격적으로 ISAPI 웹프로그램을 만들어 봅시다. Delphi 로 웹프로그래밍을 하는 이유는 Delphi로 만들어진 코드나 로직을 다른 언어로 개발하기 힘들때 사용합니다. ​ 델파이를 실행 후 File-New-Other 를 선택합니다. "Web-Web Server Application"을 선택하고 "OK" 클릭 우선 IIS, Windows 용으로 만들어 볼꺼예요 "Next" 클릭 "ISAPI dynamic link library"를 선택하고 "Finish" 클릭.​ 델파이가 기본 페이지를 생성합니다. "Project1"과 "WebModuleUnit1" 생성된 프로젝트를 저장을 합니다. test.dll 로 만드려구요. WebModuleUnit1.pas 파일을 선택한후 더블클릭하면 "WebModuleDefaultHandlerAction()" procedure 에 원하는 HTML 을 코딩 후 빌드한 다음에 https://skshpapa80.blogspot.com/2022/01/delphi-1-iis.html IIS 설정에서 만든 폴더에 test.dll 을 복사한 후 ​http://localhost/TEST/test.dll  실행하면 "WebModuleDefaultHandlerAction()" 코딩한 HTML 이 보입니다. ​여기 까지가 기초 코딩 입니다. 다음 포스트에서 Delphi 웹 프로그래밍에서 사용할수 있는 여러 기능들을 소개하겠습니다.

[Delphi] 웹프로그래밍 #1 - IIS 설정

이미지
웹프로그래밍 01 IIS 에서 ISAPI 설정하는법 먼저 IIS(인터넷 정보 서비스) 관라자 를 열어서 프로그램을 사용할수 있게 설정해야 합니다. 그렇지 않으면 브라우저는 오류 페이지를 보여주거나 dll 파일을 다운로드 합니다. ​ MIME 형실 설정 “.dll” 를 선택하고 마우스 오른쪽 버튼을 눌러 [편집] 모드로 들어간다. 기존에 설정되어 있던 "application/octet-stream"을 "text/xml"로 변경하고 "확인"을 누르자. 처리기 매핑 설정 "ISAPI-dll"이 "사용 안함"으로 되어있다. "ISAPI-dll”를 선택하고 마우스 오른쪽 버튼 클릭하여 "기능 사용 권한 편집"을 선택. ISAPI-dll 이 안보인다면 Windows 기능 추가 에서 IIS 항목의 ISAPI 기능에 체크하면 됨 "실행"에 선택하고 "확인"을 누른다. "ISAPI-dll"라인이 "사용"으로 변경되었음을 확인한다. ​ ISAPI 및 CGI 제한 설정 IIS 관리자에서 좌측 트리의 최상단을 클릭하면 "ISAPI 및 CGI 제한"이 나오는데 더블 클릭한다. "ISAPI 및 CGI 제한" 목록에서 마우스 오른쪽 버튼을 눌러 "기능 설정 편집"을 클릭. "지정하지 않은 ISAPI 모듈 허용"을 선택하고 "확인"을 누른다. 윈도우가 64bit 라서 IIS 가 64비트 일경우 dll 파일이 32비트 애플리케이션로 빌드하면 실행이 안됩니다. 그때는 아래와 같이 설정합니다. "32비트 애플리케이션 사용 " : True ​설정 완료 실제 Delphi 로 코딩을 한 후 실행은 다음 포스트에서!

사용하는 프로그래밍 언어

프로그래밍 언어 벌써 프로그래머로 취직을 해서 회사를 다닌 지 19년이 넘었습니다. 정말 오래 다녔네요. 벌써 나이가 40이 넘었네요!!! 그래서 지금까지 사용하는?? 사용해 봤던 프로그래밍 언어를 정리해 봅니다. 글을 시작하면서 간단히 생각해 봐도 참 많네요!!! C/C++ 고등학교 때 프로그래머가 되겠다며 C언어 책을 하나 사서 보기 시작합니다. 고등학교 들어가서 산 PC(펜티엄급)에 터보 C를 설치한 후 책을 따라 하는데 책을 샀을 때에는 엄청난 프로그래머가 될 줄 알고 열심히 봤는데 처음에는 엄청 어렵더군요.. 그래서 프로그래밍보다는 게임을 많이 합니다. 그때 좀 더 열심히 했으면 지금보다 나았을 텐데 ㅠ.ㅠ 대학교에 가서 C언어 과목을 수강하면서 제대로 배우기 시작합니다. 확실히 고등학교 때 본 C언어 책이 도움이 되네요. C언어 리포트는 다 제가 해주기 시작합니다. 프로그램을 짜둔 다기보다는 디버깅을 해주고 안 되는 부분 설명해 주고 점심을 참 많이 얻어먹었습니다. 일주일 동안 매일 얻어먹은 적도 있어요 ㅎㅎ Visual C++을 사용하면서 C++을 배우게 됩니다. 하지만 Delphi를 배우기 시작하면서 Delphi에 빠지게 되고 C/C++은 멀리하게 됩니다. 그리고 2005년에 PSP 자작 프로그램 개발할 때 사용해 보게 되는데 역시 C에 대한 관심이 별로 안 생기네요. 아마 C++을 계속했으면 C++Builder를 사용했을지도 모르겠네요… VisualBasic 대학 다니면서 동아리 활동을 시작합니다. 근데 나름 전산 동아리라고 학교 축제에 프로그램을 짜서 축제 기간 동안 전시합니다. Delphi에 빠져들면서 Delphi를 사용해서 프로그램을 짜고 전시회도 하고 싶었는데 팀 인원이 모자라서 VisualBasic를 사용하는 팀에 합류합니다. 거기서 합숙(?) 같은 걸 하면서 동영상 재생기도 만들어보고 앨범 프로그램도 만들게 되고 VisualBasic의 기초는 배우게 됩니다. 설마 나중에 회사에서 사용할 일이 있을 줄을 그땐 몰랐지요!!! Delphi...

사진 정리 프로그램(Photodate)

이미지
  두 딸아이의 아빠가 된 후 아이들 사진을 엄청 찍습니다. 디카 그리고 스마트폰 카메라가 좋아지면서 사진을 더 많이 찍는데요.  사진을 찍고 난 후 PC에 옮기면서 날짜별로 정리하려고 만들게 되었습니다. 처음에는 사진에 기록된 Exif 정보를 하나하나 확인하여 폴더를 만들고 정리했는데 사진 파일이 많아지니 쉽지 않더군요.  2017년 폴더를 만든 후 2017-01-01 이렇게 관리를 하기 시작했는데 일일이 확인하고 하니 실수도 하고 힘도 들더군요. 프로그래머라면 이런 일을 자동으로 처리해야 한다는 생각에 이 프로그램을 만들게 되었습니다. 제작 툴은 델파이 10.2 도쿄 스타터 버전입니다! 프로그램 스크린샷 사용법 사진 파일이 모여 있는 대상 폴더를 지정하면 위 리스트에 이미지 목록이 표시됩니다. 이동 대상 폴더를 선택하고 파일을 이동할지 복사할지 선택한 다음 작업 시작 버튼을 누르면 됩니다. 이동 폴더에 날짜(2016-03-31 Exif 날짜) 폴더가 생긴 후 날짜 폴더로 이미지가 이동/복사됩니다.

[Delphi] Indy 컴포넌트 중 idHTTP 사용법

idHTTP Delphi 컴포넌트중 Indy 컴포넌트는 정말 사용하기 편리하고  필요한 기능은 다 구현이 되어 있습니다.  그중 idHTTP사용법을 소개합니다.  1. POST 파일 전송 예제 Indy에 포함되어 있는 TidMultiPartFormData를 이용하여 웹페이지에 POST  전송/파일전송 하는 방법입니다. 크게 어려운 부분이 아니라서 소스코드로 대체 합니다. procedure TFmMain.Button1Click(Sender: TObject); var   DataStream : TidMultiPartFormDataStream;   rs: TMemoryStream; begin   DataStream := TIdMultiPartFormDataStream.Create;   rs := TMemoryStream.Create;   try     idHTTP1.Request.ContentType := DataStream.RequestContentType;     DataStream.AddFormField(''logid'',Trim(Edit1.Text));     DataStream.AddFormField(''passwd'',Trim(Edit2.Text));     // Post 로 apple_logid 와 apple_passwd 값을 전송합니다.     DataStream.AddFile(''upfile'',''e:\\downlogo.bmp'',''application/octet-stream'');     // upfile 변수에 ''e:\\downlogo.bmp'' 파일 을 추가 합니다..      DataStream.Position := 0;     try       IdHTTP1.Post(''test.p...

[Delphi] SAPI 컴포넌트 등록 방법(TTS 구현)

이미지
 SAPI 컴포넌트 등록 방법(TTS 구현) Spvoice1.Speak(txtHangul.Text,0); 예전에 아이들이 한글 공부하는 프로그램을 간단하게 만들었었는데요. 처음에는 구글을 이용해서 TTS 를 구현했습니다. 근데 구글의 방법이 막혀서 다른 방법으로 TTS를 구현했는데 그 방법을 소개합니다. 바로 SAPI 컴포넌트를 사용하는 방법입니다. 설치방법 메뉴 - > Component -> Import Component 선택 Import a Type Library 선택 -> Next 버튼 클릭 Install to New Package”를 선택 후 -> [Next] 버튼 클릭. “Microsoft Speech Object Library” 를 선택하고, 버전과 GUID를 확인한다. -> [Next] 클릭. “Palette Page”에서 “ActiveX”를 선택하고 -> [Next] 버튼 클릭. Package 저장한 경로 설정하고 Description 입력하고 -> Finish 버튼 클릭 Unit “SpeechLib_TBL.pas” ~ 추가하겠다는 메세지가 나오면 -> OK 클릭 컴파일 과정이 나오고 -> 아래의 이미지 처럼 install 메세지 나옴 아래이미지 처럼 TSp 로 시작하는 컴포넌트 들이 있습니다. TTS 구현 샘플 소스 TSpVoice 컴포넌트 폼에 올리고 Spvoice1.Speak("TTS 읽은 문장",0);

[Delphi] 프로그래밍 팁 모음 #1

 로케일 정보 읽기 시스템 로케일 정보 읽어오는 방법 지금 사용하는 OS가 어떤 언어를 사용하고 있는지 구분하기 위한 코드 이번 프로젝트에 중국어를 표현해야 되서 사용하게 된 코드 var    Buffer: array[0..2] of Char; begin    GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, Buffer, sizeof(Buffer));    //Buffer 이 "KOR" 이면 한국어 이다.    //"CHI", "CHT" 이건 중국어 end; CD-ROM 드라이브 목록 가져오기 CD-ROM 드라기브 목록 가져오기 var   CDRom: Byte; begin   for CDrom := 65 to 90 do begin     if GetDriveType(PChar(Chr(CDRom) + ':')) = 5 then       // CDROM 드라이브인지 체크       // 0 : 드라이브가 아님       // 1 : 루트 디렉토리 없음       // 2 : 이동식 디스크       // 3 : 고정 디스크       // 4 : 원격 디스크       // 5 : CDROM       // 6 : 램디스크       cboDrive.Items.Add(PChar(Chr(CDRom) + ':')); end; 컨트롤 한/영 토글하기 설정하는 컨드롤(TEdit)등에 키보드의 한/영키를 누른 효과를 줍니다. uses에 imm 을 추가합니다. 그리고 한/영 모드 타입 TImeInputMode = (imHangul, imEnglish); 선언해 줍니다...

[Delphi] 스트링그리드 제어하기

 Delphi 를 쓰다보면 가장 접하기 쉬운 그리드 기능이 적어서 가벼운 그리드인 스트링그리드(TStringGrid)를 제어하는 법을 간단히 정리해 보았습니다. 1. 스트링 그리드 ROW 삭제 var   i: Integer; begin   // String Grid ROW 삭제   for i := StringGrid5.Row to StringGrid5.RowCount - 2 do     StringGrid5.Rows[i].Assign(StringGrid5.Rows[i + 1]);   StringGrid5.RowCount := StringGrid5.RowCount - 1; 2. 컬럼 숨기기 StringGrid5.Colwidths[3] := -1; 3. 그리드 중간에 빈ROW 삽입하기 TStringGridMove = class(TStringGrid) public   procedure RowMoved(FromIndex, ToIndex: Longint); end; procedure TStringGridMove.RowMoved(FromIndex, ToIndex: Integer); begin   inherited; end; // 예제 TStringGridMove(StringGrid1).RowCount = TStringGridMove(StringGrid1).RowCount + 1 TStringGridMove(StringGrid1).RowMoved(TStringGridMove(StringGrid1).RowCount, 3);

[Delphi] 웹브라우져 컨트롤을 이용하여 출력하기

이미지
  웹브라우져 컨트롤을 이용하여 출력하기 델파이로 프로그램 작업을 하다가 출력물이 필요해서 웹브라우져 컨트롤을 이용한 출력 프로그램을 만들었습니다. 델파이 스타터 버전에는 퀵리포트나 패스트 리포트가 없어서 HTML 을 디자인 하고 웹브라우져 컨트롤로 표시한후 출력하면 되겠다는 생각에 만들어 보게 되었습니다. 출력 데이터 생성 ---- 소스코드 var   htmltext, errmsg: String;   Fp: TextFile;   IOError : integer; begin   htmltext := '<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">' + #10#13;   htmltext := htmltext + '<table border="1">';   htmltext := htmltext + '<tr><td>성명</td><td>' + Edit1.Text + '</td></tr>';   htmltext := htmltext + '<tr><td>생년월일</td><td>' + Edit2.Text + '</td></tr>';   htmltext := htmltext + '<tr><td>연락처</td><td>' + Edit3.Text + '</td></tr>';   htmltext := htmltext + '</table>';   AssignFile(fp, 'C:\TEMP\tmp.html');   {$I-}   ReWrite(Fp);   {$I+}   IOError := IORe...

[Delphi] 웹으로 파일 전송(POST) 하는 프로그램

  웹으로 파일 전송(POST) 하는 프로그램 예전에 홈페이지나 블로그에 파일을 전송하는 프로그램을 만든적 있었는데 그때 소스를 정리해서 올립니다. ​ 폴더 선택 폴더 선택 다이얼로그 가 나와서 PC의 폴더를 선택하는 코드(SelectDirectory 사용) ---- 소스코드 const     SELDIRHELP = 1000; var     Dir: String;     OSVersionInfo: TOSVersionInfo; begin     // 폴더 선택     // 작업 경로 설정     Dir := CurPath;     OSVersionInfo.dwOSVersionInfoSize := sizeof(TOSVersionInfo);     GetVersionEx(OSVersionInfo);     if OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin         if SelectDirectory('폴더 찾아보기','',Dir) then begin             if Dir[Length(Dir)] &lt;> '\' then                 Dir := Dir + '\';             CurPath := Dir;             LoadFileList(CurPath);         end;     end     else begin   ...

DirectShow 기본 Cam 프로그램

이미지
  DirectShow 기본 Cam 프로그램 DirectShow 기본 클래스 ​필더그래프 생성, Com 초기화 필더생성 필더 핀 연결 캠(WebCam) 장치 가져오기 DSUtils 는 DSPack 에 포함된 소스 입니다. ---- 소스코드 unit uBaseDShow; interface uses   Winapi.Windows,   {DirectShow 헤더와 ActiveX 헤더 추가}   Winapi.ActiveX, Winapi.DirectShow9, DSUtils; type   TBaseDShow = class(TObject)   private   public     FilterGraph: IGraphBuilder; // 필터그래프의 인터페이스 중의 하나.     MediaControl: IMediaControl;     VideoWindow: IVideoWindow;     constructor Create;     destructor Destroy; override;     function CreateFilterGraph(var Graph: IGraphBuilder): Boolean;     function CreateFilter(const clsid: TGUID; var Filter: IBaseFilter): Boolean;     function FindPinOnFilter(const Filter: IBaseFilter; const PinDir: TPinDirection; var Pin: IPin): HRESULT;     function GetCamFilter: IBaseFilter;   end; implementation { TBaseDShow } constructor TBaseDShow.Create; begin ...

[Delphi] 파일에서 이미지 타입 읽기

파일에서 이미지 타입 읽기 파일 확장자는 이미지 포맷과 다르게 변경 할 수 있어서, 파일 헤더에서 이미지 타입을 읽어야 합니다. const   US_BITMAP_TYPE = $4D42;   US_JPEG_TYPE   = $FFFFD8FF;   US_GIF_TYPE    = $4947;   US_WMF_TYPE    = $FFFFCDD7;   US_TIF_TYPE    = $4949;   US_PCX_TYPE    = $50A;   US_PSD_TYPE    = $4238;   US_PNG_TYPE    = $5089; procedure TfrmMain.Button1Click(Sender: TObject); var   MyType: SmallInt;   MyFile: TFileStream;   sTemp: string; begin   MyFile := TFileStream.Create('.MainButtons.png', fmOpenRead + fmShareDenyNone);   MyFile.Read(MyType, SizeOf(MyType));   sTemp := '...

SmallPlayer : 동영상 재생기

이미지
  초기버전 자작 프로그램 을 소개합니다. SmallPlayer 예전에 곰플레이어, 다음 팟플레이어 등을 동영상 플레이어로 사용했는데 계속 업데이트되면서 광고가 생기더라고요 물론 무료 플레이어라서 어느 정도 광고가 붙는 건 이해하겠지만 약간 귀찮더라고요. 그래서 다른 플레이어를 알아보던 중 예전에 DirectShow 사용해서 만들어놓은 기초 소스가 있으니 조금 더 업그레이드해서 만들어서 쓰자는 생각이 들어 프로그램을 작성하게 되었습니다. 작업을 하다 보니 일이 커지는데 기존에 저는 주로 재생만 하다 보니 재생만 되면 될 거 같았었는데 생각보다 신경 써야 할게 많네요. 테스트 버전 스크린샷 – 동영상은 지금 만나러 갑니다 설명 DirectShow 기반의 미디어 플레이어이며 기능이 단순한 플레이어입니다. LAV 필터와, DirectVobSub(자막 필터)를 사용하여 단순하게 동영상 재생을 하는 플레이어이며. LAV 필터를 사용하니 따로 코덱을 설치하지 않아도 여러 동영상을 재생할 수 있고 DirectVobSub를 이용하여 자막을 표시합니다. 우선 v0.1로 재생 기능만 있는데 틈틈이 업그레이드할 계획입니다. 어느정도 완성한 버전 – 동영상은 지금 만나러 갑니다 공개하기 부끄럽네요. 아직 구현하고 싶은 부분이 많아서 지금은 재생만 되기 때문에 제가 사용하는 데에는 문제가 없는데 구현해야 할 부분이 많은데 시간이 없네요.. 취미로 하는 거라서!!!!! 소스가 필요하신 분은 연락 주세요!!!! 앞으로 추가할기능 디자인 Windows10 기준으로 변경 전체화면 재생기능 추가 키 이벤트 스페이스:정지,재생, 화살표 +5초, -5초 숫자키 이벤트 : 1(화면 크기50%),2(화면크기100%),3(화면크기150%)

개발툴 델파이(Delphi) 10.2 도쿄 스타터 에디션 무료배포

이미지
간단히 이름 및 이메일 주소를 입력하면 델파이 최신 버전의 스타터 에디션 버전을 무료로 받을 수 있습니다. 32Bit 개발 외에 많은 부분이 제약이 있지만 간단한 프로그램 제작하는데 문제가 없는 거 같네요. 저도 SmallPlayer 를 델파이 스타터 버전으로 개발하고 있습니다. 2002년 처음 회사에서 델파이를 사용하여 개발자 일을 하다가 2006년 두 번째 회사에서도 초반에 델파이를 사용했었습니다. 델파이 개발자로 취업이 되었지요. 그러다 C#을 주로 사용했었는데 다시 델파이를 만져보니 재미있네요!!! 며칠 사용해 보니 델파이가 모바일 개발이 포함되면서 엄청 무거워지던데 스타터 버전은 엄청 가볍습니다. 용량도 작게 차지하고 파이어몽키 부분이랑 안드로이드 개발 부분까지 합하면 개발 툴 용량이 엄청 크더라고요. 델파이 기본 IDE에 Indy(통신 컴포넌트)는 기본 포함되어 있고 DB 쪽 컴포넌트들이 빠져서 DB 관련 개발(dbExpress, ADO, FireDAC)은 좀 힘들 거 같은데 그래도 가능성이 많아 보이네요! 델파이 가지고 재미난 자작 프로그램 많이 만들어야겠습니다. 다운로드 델파이 스타터 링크 -> https://www.embarcadero.com/products/delphi/starter 개발툴 정보 ->  https://skshpapa80.blogspot.com/2024/02/delphi.html