'Delphi'에 해당되는 글 6건

  1. 2007.04.05 Delphi 2007 for Win32 (1)
  2. 2007.03.29 Delphi for PHP
  3. 2007.03.26 Delphi 2 PHP Function
  4. 2006.05.30 화니의 DirectShow 기초 2 (1)
  5. 2006.05.30 화니의 DirectShow 기초 1
  6. 2006.02.01 Borland Developer Studio 2006 (2)
사용자 삽입 이미지

Delphi 2007 Enterprise Trial 을 받을 수 있도록 코드기어에 공개가 되었다.
다행이 PHP 처럼 1day 는 아니고 30day다. 그래서 그런지 Delphi for PHP는 벌써 크랙이 돌고 있는지도...

2006버전과 별로 다른점은 거의 없는듯하다. 비스타용 다이얼로그 추가정도가 다를뿐 거의 비슷하다.
신고

'이야기 > 프로그래밍' 카테고리의 다른 글

Delphi 2007 for Win32  (1) 2007.04.05
Delphi for PHP  (0) 2007.03.29
Borland Developer Studio 2006  (2) 2006.02.01
볼랜드, 델파이2006/C++빌더2006 발표  (2) 2005.10.12
Posted by 화니.

댓글을 달아 주세요

  1. 2007.04.12 15:46  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

사용자 삽입 이미지

Delphi for PHP Trial 버전이 나왔습니다.
근데 1day trial -_-;;
설치 프로그램은 30메가 정도로 크진 않네요
업무용 프로그램을 개발하는데 좋을 듯합니다.
제가 못찾은건진 몰라도 FTP로 전송하는 기능이 없네요;

다운로드는
http://www.codegear.com/Downloads/TrialandFreeVersions/Delphi/DelphiforPHP/tabid/250/Default.aspx
에서 가능.
메일로 라이센스 파일이 옵니다. 설명대로 하시면 실행이 가능합니다
신고

'이야기 > 프로그래밍' 카테고리의 다른 글

Delphi 2007 for Win32  (1) 2007.04.05
Delphi for PHP  (0) 2007.03.29
Borland Developer Studio 2006  (2) 2006.02.01
볼랜드, 델파이2006/C++빌더2006 발표  (2) 2005.10.12
Posted by 화니.

댓글을 달아 주세요

저 혼자 작성한 함수들입니다.
PHP를 배우신 분에게 익숙하게 만든 함수예요
http://kr.php.net 의 메뉴얼과 같은 방식이지만 델파이 특성으로 가끔 다른것도 있습니다.
거의 문자열 관련 함수들이고 앞에 php_ 를 붙이면 됩니다.

지원함수 목록
Const
 PHP_RAND_MAX=2147483647;
function php_basename(path:String; suffix:String=''):String;
function php_copy(source:String; dest:String):Boolean;
function php_date(format:String;timestamp:Integer=0):String;
function php_dirname(path : String):String;
function php_exec(command:String):String;
function php_explode(Const separator, str:String):TStringList;overload;
procedure php_explode(Const separator, str:String;var Data:TStringList);overload;
function php_file_exists(filename:String):Boolean;
function php_floor(value : Extended):Integer;
function php_filesize(filename:String):Int64;
function php_implode(glue:String;pieces:TStrings):String;
function php_intval(str:String):Integer;
function php_is_dir(filename:String):Boolean;
function php_join(glue:String;pieces:TStrings):String;
function php_mkdir(pathname:String;mode:Integer=0):Boolean;
function php_md5(str:String;raw_output:Boolean=False):String;
function php_rand(Min:Integer=0;Max:Integer=0):Integer;
function php_round(val: Extended; precision:Integer = 0):Integer;
function php_server(name:String):String;
function php_strlen(str:String):Integer;
function php_strpos(haystack : String;needle : string;offset:Integer=0):Integer;
function php_strrchr(haystack:String;needle:String):String;
function php_strrev(Const str:String):String;
function php_strrpos(haystack:String;needle:String;offset:Integer=0):Integer;
function php_strtolower(str:String):String;
function php_strstr(haystack, needle:String):String;
function php_str_replace(Const search, replace, subject:string):string;
function php_substr(str : string;start:Integer;plength:Integer=0):String;
function php_time():Integer;
function php_trim (str:String):String;
function php_urldecode(str:String):String;
function php_urlencode(str:String):String;
function php_utf8_decode(data:String):String;
function php_utf8_encode(data:String):String;
function php_unlink(filename:String):Boolean;
function php_ord(str:String):Integer;
function php_pow(base, exp:Integer):Integer;
function php_htmlspecialchars(str:String;quote_style:Integer=0;charset:String=''):String;

신고

'프로젝트 > delphi2php' 카테고리의 다른 글

Delphi 2 PHP Function  (0) 2007.03.26
Posted by 화니.
TAG Delphi, php

댓글을 달아 주세요

이번엔 초간단 플레이어를 만들어 보겠습니다.

먼저 DSPack 을 설치하시길 권합니다.
DirectShow9헤더 파일만 있어도 되지만 DSPack을 설치하시는게 편리합니다.
DSPack 다운로드

DSPack은 아직 공식적으로 BDS2006버전이 없습니다.
CVS에서 DSPack 2006버전을 받거나 아래에서 받으시면 됩니다.

DSPACK.zip

DSPack 2006 다운로드


준비가 되었으면 플레이어를 만들어 봅시다.


버튼 하나랑 OpenDialog 하나를 놨습니다.

코드를 작성합니다.

unit player;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DirectShow9, ActiveX;  //Directshow와 ActiveX를 추가

type
  TForm1 = class(TForm)
  Button1: TButton;
  OpenDialog1: TOpenDialog;
  procedure FormCreate(Sender: TObject);
  procedure Button1Click(Sender: TObject);
  private
  { Private declarations }
  GraphBuilder: IGraphBuilder;
  MediaControl: IMediaControl;
  public
  { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    //MediaControl 인터페이스 연결
    GraphBuilder.QueryInterface(IID_IMediaControl, MediaControl);
    //파일 읽기
    GraphBuilder.RenderFile(StringToOleStr(OpenDialog1.FileName), nil);
    //재생
    MediaControl.Run;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//GraphBuilder 생성
  CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER,
  IID_IFilterGraph, GraphBuilder);
end;

end.

아주 간단한 코드입니다.
이걸로 음악파일을 물론 동영 파일도 재생됩니다.

ds_study.zip

예제파일 다운로드

물론 이것만으로 플레이어라고 하기엔 많이 부족합니다^^;
seek바가 있어서 앞으로뒤로 탐색할 수 있는 기능도 필요하고 볼륨 조절등 다양한 기능이 추가되어야 합니다.
seek같은건 IMediaSeeking 인터페이스 추가를 하여 쉽게 만들 수 있습니다.
위의 코드에 IMediaControl 인터페이스를 사용했습니다. 이 인터페이스는 Play(Run), Pause, Stop등을 할 수 있는 인터페이스입니다.

동영상을 열면 1편의 GraphEdit에서 보았듯이 ActiveMovieWindow 가 열리면서 동영상이 재생됩니다.
동영상 화면을 따로 제어하시려면 IVideoWindow 인터페이스를 사용하시면 됩니다.
인터페이스에 대한 자세한 설정은 DirectX SDK를 참고하시면 됩니다.

기초를 다루기때문에 자세한 내용은 SDK를 참고하시기 바랍니다.

3편에서는 좀더 복잡한 wav파일 변환기를 만들어 보겠습니다.
신고

'자료들 > Delphi' 카테고리의 다른 글

화니의 DirectShow 기초 2  (1) 2006.05.30
화니의 DirectShow 기초 1  (0) 2006.05.30
Indy9 -> Indy10 으로 업데이트하기  (0) 2006.03.01
MemProof 메모리 누수 탐지  (0) 2005.09.26
Posted by 화니.

댓글을 달아 주세요

  1. 2007.05.29 17:32  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

DirectShow 많이 들어보셨을 겁니다.

DirectX에 들어있는것중 하나이지요.
DirectX에는 DirectSound, DirectMusic, DirectShow 가 있습니다.
DirectShow는 멀티미디어의 통합관리를 한다고 생각하시면 됩니다.
저도 배우면서 1주일정도 고생을 했네요.
다른분들이 좀더 쉽게 이해할 수 있었으면 좋겠습니다.

DirectShow! 조금 공부해보시면 알겠지만 핀, 필터 등의 개념이 생소합니다.
전 이 구조를 이해하는도 오래 걸렸습니다.

먼저 DirectShow를 이해하기 위해 GraphEdit 라는 프로그램이 있으면 좋습니다.


압축을 푼 후 regsvr32 proppage.dll 를 실행하여 proppage.dll 를 등록합니다.
등록을 안하셔도 일단 사용은 가능하나 자세한 설정을 하려면 필요합니다.

이제 GraphEdit 를 실행해 봅니다.
File->Render Media File...을 클릭하여 음악파일 하나를 읽어 봅니다.

위의 그림과 같이 음악파일에서 여러개가 이어진 모습이 보입니다.
이것이 DirectShow 에서 음악파일을 읽어 사운드로 출력하는 연결 구조입니다.
보라색 사각형은 필터를 의미합니다.
구조를 설명하자면 음악파일을 읽고->MPEG스트림필터를 통하고->MPEG를 디코딩하고->사운드카드로 출력을 합니다.
보시면 Output, Input, Audio, XForm In, XForm Out 등 사각형 양끝에 표시가 있습니다.
이것은 핀을 의미하고 오른쪽에 있는것이 입력핀(InputPin), 왼쪽에 있는 것이 출력핀(OutPin)입니다.
이 필터끼리 연결을 하는 것이 핀의 역활입니다.
동영상의 경우엔 영상, 사운드 두개가 나와서 출력핀이 두개로 나누어집니다.
일단 음성을 보신 후 다음에 동영상에 대해 다루겠습니다.
GraphEdit 화면에서 녹색▶버튼을 클릭하면 음악이 재생됩니다.
화면으로 보기엔 DirectShow는 간단하게 작동하시면 세밀한 작동을 위해선 각 필터와 핀을 수동으로 연결시켜주어야 합니다.

다음은 동영상 파일을 열어본 모습입니다.
위의 그림을 보면 AVI Splitter필터에서 음성과 화면을 나눌 수 있는 두개의 출력핀이 나옵니다.
두개의 출력핀에서 음성과 화면을 코덱으로 푼후 재생을 하게 됩니다.
녹색▶버튼을 누르면 ActiveMovieWindow가 뜨면서 동영상이 재생됩니다.
영상이 출력될 윈도우를 지정하지 않으면 자동으로 ActiveMovieWindow가 뜨게 됩니다.

DirectShow로 영상, 음성을 다를 수 있고 각종 코덱을 연결하여 변환기를 만들 수 있다는 것을 이해하셨을 겁니다.
좀더 생각해보시면 코덱이 없이 돌아가는 곰플레이어 같은 것도 만들 수 있습니다.
곰플레이어는 설치시 코덱을 따로 둔다음 필요할때 해당 코덱파일을 읽어서 작동할 뿐 구조는 비슷하다고 생각하시면 됩니다.

이것으로 1편을 마칩니다^0^;
다음엔 실제 코딩에 들어갑니다~
신고

'자료들 > Delphi' 카테고리의 다른 글

화니의 DirectShow 기초 2  (1) 2006.05.30
화니의 DirectShow 기초 1  (0) 2006.05.30
Indy9 -> Indy10 으로 업데이트하기  (0) 2006.03.01
MemProof 메모리 누수 탐지  (0) 2005.09.26
Posted by 화니.

댓글을 달아 주세요



많이 기대하던 2006을 설치했다.
적응기간이 조금 필요할 것이라고 생각된다.
Indy버전도 10에 적응해야할 듯하다. 9버전도 설치할 수 있지만 대세를 따라야 함으로 -0-
Borland Developer Studio 2006 으로 볼랜드사가 개발툴영역을 좀더 넓힐 수 있었으면 좋겠다. .NET 을 겨냥해서 나온 툴이지만 ...
조금 해봤는데 툴에 자석윈도우 기능이 들어가있다
신고

'이야기 > 프로그래밍' 카테고리의 다른 글

Delphi 2007 for Win32  (1) 2007.04.05
Delphi for PHP  (0) 2007.03.29
Borland Developer Studio 2006  (2) 2006.02.01
볼랜드, 델파이2006/C++빌더2006 발표  (2) 2005.10.12
Posted by 화니.
TAG Delphi

댓글을 달아 주세요

  1. Favicon of http://blog.dbza.net BlogIcon vinu 2006.02.01 18:08 신고  댓글주소  수정/삭제  댓글쓰기

    오;;; 이게 머다냐;; -_-