본문 바로가기

언어/delphi

자바의 Toast VCL용입니다 출처: http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&indx=450880&page=2자바의 Toast VCL용입니다...메시지가 떴다가 1500 millisecond가 지난 후 메시지가 사라집니다... 아래 파이어멍키용하고 거의 비슷하나 메모리 해제 방법이 다릅니다.. 델파이 입문자들이나 만들기 귀찮은 분들은 갖다 쓰시기 바랍니다.. 사용예제) uses uBread; procedure Bread(AOwner: TComponent; msg: string); begin TBread.Create(AOwner, msg); end; procedure Form1.Button1Click(Sender: TObject); begin Bread(Sel.. 더보기
TBitmap 원본으로부터 크기조정한 비트맵 얻기 (Transparent, Antialiased) 출처: http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&indx=452991&page=1 비트맵의 PixelFormat 속성이 pf32Bit인 TBitmap 원본으로부터 크기조정한비트맵을 얻는 소스입니다.Andrew Jameson의 오리지널 소스에서 Transparency 값이 유지되도록 수정한 것과GDI+ API를 이용한 것 중에서 선택할 수 있습니다. type TRGBAArray = array[Word] of TRGBQUAD; pRGBAArray = ^TRGBAArray; // Modified(to reserve transparency) version of Andrew Jameson's work. // Src 비트맵 이미지를 Dst .. 더보기
입력값 검사루틴 - 코드 리팩토링 http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&indx=453858&page=1 우리가 업무용 프로그램을 만들때마다 입력값이 제대로 들어 왔는지를검사하는 루틴이 들어가게 된다. 하지만 이런 루틴은 입력값의 량의따라아주 지저분한 코드들을 만들어 낸다. 이부분을 다소 깔끔하게 정리할 수 있는 팁을 소개한다. 본 팁은 원래 본인이 질문과 답변란에 질문한 내용인데 다윗(심재용)님께서 아이디어를 주셔서 해결한 문제이다. procedure A; begin if EditBox1.Text = '' then begin EditBox1.SetFocus; Exit; end; end; function TForm1.chkInputVal(Sender: TObj.. 더보기
초를 0시간 0분 0초식으로 리턴 출처: http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&indx=454205&page=1 procedure TForm1.Button1Click(Sender: TObject); var secs: Integer; begin secs := 4600; Edit1.Text := FormatDateTime('h시간n분s초', secs / secsPerDay); end; 더보기
익명함수+쓰레드를 활용한 간단한 쓰레드 사용 방법 출처: http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&indx=454853&page=1기존에는 TThread를 상속하여 구현하였기에 초보시절엔 접근도 어렵고 잠깐 쓰레드가 필요한 시점에서의 활용도 번거로웠습니다.다행히 델파이 2010버전부터 익명함수가 제공되었는데 덕분에 쓰레드를 아주 손쉽게 사용할 수 있습니다.다만, 여기서는 자세히 설명할 순 없지만 안전한 쓰레드 사용을 위해 크기 2가지를 지켜야 합니다. 1) 쓰레드의 begin ~ end 블록 사이에서 UI를 조작(변경, 수정, 삭제등)할때는 Syncronize를 이용한다.2) 다른 쓰레드와 동시에 같은 자원(변수, 클래스등)을 공유(동시에 읽거나 쓰는 행위, 포인터를 참조하는 행.. 더보기
TFrame의 생성 및 해제를 편하게 해주는 TFrame 관리 클래스입니다.. 출처: http://tech.devgear.co.kr/index.php?mid=delphi_news&page=2&document_srl=438463 // 메인 폼... unit Unit3; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, FMX.VirtualKeyboard, FMX.Platform, uFrameList; type TForm3 = class(TForm) btnFrameTest: TButt.. 더보기
복수의 유닛 참조와 간접 유닛 참조 #4 출처: http://tech.devgear.co.kr/delphi_news/8247 복수의 유닛 참조와 간접 유닛 참조 uses 절에 나열되는 유닛들의 순서는 유닛의 초기화 순서를 결정하며(“유닛의 구조와 문법”절의“initialization 섹션”참조), 컴파일러가 식별자를 찾는 방법에도 영향을 미칩니다. 두 유닛에서 같은 이름의 변수, 상수, 타입, 프로시저나 함수를 선언했을 경우, 컴파일러는 uses 절의 유닛 리스트에서 마지막 유닛의 식별자를 사용합니다. (다른 유닛의 식별자를 액세스하려면 UnitName.Identifier처럼 한정자(qualifier)를 추가해야 합니다) uses 절에는 해당 프로그램이나 유닛이 직접 참조하는 유닛들만 포함시켜야 합니다. 다시말해, 유닛 A가 유닛 B에 선언된 .. 더보기
유닛 참조와 uses 절 #3 출처: http://tech.devgear.co.kr/delphi_news/8171 uses 절은 자신이 포함된 프로그램, 라이브러리 또는 유닛에서 사용하는 유닛들을 나열합니다. (라이브러리에 대한 자세한 내용은 10장“DLL과 패키지”를 참조하십시오.) uses 절이나타날 수 있는 곳은 다음과 같습니다. - 프로그램이나 라이브러리의 프로젝트 파일 - 유닛의 인터페이스 섹션 - 유닛의 임플먼테이션 섹션 유닛들의 인터페이스 섹션처럼, 프로젝트 파일도 대부분 uses 절을 갖고 있습니다. 유닛의임플먼테이션 섹션도 자신의 uses 절을 포함할 수 있습니다. System 유닛과 SysInit 유닛은 모든 애플리케이션에서 자동으로 uses 되며, uses 절에 명시적으로 지정할 수 없습니다. (System은 파일.. 더보기
유닛의 구조와 문법 출처: http://tech.devgear.co.kr/delphi_news/8116 프로그램은‘유닛’이라는 소스 코드 모듈들로 구성됩니다. 유닛들은 program, library 혹은package 헤더로 시작되는 특수한 소스 코드 모듈에 의해 함께 묶이게 됩니다. 각 유닛은 각각의 파일로 저장되고 별도로 컴파일되며, 컴파일된 유닛이 링크되어 애플리케이션이 만들어집니다. 델파이는 계층적인 네임스페이스를 도입하여 유닛들을 구성하는 데에 더 큰 유연성을 제공합니다. 네임스페이스와 유닛을 사용함으로써 다음과 같은 일들이 가능해집니다. - 큰 프로그램을 별도로 편집 가능한 모듈들로 나눌 수 있습니다. - 프로그램들 사이에 공유할 수 있는 라이브러리를 만들 수 있습니다. - 소스 코드 없이 다른 개발자에게 라이브러.. 더보기
델파이에서 동적으로 Package (bpl) 이용하기 (MDI Child) 출처: http://minooya.blogspot.kr/2016/03/package-bpl-mdi-child.html 매번 느끼는 거지만, 뭐가 좋다고 내가 델파이를 이리도 가까이 두는지 모르겠다. 궁금증을 달래줄 자료도 부족하고, 툴이 무료도 아닌데 말이지!! 이번에도 특별한 문제거릴 하나 만났는데, 'bpl을 동적으로 활용하는 방법' 이었다. 대형 MDI 폼을 만들다 보면 수많은 Child 폼을 만들때가 있는데, 하나의 exe 파일에 모든 폼을 다 등재하기엔 좀 무리가 있지 않겠는가? 그래서, 대안이 dll사용인데, 그보다 bpl로 활용하면 여러 잇점이 있다. 델파이 자체형 dll 격이기 때문에, 호환성 측면에서 좋다고나 할까? 여튼, 그 문제는 차치하기로 하고 프로그램 분할에 있어서 bpl을 사용하.. 더보기