천객만래 [千客萬來] (It has an interminable succession of visitors)

RAD Studio에는 여러 라이센스 옵션이 있습니다.

  • 지명 사용자 라이센스 : 특정 개인에게 사용 권한을 부여 라이센스. 소프트웨어는 여러 대의 컴퓨터에 설치하여 사용할 수 있지만 동시에 사용할 수는 1 만입니다. 지명 사용자 라이센스를 여러 사용자가 공유하거나 양도 할 수 없습니다. 지명 사용자 라이센스를 사용하려면, EDN 계정 (E 메일 주소가 필요)를 작성해야합니다.
  • 네트워크 지명 (Network Named) 또는 네트워크 동시 (Network Concurrent) 라이센스 : 라이센스 서버 (Embarcadero License Server)에 의해 관리되는 라이센스. 네트워크 지명 사용자 라이센스는 조직의 사용자에게 할당하여 사용할 수 있습니다. 네트워크 동시 라이센스는 구입 한 라이센스 수 분의 조직의 불특정 다수가 동시에 사용할 수있는 라이센스입니다. 어떤 라이센스도 조직 내에 구축 된 라이센스 서버에 연결하는 네트워크 환경이 필요합니다.
  • Flexera FlexNet에 의해 관리되는 네트워크 라이센스 (일반 판매는하고 있지 않으므로 자세한 내용은 문의 바랍니다)
  • 아카데믹 라이센스 - 학생 개인의 학습을위한, 아카데믹 볼륨 라이선스 - 학교 교실 수업 교육을위한




RAD Studio 10.2 Tokyo는 다음 이전 버전의 라이센스를 사용할 수 있습니다.

  • Delphi 10.1 Berlin, Delphi 10 Seattle, Delphi XE8, Delphi XE7, Delphi XE6, Delphi XE5, Delphi XE4, Delphi XE3, Delphi XE2, Delphi XE, Delphi 2010 Delphi 2009, Delphi 2007, Delphi 7
  • C ++ Builder 10.1 Berlin, C ++ Builder 10 Seattle, C ++ Builder XE8, C ++ Builder XE7, C ++ Builder XE6, C ++ Builder XE5, C ++ Builder XE4, C ++ Builder XE3, C ++ Builder XE2, C ++ Builder XE, C ++ Builder 2010, C ++ Builder 2009, C ++ Builder 2007, C ++ Builder 6
  • HTML5 Builder XE3, RadPHP XE2, RadPHP XE

Posted by SB패밀리

RAD Studio 버전

IT - 개발 2019.01.10 14:44

RAD Studio에는 Professional, Enterprise Architect의 3 가지 버전이 있습니다. 

각 에디션의 차이, 기능 자세한 내용은 RAD Studio 제품 버전 및기능 목록 을 참조하십시오.



Posted by SB패밀리

2018년 1월, 12월 프로그래밍 언어 인기도 순위


네덜란드 티오베(TIOBE) 회사가 매달 검색엔진 통계를 이용하여 발표하는 개발언어 인기도 순위


2018년12월



2018년 1월


1년 전 / 1개월 전 정보이지만 대략 트렌드 파악이 간다.

2019년 1월은 어떨지 조만간 확인하도록 하고

C#은 6위, DELPHI는 11위 정도를 유지하고 있구나.


https://www.tiobe.com/tiobe-index/

Posted by SB패밀리

Windows 7 에서 델파이 도움말 사용하기


ARCHITECTURE에 따라 x86 (32bits)    x64 (64bits) 설치


Windows6.1-KB917607-x64.msu

Windows6.1-KB917607-x86.msu



'IT - 개발' 카테고리의 다른 글

API, 라이브러리, SDK, 프레임워크, 플랫폼 - 관한여  (0) 2018.12.16
마이랩뷰 사이트 운영 종료 안내  (0) 2018.10.30
Windows 7 에서 델파이 도움말 사용하기  (0) 2018.10.29
PI System  (0) 2018.10.13
DAS, NAS, SAN 개념  (0) 2018.09.27
IaaS PaaS SaaS  (0) 2018.09.19
Posted by SB패밀리


Delphi Compiler Versions


The following table lists the version number associated with each release of Delphi compilers, beginning with Turbo Pascal 4.0 and ending with the current version of the compiler:

Delphi conditional VER<nnn>ProductProduct VersionPackage VersionCompiler Version
VER320Delphi Tokyo / C++Builder Tokyo (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android)2525032.0
VER310Delphi Berlin / C++Builder Berlin (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android)2424031.0
VER300Delphi Seattle / C++Builder Seattle (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android)2323030.0
VER290Delphi XE8 / C++Builder XE8 (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android)2222029.0
VER280Delphi XE7 / C++Builder XE7 (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS/Android)2121028.0
VER270Delphi XE6 / C++Builder XE6 (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS/Android)2020027.0
VER260Delphi XE5 / C++Builder XE5 (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS)1919026.0
VER250Delphi XE4 / C++Builder XE4 (Delphi:Win32/Win64/OSX/iOS) (C++Builder:Win32/Win64/OSX)1818025.0
VER240Delphi XE3 / C++Builder XE3 (Delphi:Win32/Win64/OSX) (C++Builder:Win32/Win64/OSX)1717024.0
VER230Delphi XE2 / C++Builder XE2 (Delphi:Win32/Win64/OSX) (C++Builder:Win32/OSX)16160161 is the version for the five FireMonkey packages at XE2 Update 2: fmi161.bpl, fmx161.bpl, fmxase161.bpl, fmxdae161.bpl, and fmxobj161.bpl.23.0
VER220Delphi XE / C++Builder XE (Win32)1515022.0
VER210Delphi 2010 / C++Builder 2010 (Win32)1414021.0
VER200Delphi 2009 / C++Builder 2009 (Win32)1212020.0
VER190Delphi 2007 for .Net *1111019.0
VER180 or VER185Delphi 2007 / C++Builder 2007 for Win32 *1111018.5
VER180Delphi 2006 / C++Builder 2006 (Win32/.Net) and Delphi/C++Builder 2007 for Win321010018.0
VER170Delphi 2005 (Win32/.Net)99017.0
VER160Delphi 8 for .Net88016.0
VER150Delphi 7 (and 7.1)77015.0
VER140Delphi 6 / C++Builder 666014.0
VER130Delphi 5 / C++Builder 55NANA
VER125C++Builder 44NANA
VER120Delphi 44NANA
VER110C++Builder 33NANA
VER100Delphi 33NANA
VER93C++Builder 1NANANA
VER90Delphi 22NANA
VER80Delphi 11NANA
VER70Borland Pascal 7.0NANANA
VER15Turbo Pascal for Windows 1.5NANANA
VER10Turbo Pascal for Windows 1.0NANANA
VER60Turbo Pascal 6.0NANANA
VER55Turbo Pascal 5.5NANANA
VER50Turbo Pascal 5.0NANANA
VER40Turbo Pascal 4.0NANANA

* Note that Delphi 2007 defines two VERxxx symbols (VER180 and VER185). Delphi 2006 and 2007 are binary compatible, so 180 works for both. If you need only 2007, use VER185.

NoteCompilerVersion was first introduced with Delphi 6, so earlier versions do not have the CompilerVersion constant.

출처: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Compiler_Versions

Posted by SB패밀리

Rad Studio XE 버전별 멀티디바이스 지원 정보




안드로이드, iOS, Android, 아이오에스, RAD Studio, DELPHI, 모바일,

Posted by SB패밀리

[delphi] IP주소 유효성체크


20070326



function TForm1.IsValidIPAddress(strIP: String): Boolean;
var
TempList: TStringList;
i: Integer;
nTemp: Integer;
begin
Result := False;
TempList := TStringList.Create;

ExtractStrings(['.'], [], PAnsiChar(strIP), TempList);
if TempList.Count = 4 then
begin
   for i := 0 to 3 do
   begin
     nTemp := StrToIntDef(TempList[i], -1);
     if (nTemp < 0) or (nTemp > 255) then
     begin
       break;
     end;
   end;
   Result := True;
end;

TempList.Free;
end;


Posted by SB패밀리

[delphi/web] how to detect when a Document is comp...



2004.01.12


An other example:

This example shows how to detect when a document is completely 
loaded, even if it includes multiple frames. Only the final 
OnDocumentComplete event passes the same Dispatch interface as the 
OnNavigateComplete event handler.

var
  CurDispatch: IDispatch; {save the interface globally }

procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject; const 
pDisp: IDispatch; var URL: OleVariant);

begin
  if CurDispatch = nil then
    CurDispatch := pDisp; { save for comparison }
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const 
pDisp: IDispatch; var URL: OleVariant);
begin
  if (pDisp = CurDispatch) then
  begin
    Beep; {the document is loaded, not just a frame }
    CurDispatch := nil; {clear the global variable }
  end;
end;

cu Andries

Posted by SB패밀리

[신경망] Self-Organizing Map(SOM), 1차원적 구현 예, 소스 포함

2001.09.20



1997년에 신경망을 공부하던 때 코딩하였던 프로그램이닷. 

우리 인간은 태어나면서 부모에게 배우기도 하지만... 아이들은 부모들이 가르치지도 않은 많은 것을 자연스럽게 터득하게 된다. 이러한 것에 대한 설명 중 하나가 필란드 헬싱키 공과대학 (Helsinki Technology University)의Teuvo Kohonen에 의해 1962년에 제안되었다. Kohonen의 NN(Neural Network)은 아이가 배우지도 않고 스스로 터득하듯이 자율적인 학습(Unsupervised Learning)의 NN모델이다. 


Kohonen의 Self-Organizing Map(SOM) 에서 Self-Organizing이란 주어진 입력패턴에 대하여 정확한 해답을 미리 주지 않고 스스로 학습할 수 있는 능력을 말한다. 특징으로는 경쟁학습과 위상보존사상(Topology Reserving Mapping), 뉴론별로 연결 강도가 존재한다. 더 자세한 이야기는 생략하기로 한다. 이 프로그램은 델파이로 구현되었으며, 예전에 구현했던 소스를 어렵게 찾아서 올립니다.



som___1D_Map.zip



Posted by SB패밀리

Delphi 설치 후 TADOConnection(dbgo)이 없다?



델파이(Rad Studio)를 설치했는데


프로젝트를 로딩하는 중에 TADOConnection이 없다고 나온다면.?


황당하지만 어쩔 수 없이 수동으로 등록을 해주어야 한다.


<Delphi 2010 기준>

TADOConnection

C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\dclado140.bpl

* install package 메뉴를 선택해서 위의 bpl을 등록한다.



아래의 방법도 있다.

설치 DVD(ISO)에서 dbpack_setup.exe를 실행해서 modify 옵션으로 설치하면 package가 델파이에 등록된다.


Database package

[DVD Drive]:\Install\dbpack_setup.exe

(RAD Studio 설치후 데이터베이스(ex:adodb)패키지가 없을 실행해서 modify 실행)





Posted by SB패밀리

[강좌] 리소스의 활용 I  


아래에 Resource DLL의 활용 방법에 대한 강좌 요청이 있어서 저의 졸고라도
도움이 되실까 해서 올려 드립니다. 참고가 되시길...

리소스의 활용 I

글: 하영재(vaio91@yahoo.com)
    델파이 코리아(www.delphikorea.com)


들어가며...

델파이 코리아(www.delphikorea.com)나 다른 통신사에서 심심치 않게 올라오는
질문중에 Resource File(이하 리소스 파일이라 한다...^^)의 사용에 대한 질문이
있다. 
리소스 파일을 만들고 사용하는 문제들에 대한 질문들인데, 여러가지 단편적인
내용만을 가지고 조합을 해야 하니 처음 접하는 분들은 어려움을 느낄 수도 있을
것이다. 이런 분들을 위해 리소스 파일에 대한 모든 부분이라고는 할 수 없겠으나
많이 사용되는 부분에 대해서 예제와 더불어 간단하게 나마 천천히 살펴보려 한다. 


지금 부터 살펴볼 내용은 다음과 같다.

- 리소스 파일을 만드는 방법.
- 리소스 DLL을 만드는 방법.
- 위의 리소스 파일을 만드는 방법의 상세 내용
   . Bitmap 리소스 파일을 만들고 사용하기
   . Text 리소스 파일을 만들고 사용하기
   . AVI 리소스 파일을 만들고 사용하기
- 리소스 사용시 주의해야 할 메모리 문제
- 그 외 리소스로 할 수 있는 일들

이상과 같은 내용을 살펴 볼 것인데 아주 기초적인 부분부터 다룰 것이므로 기존에
다뤄본 분들이라면 아낌없이 다른 강좌들에 눈을 돌리자... ^^

이곳에서 사용할 예제는 본인이 직접 작성한 것도 있으나 아주 잘만들어진 예제를
제공하기 위해 Borland TI의 소스도 참고했음을 밝혀둔다. TI의 예제 소스를 사용한
부분에서 미리 발췌 했음을 알리도록 할 것이다.


리소스 파일 만들기...

리소스 파일은 바이너리 형태의 데이터로서 RCDATA라 부른다. 리소스 파일은
Res라는 확장자를 가지게 되는데 이 Res 파일을 만들기 위한 과정을 살펴 보자...

Res 파일을 만들기 위해서는 Text로 작성된 RC 파일이 있어야 한다. 이 RC 파일은
Res 파일에 포함하고자 하는 데이터 이름과 데이터 식별자, 그리고 데이터로 구성된
Text 파일이다. RC 파일의 예를 보자...

- RC 파일의 예

  WAVEFILE WAVE c:\WaveSound.wav

이렇게 작성된 것이 RC 파일이다. 여기서 'WAVEFILE'은 리소스를 호출할 때 쓰일
이름이며 'WAVE'는 이 리소스가 WAVE 파일임을 명시하는 것이며 맨 뒷부분은 실제로
리소스에 적재될 파일의 경로와 파일명으로 구성되어 진다. 
이렇게 텍스트 에디터에서 작성을 한 후 '파일이름.RC'로 저장을 하면 된다. 

여기까지 해서 RC 파일을 작성했으면 이제는 컴파일을 해서 RES 파일로 만드는
과정이 남아 있다. 
리소스 파일을 만들기 위해 델파이에서는 BRCC(Boaland Resource Command Line
Compiler)와 BRCC32를 제공한다. 이 녀석들은 RC 파일을 컴파일해서 RES 파일로
만들어 주는 역할을 한다. 
이름 그대로 Command Line에서 사용하는 녀석들인데 사용방법은 매우 간단하다. 
그저 'BRCC32 파일명.RC' 라고 커맨드 라인에서 입력하기만 하면 RES 파일을 만들어
준다. 이 두녀석은 델파이의 BIN 디렉토리에 존재하며 다른 경로에서 컴파일 하기
위해서는 Path에 이 디렉토리를 추가하여 주어야 한다.
(예: path c:\progra~1\borland\delphi5\bin) 

- RC 파일의 컴파일

   BRCC32 MyRes.RC

이렇게 해서 만들어진 Res 파일을 사용하려면 어떻게 해야 하는지 알아보자. 
리소스 파일을 실행파일의 Res에 추가하려면 $R 지시자를 사용하여 추가한다. 
이렇게...

{$R MyRes.RES}

아마 Unit에서 {$R *.DFM} 이렇게 작성된 부분을 보았을 것이다. 이것 또한 DFM
파일을 폼의 리소스에 추가하겠다는 코드이다. 이렇게 추가된 리소스는 한 프로젝트
내의 모든 유닛에서 사용이 가능하다. 

위와 같이 하여 폼에 우리가 작성한 Res 파일을 추가한 후 컴파일을 하면 컴파일
전과 컴파일 후의 실행 파일의 크기가 변한 것을 알 수 있다. 당연한 이야기지만...
실행 파일에 우리가 작성한 리소스 파일을 추가 했으니 추가된 리소스 만큼 폼의
크기가 늘어나는 것은 당연한 것이다. 

마지막 부분에서 생각해 볼 것이지만 리소스 파일을 남발하는 것은 자칫 잘못하면
엄청난 크기의 실행 파일을 만들어 낼 수도 있다는 것을 주의해야 하며 이것은
메모리 낭비로 이어지는 것이다.

이렇게해서 실행 파일에 우리의 리소스를 추가했다면 우리는 이 리소스를 사용을
해야 한다. 어떻게 추가된 리소스를 사용하는지 알아보자. 



리소스의 사용예

우리가 추가한 리소스가 Wave 파일이므로 리소스에서 Wave 파일을 로드하여
연주하는 방법을 살펴보자.
Wave 파일을 연주하려면 PlaySound나 sndPlaySound 같은 API를 이용하여 연주하게
되는데 문제는 Wave가 파일로 존재하지 않는 것이라는 것이다. 리소스에 추가된
Wave를 연주하는데 PlaySoud와 sndPlaySound는 서로 비슷한 방법을 사용해서
연주하게 된다. 본론 부터 말하자면 두 함수 모두 Wave 리소스를 연주하는데는
별다른 차이가 없다. 즉 사용방법이 거의 동일하다는 얘기이다. 이 함수들을
사용하기 전에 MMSYSTEM을 Uses에 추가 해 주어야 한다.

- PlaySound의 경우...

  PlaySound의 경우는 바로 리소스에서 Wave를 연주 할 수 있는데 바로 SND_RESOU   
RCE란 플랙을 이용하면 된다. 
  예를 보자...

  PlaySound('WAVEFILE', hInstance, SND_RESOURCE or SND_ASYNC);

  여기서 WAVEFILE은 처음에 RC 파일을 만들때 맨 앞에 적어 주었던 리소스 이름    
이며 두번째 인자로 필요한 HModule에 현재 Instance를 주면 되며 마지막으로 
  SND_RESOURCE라는 플랙을 추가 함으로써 간단히 Wave리소스를 연주 할 수 있다.

- sndPlaySound의 경우...

  sndPlaySound도 PlaySound와 별다른 차이가 없다. 

  sndPlaySound('WAVEFILE', SND_RESOURCE or SND_ASYNC);

  설명을 따로 할 필요가 없을 정도로 비슷하다. 

리소스에서 바로 연주하는 방법을 살펴 보았는데 다른 방법으론 TResourceStream을
이용해서 연주하는 방법이 있다. 이 때 사용하는 플랙은 SND_MEMORY란 플랙이며
sndPlaySound만을 예로 들어 보겠다. 

- TResourceStream을 이용한 연주...

   var
     Soo: TResourceStream;
   begin
     Soo := TResourceStream.Create(hInstance, 'WAVEFILE', PChar('Wave'));
     sndPlaySound(Soo.Memory, SND_MEMORY or SND_ASYNC);
     Soo.Free;
   end;

   TResourceStream을 생성하는 부분을 살펴 보면... 첫번째 인자로 인스탄스를 
   넘겨준다. 그리고 두 번째로 리소스 이름, 그리고 마지막으로 리소스 타입을
   넘겨주면 된다. 
   이렇게 해서 얻어진 Wave를 sndPlaySound의 SND_MEMORY 플랙을 이용해서 연
   주 할 수 있는 것이다. 
   PlaySound도 거의 동일 하므로 직접 한 번 해 보기를 권한다.


여기까지 해서 어떻게 리소스 파일을 생성하는지를 알아보았고 또 어떻게 리소스에
추가된 데이터를 읽어 오는가에 대해 알아 보았다. 
다음번에는 리소스 DLL을 만드는 방법과 만들어진 리소스 DLL을 이용해서 동적으로
리소스를 불러오는 방법... 그리고 각 리소스를 어떻게 사용하는지에 대해 알아
보도록 하겠다. 

노파심에 한 마디 더 하자면... 설명한 부분중 설명이 잘 못된 부분이 있을경우
지적해 주시면 바로 수정 조치 토록 하겠다. 

끝까지 읽어 주신 분들께 경의를 표하며 이만 마치겠다. 



RESEXAM1.ZIP


Posted by SB패밀리

델파이 컴포넌트

delphi VCL



http://sf.net/projects/graphics32http://www.graphics32.org/wiki/
February 25, 2005: Release of Graphics32 1.7.1. 
개발환경 : D4,5,6,7,2005 C5,6

Graphics32 is a library designed for fast 32-bit graphics handling on Delphi and Kylix. Optimized for 32-bit pixel formats, it provides fast operations with pixels and graphic primitives, and in most cases Graphics32 outperforms the standard TCanvas? classes. It is almost a hundred times faster in per-pixel access and about 2–5 times faster in drawing lines. 

Features
Some of Graphics32 features include: 

Fast per-pixel access up to 100 times faster compared to standard TBitmap?; 
High-performance Bitmap alpha blending (including per-pixel alpha blending); 
Pixel, line and polygon antialiasing with sub-pixel accuracy (combined with alpha blending); 
Arbitrary polygon transformations and custom fillings; 
Bitmap resampling with high quality reconstruction filters (e.g. Lanczos, Cubic, Mitchell); 
A unique state-of-the-art rasterization system; 
Affine transformations of bitmaps: rotations, scaling, etc with sub-pixel accuracy; 
Arbitrary projective transformations of bitmaps; 
Arbitrary remapping transformations of bitmaps (e.g. for Warping, Morphing); 
Flexible supersampling implementation for maximum sampling quality; 
Flicker-free image displaying components with optimized double buffering via advanced MicroTiles? based repaint optimizer; 
Multiple customizible easy-to-use overlay layers; 
Locking of bitmaps for safe multithreading; 
A property editor for RGB and alpha channel loading; 
Design-time loading of image formats supported by standard TPicture; 
Works on Borland Delphi, C++ Builder and Kylix. 

As of version 1.5.1b Graphics32 is licensed under the terms of the Mozilla Public License. 

+++++ 설치

Graphics32 supports Delphi versions 4, 5, and 6, and C++ Builder 5.

Note, because some properties of range bars and gage bars have been changed, you can obtain some error messages while opening your previous Graphics32 projects. Just ignore these messages and Delphi will fix DFM files automatically.



Unzip the files; 
Add location of main installation directory to Tools | Environment Options | Library | Library Path. 
Select File | Open... on the menu bar. Set Files of type to Delphi package source, locate and open GR32_DSGN_D6.dpk (GR32_DSGN_D5 for Delphi5, GR32_DSGN_D4 for Delphi4 or GR32_DSGN_B5 for C++ Builder); 
A package editor window will appear. Click Compile, then click Install; 
If compiler asks whether you want to save changes, usually it is a good idea to choose No. 



+++++ 설명:

Additional Topics
Line Patterns

Using TImage32

Classes (Alphabetical)
TAffineTransformation

TArrowBar

TBitmap32

TBitmap32Collection

TBitmap32Item

TBitmap32List

TBitmapLayer

TByteMap

TCustomGaugeBar

TCustomImage32

TCustomImgView32

TCustomLayer

TCustomMap

TCustomPaintBox32

TCustomRangeBar

TGaugeBar

TImage32

TImgView32

TIVScrollProperties

TLayerCollection

TPaintBox32

TPaintStages

TPolygon32

TPositionedLayer

TProjectiveTransformation

TRangeBar

TRubberbandLayer

TThreadPersistent

TTransformation
Classes (Hierarchy)
TArrowBar

TCustomGaugeBar

TGaugeBar

TCustomRangeBar

TRangeBar

TBitmap32Collection

TBitmap32Item

TBitmap32List

TCustomLayer

TPositionedLayer

TBitmapLayer

TRubberbandLayer

TCustomPaintBox32

TCustomImage32

TCustomImgView32

TImgView32

TImage32

TPaintBox32

TIVScrollProperties

TLayerCollection

TPaintStages

TPolygon32

TThreadPersistent

TCustomMap

TBitmap32

TByteMap

TTransformation

TAffineTransformation

TProjectiveTransformation


Routines
AlphaComponent  Creating Points  Lighten  
AlphaToGrayscale  Creating Rectangles  OffsetRect  
ApplyLUT  EMMS  Polygon  
Blend  EqualRect  Polyline  
BlendEx  Fixed Point Math  PolyPolygon  
BlockTransfer  Gray32  PolyPolyline  
BlueComponent  GreenComponent  PtInRect  
Color32  HSLtoRGB  RedComponent  
ColorAdd  InflateRect  RGBtoHSL  
ColorMax  Intensity  SetAlpha  
ColorMin  IntensityToAlpha  SetBorderTransparent  
ColorModulate  IntersectRect  SetGamma  
ColorSub  Invert  StretchTransfer  
ColorToGrayScale  InvertRGB  Transform  
Combine  IsRectEmpty  WinColor  

Types
Arrays  TFloatMatrix  TRBHandles  
Color Types  TLUT8  TRBStyle  
Point Types  TPaintBoxOptions  TRectRounding  
Rectangle Types  TPaintStage  TSize  
TConversionType  TPixelCombineEvent  TSizeGripStyle  
TDrawMode  TPolyFillMode  TStretchFilter  
TFixed  TRBBackgnd  

Variables
MMX_ACTIVE  

Constants
Color Constants  IdentityMatrix  Paint Stage Constants  
G32Version  Layer Options Bits  

Units
GR32  GR32_Filters  GR32_Polygons  
GR32_Blend  GR32_Image  GR32_RangeBars  
GR32_ByteMaps  GR32_Layers  GR32_Transforms  



Graphics32_1_7_1.zip


Posted by SB패밀리

델파이/Delphi VCL 컴포넌트 


Graphics32 v1.8.1 for D5,6,7,2005, C5,6, BDS2006





http://sf.net/projects/graphics32http://graphics32.org/wiki/
Graphics32 is a set of functions, classes, components and controls designed for high-performance graphics programming.

Being highly specialized for 32-bit pixel format, it provides fast operations with pixels and graphic primitives and in most cases Graphics32 considerably outperforms standard TBitmap/TCanvas classes.

The library comes with a full source code, documentation and examples. 



Installation
Graphics32 supports Delphi versions 5, 6, 7, 2005 (Win32), 2006 (Delphi Win32 and C++), and C++ Builder 5 and 6.

As of version 1.6 there is also CLX support in Graphics32. That means you can use it either with CLX on Windows using Delphi or on x86 Linux using the Kylix Delphi environment.



Note: If you want to use the Windows CLX version in Delphi, you'll have to uncomment the {$DEFINE CLX} line in GR32.inc.

Note: For Delphi 2005 and up function inlining is automatically used to improve performance in certain situations. If you want to avoid this, please comment out the {$DEFINE USEINLINING} line in GR32.inc.

Note: Because some properties of range bars and gage bars have been changed, you can obtain some error messages while opening your previous Graphics32 projects. Just ignore these messages and Delphi will fix DFM files automatically.



Unzip the files; 
Add location of main installation directory to Tools | Environment Options | Library | Library Path. 
Select File | Open... on the menu bar. Set Files of type to Delphi package source, locate and open GR32_DSGN_D6.dpk
(GR32_DSGN_K for Kylix, GR32_DSGN_BDS2006 for Borland Developer Studio 2006, GR32_DSGN_D2005 for Delphi 2005, GR32_DSGN_D7 for Delphi7, GR32_DSGN_D6 for Delphi6, GR32_DSGN_D5 for Delphi5 or GR32_DSGN_B5 for C++ Builder); 
A package editor window will appear. Click Compile, then click Install; 
If compiler asks whether you want to save changes, usually it is a good idea to choose No. 



graphics32_1_8_1.zip


Posted by SB패밀리

델파이 영상처리 VCL Sobakcc Lab [2003.10.16 ver 0.1.10]







SB_Lab

제작: 소백촌닭(sobakcc@nate.com) http://sb.pe.kr
내용: 영상처리 관련 컴포넌트

/****************************************************************************

[비고]

컴포넌트 상에 버그나 개선할 점이 있다면 홈페이지나 메일로 알려주시면
고맙겠습니다.

/****************************************************************************

[VERSION HISTORY]

### 2003.10.16 ver 0.1.10

  - Added: TSBImageEffect: Brighten,SharpenEdge,Spray추가.

### 2003.10.14 ver 0.1.9

  - Added: SB_ImageEffect: Source 이미지로 원본과 사용본 선택가능.
  - Added: SB_ImageEffectView: Source 이미지로 원본과 사용본 선택가능.
  - Added: CropMode 추가로 CropRect(영역) 리턴가능.
  - Fixed: UseOriginalBitmap = False 일경우 DblClick() 기능 버그 수정.

### 2003.10.09 ver 0.1.8

  - Added: TSBImageEffectView VCL - Image View기능. (Zoom, FittoWindow, Aspect, Image Effect기능)

### 2003.10.08 ver 0.1.7

  - Added: TSBImage32 VCL

### 2003.10.07 ver 0.1.6

  - Added: Sharpening, Free Rotate.

### 2003.10.06 ver 0.1.5

  - Added: Zoom(AntiAlias 포함), Cropping, Blurring.

### 2003.10.02 ver 0.1.4

  - Added: Flip-Horizontal, Flip-Vertical.

### 2003.10.01 ver 0.1.3

  - Added: 'Gaussian Blur', 'SplitBlur', 'Add Color-Noise', 'Add Mono-Noise',
           'AntiAlias', 'Contrast', 'FishEye', 'Lightness', 'Darkness',
           'Saturation', 'Mosaic', 'Twist', 'SplitLight', 'Tile', 'SpotLight',
           'Trace', 'Emboss', 'Solarize', 'Posterize', 'Grayscale', 'Invert'.



Sobakcc_Lab.zip


Posted by SB패밀리

아래의 과정을 거치는 것 외에 특별한 것은 없음..

클립보드 이미지 데이터 -> 비트맵 -> JPEG






uses 에 Jpeg, ClipBrd 추가해야 함.


procedure SaveClipBoardPicture(ImgPath: String);

var

  Btm: TBitmap;

  Jpg: TJpegImage;


begin  

  Btm:=TBitmap.Create;

  Jpg:=TJpegImage.Create;

  try

      // 1. 클립보드 -> 비트맵

      Btm.Assign(ClipBoard);

      // 2. 비트맵 -> JPEG

      Jpg.Assign(Btm);


      // 압축퀄리티 설정

      Jpg.CompressionQuality:=50;

      // 파일로 저장

      Jpg.SaveToFile(ImgPath);

  finally

    FreeAndNil(Jpg);

    FreeAndNil(Btm);

  end;

end;

Posted by SB패밀리

[DELPHI TIP] TAdvStringGrid에 Combobox 사용하는 방법..




두가지 방법이 있습니다.
셀을 수정할때 콤보박스나 기타 컨트롤이 표시되는방법과
첨부터 나와있는방법....

두가지다 해보면요...
GetEditorType 이벤트를 이용하시면 에디트하실 때만 보입니다. 1번컬럼을 그렇게 만들어보겠습니다.

그리고 2,3번은 radio버튼으로 만들어보겠습니다. 
첨부터 보이실려면 Formcreate이벤트나 기타 함수에서 한번 만들어주시면됩니다.
Formcreate에서 만들어보죠.

먼저 폼생성시

procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;

begin
radopt1:=tstringlist.Create;
radopt1.Add('Delphi');
radopt1.Add('C++Builder');
radopt1.Add('JBuilder');
radopt2:=tstringlist.Create;
radopt2.Add('Std');
radopt2.Add('Prof');
radopt2.Add('C/S');
with Grid do
begin
ColCount := 4;
RowCount := 10;
for i:=1 to rowcount-1 do
begin
addradio(2,i,0,-1,radopt1);
addradio(3,i,1,-1,radopt2);
end;
DefaultRowHeight := 70;
DefaultColWidth := 120;
Options := Options + [goEditing];

end;
end;

다음과 같이 해줍니다.
Grid함수중 addradio함수를 이용해서 radio버튼이 나와야 할곳에 for문으로 미리 다 출력해서 만들어두는 방식입니다.
Options에 goEdting속석이 들어가있어야 수정이 가능하므로 그때 수정시 column1에 콤보박스가 보입니다.

클릭했을때 내용을 보시기 위해서는 

Grid이벤트중 OnGetEditorType 이벤트를 만들어주시면됩니다.
procedure TForm1.gridGetEditorType(Sender: TObject; ACol,
ARow: Integer; var AEditor: TEditorType);
begin
With Grid do begin
case ACol of
1: begin
aEditor := edComboList;
ClearComboString;
AddComboString('대구');
AddComboString('대전');
AddComboString('서울');
AddComboString('평양');
end;
end; // case
end; // with
end; // procedure



지원가능한 컨트롤은 ...
TEditorType = (edNormal,edSpinEdit,edComboEdit,edComboList,edEditBtn,edCheckBox,
edDateEdit,edDateEditUpDown,edTimeEdit,edButton,edDataCheckBox,edNumeric,
edPositiveNumeric,edFloat,edCapital,edMixedCase,edPassword,edUnitEditBtn,
edLowerCase,edUpperCase,edFloatSpinEdit,edTimeSpinEdit,edDateSpinEdit,
edNumericEditBtn,edFloatEditBtn,edCustom,edRichEdit,edNone
{$IFDEF TMSUNICODE}
, edUniEdit,edUniComboEdit,edUniComboList,edUniEditBtn, edUniMemo
{$ENDIF}
);
이렇습니다. 참고하시고요.

창훈 wrote:
> 안녕하세요..

> TAdvStringGrid.. 예제만 보더라도.. 그 기능이 정말로 막강하지않나 싶습니다.. 그래서 그런지 프로퍼티 창에 나열된 속성만 하더라도 정말 많네요..

> 그 중에 가장 기본이 될 만한 Combobox를 쎌 안에 넣는 방법이 필요해서.. 데모프로그램도 보았습니다만.. 그리고, 해당 사이트에 있는 설명도 보았습니다만.. 영어가 짧아서 인지.. 어떤 프로퍼티가 어떤 값으로 설정되어야 한다는 명확한 이야기를 찾지 못했고, 그래서 결국 여러분께 다시 도움을 청합니다..

> Combobox 를 넣기 위한 프로퍼티 속성은 어떻게 되어야 하는지요..?





출처: http://cyhome.cyworld.com/?home_id=a4202130&postSeq=7853519

Posted by SB패밀리

즐겨찾기 리스트를 리스트박스로 출력하기



uses 에 ShlObj 추가.


 


// 즐겨찾기를 TStrings 형태로 반환

function GetIEFavorites(const favpath: String): TStrings;

var

  Str: TStrings;

  SearchRec: TSearchRec;

  Path, Dir, FileName: String;

  Buffer: array [0..2047] of Char;

  Found: Integer;


 


begin

  Str:=TStringList.Create;


  // 일단 .URL 파일을 뒤지고

  Path:=FavPath+'\*.url';

  Dir:=ExtractFilePath(Path);

  Found:=FindFirst(Path, faAnyFile, SearchRec);

  while Found=0 do begin

    // Buffer 의 내용을 GetPrivateProfileString 길이만큼 FileName 으로 복사

    SetString(

      FileName,

      Buffer,

      // INI 형식의 파일에서 특정 Key 읽어오기

      // 즐겨찾기 파일인 .URL도 INI 형식으로 저장되어 있음.

      GetPrivateProfileString('InternetShortcut',  {대분류}

                              PChar('URL'),        {키 이름}

                              nil,                 {Default 값}

                              Buffer,              {내용을 복사할 버퍼}

                              SizeOf(Buffer),      {복사할 크기}

                              PChar(Dir+SearchRec.Name)) {읽어올 파일 경로}

      );

    Str.Add(FileName);

    Found:=FindNext(SearchRec);

  end;


 


  // 디렉토리일 경우엔 재귀 호출로 파고 들어감

  Found:=FindFirst(Dir+'\*.*', faAnyFile, SearchRec);

  while found=0 do begin

    if ((SearchRec.Attr and faDirectory)>0) and (SearchRec.Name[1]<>'.') then begin

      Str.AddStrings(GetIEFavorites(Dir+'\'+SearchRec.Name));

    end;

    Found:=FindNext(SearchRec);

  end;


 


  FindClose(SearchRec);

  Result:=Str;

end;


 


 


 


사용법은 이렇다.


이 함수로 굴리면 리스트박스에 URL만 자동으로 추가됨.


 


procedure TForm1.Button1Click(Sender: TObject);

var

  pIDList: PItemIDList;

  FavPath: Array [0..MAX_PATH] of Char;



begin

  // pIDList에 CSIDL_FAVORITES(즐겨찾기폴더)에 해당하는 포인터 지정

  if SHGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pIDList)=S_OK then begin

    // pIDList에 있는 Path 경로를 FavPath 에 대입

    if SHGetPathFromIDList(pIDList, FavPath) then begin

      //ShowMessage(FavPath);

      ListBox1.Items:=GetIEFavorites(StrPas(FavPath));

    end

    else ShowMessage('Error: SHGetPathFromIDList');

  end

  else ShowMessage('Error<>S_OK');

end;





Posted by SB패밀리





Borland Delphi 5로 개발된 암호화 DLL

문자열을 암호화 하고 해독하는 함수

Readme.txt : 지금 보고 있는 텍스트 파일
cccipher.dll : 암호화/해독 함수가 포함된 DLL

[델파이에서 선언]
Function Encrypt(Src: PChar; Key: Word): PChar; stdcall; External 'CCCIPHER.DLL';
Function Decrypt(Src: PChar; Key: Word): PChar; stdcall; External 'CCCIPHER.DLL';

[델파이에서 사용]
// encipher
Edit2.Text := StrPas(Encrypt(PChar(Edit1.Text), StrToInt(Edit5.Text)));
// decipher
Edit4.Text := StrPas( Decrypt( PChar(Edit3.Text), StrToInt(Edit5.Text) ) );

※ C++Builder 5 예제도 포함되어 있음.

Base64 인코딩/디코딩 된 결과물을 볼 수 있음.
사용에 버그가 있거나 문의사항이 있을 경우에 연락을 주시면 감사하겠습니다. 
homepage: http://sb.pe.kr 

암호화DLL테스트.ZIP


좋은 목적을 위해서라면 아무나 쓰셔도 상관 없습니다.

- 쌈꼬쪼려 소백촌닭 -




Posted by SB패밀리

sobakcc Control Package v 1.0


2005.01.03


컨트롤 팩키지 버전 1.0이 공개되었습니다.


벌써 만들어 놓은지는 몇년이 지났지만 그동안 구석에 놔두다가 이렇게 올려봅니다.
비주얼 컴포넌트의 컨트롤을 모아둔 팩키지입니다.
이 컴포넌트들은 Flat-Style의 모양으로 각종 컨테이너 컴포넌트 상에 위치하게 됩니다.



* FlatStyle의 비주얼 컴포넌트
* 전체 31개의 컴포넌트가 팩키지 안에 들어 있습니다.


* TCCAboutBox, TCCAlignEdit, TCCAnimation, TCCAnimWnd, TCCButton, 
TCCCheckBox, TCCCheckListBox, TCCColorComboBox, TCCComboBox, TCCDBComboBox,
TCCDBEdit, TCCDBLookupComboBox, TCCDBMemo, TCCEdit, TCCGauge, 
TCCGroupBox, TCCHint, TCCLinkText, TCCListBox, TCCMaskEdit,
TCCMemo, TCCPanel, TCCProgressBar, TCCRadioButton, TCCShape,
TCCSound, TCCSpeedButton, TCCSpinEditFloat, TCCSpinEditInteger, TCCSplitter, TCCTabControl


팩키지를 등록할 수 있는 팩키지 파일 *.bpl과 각 컨트롤의 컴파일된 파일인 *.dcu 파일들이 포함되어 있습니다.

컴포넌트 팔레트에 있는 팩키지의 모습입니다.

Win32 버전에 대해서 자주는 아니지만 지속적으로 컴포넌트를 추가할 예정입니다.
버그가 몇개가 있을지는 모르겠습니다만 버그가 발견된다면 게시판으로 알려주시면 감사하겠습니다.

*.bpl을 포함한팩키지 파일이 무료배포 됩니다








Posted by SB패밀리




Form에서 어느 포커스에 있어도 키 입력을 받아, ESC 키를 누르면 Form 이 닫히도록 할 수 있다.


방법은 다음과 같다.


- Form 의 Key Preview 속성을 True 로 설정한다.

- Form 의 OnKeyPress 이벤트 핸들러에 다음 코드를 작성한다.


if ( Key = #27 ) then

  begin

    Form1.Close;

  end;


위와 같이 OnKeyPress 이벤트 핸들러를 작성하면 Form 의 어느 곳에서나 ESC 키를 누렀을 때 Form1 이 Close 된다.







 

비슷한 방법으로 Edit 컨트롤에서 Enter 키나 Tab키를 눌렀을 때 특정 동작을 수행하도록 할 수도 있다. 

이 때는 Edit 컨트롤의 OnKeyPress 이벤트 핸들러를 위와 같이 작성한다.



if ( Key = #13 ) then

  begin

    Button1.Click;

  end;


만약 위와 같이 Edit 컨트롤의 OnKeyPress 이벤트 핸들러를 작성하면 Edit 컨트롤에서 문자열을 입력한 후 엔터키를 누르면 Button1 의 Click 메소드를 호출할 수 있다.

Posted by SB패밀리