2010-07-14 2 views
3

저는 한 달 조금 넘게 델파이를 사용 해왔지만, 여전히 올바른 방법을 모릅니다.유틸리티 메서드는 어디에 두어야합니까? 사용자 정의 양식을 어떻게 사용할 수 있습니까? (Delphi)

많은 프로젝트에서 사용할 수있는 메서드가 Unit, Form 또는 DataModule에 두어야합니까? 단위 (자체적으로), New-> Unit을 사용하지 않았습니다. 거기에 유틸리티 메소드를 넣어야합니까? 그렇다면 내가 볼 수있는 예제, 튜토리얼 또는 다른 무엇이 있나. 저는 과거에 DataModule을 사용해 왔지만, 데이터베이스와 같은 것을 다루는 경우에만 사용해야한다는 인상을줍니다.

몇 가지 양식 (예 : 특정 작업을 수행하는 일부 TEdit이있는 양식)을 사용자 지정하고 있습니다. 이를 사용하려면 먼저 나는 CustomizedForm in '\CForm\CustomizedForm.pas' ;

그때 나는 (내가 그것을 사용하는 볼 수있는 곳) 내 mainform의 사용에 CustomizedForm를 추가 .DPR의 사용이를 추가 할 수 있습니다.
올바른 방법입니까? 나는 그것이 단지 적절한 방법이라고 확신하지는 않지만, 단지 추측하고 있었다.

답변

3

물건을 넣는 곳은 그들이하는 일에 달려 있습니다. 양식과 연결된 단위는 실제로 양식이 제공하는 사용자 인터페이스와 직접적으로 관련된 코드 만 포함해야합니다. 양식 단위에 직접 비즈니스 로직을 적용하는 것은 여러 가지 이유로 나쁜 관행으로 간주됩니다. 유틸리티 메소드가 특정 양식에 포함되어 있지 않은 경우, 유틸리티 메소드를 유닛에 두는 것이 가장 좋습니다.

데이터 모듈의 경우 비 시각적 컨트롤을 유지하기위한 컨테이너입니다. 이름에서 알 수 있듯이 데이터베이스 액세스를 위해 만들어졌지만 다른 모든 것들을 보유 할 수 있습니다. 예를 들어 직장에서 우리는 TImageList 컨트롤을 포함하는 소수의 데이터 모듈을 가지고 있습니다. TImageList 컨트롤에는 앱 전체의 다양한 위치에서 사용되는 아이콘 목록이 들어 있습니다. 비 시각적 인 컨트롤이 여러 가지 다른 폼과 공유해야하는 경우 데이터 모듈은 논리적 인 장소입니다.

그리고 네가 사용자 정의 양식을 제대로 작성하고있는 것처럼 보입니다. 첫 번째 양식에 액세스해야하는 두 번째 양식이있는 경우 (예 : 버튼이나 메뉴 항목을 누를 때 표시되도록) 첫 번째 양식의 단위는 절에 두 번째 양식의 단위가 필요합니다. . 이 문제를 해결하는 방법은 클래스 등록 기술과 관련되어 있지만 고급 주제입니다.

델파이가 양식 단위로 설정하려는 전역 양식 변수는 사용하지 않는 것이 좋습니다. 프로그램이 느리게 시작되고 전역을 사용하는 것은 나쁜 습관으로 간주됩니다. 양식은 다른 Delphi 객체와 마찬가지로 객체이며, 생성자로 Show 또는 ShowModal을 호출하여 생성 한 다음 Release 또는 Free를 호출 할 수 있습니다 (도움말 파일의 TForm.Release를 읽고 당신이 그것을 할 필요가있을 때).

+0

답변과 설명에 감사드립니다. : D – Dian

5

저는 광산을 모두 utils.pas라는 단위에 넣었습니다. 그것은 나를 위해 작동합니다.

일부 프로그램은 다른 프로그램을 사용하지만 다른 유틸리티는 사용하지 않는 경우 별도의 장치를 만들 수 있습니다.

봐은 : Anatomy of a Delphi Unit

이 통과하는 것은 매우 가치가 우수한 Beginner's Guide to Delphi Programming by Zarko Gajic의 일부입니다.

최상의 "시각적"소개는 Nick Hodges' Thirty Camtasia Demos in Thirty Days을 참조하십시오.더 이상 제공되지 않는 Turbo Delphi 용이지만 Delphi 전체와 매우 유사하며 시각적으로 Delphi에서 작업하는 방법에 대한 느낌을 얻을 수 있습니다.

+0

도와 줘서 고마워. 고마워. :디 – Dian

1

먼저 StringUtils.pas, MathUtils.pas, DateTimeUtils.pas 등의 카테고리를 기반으로 몇 가지 단위를 만듭니다. 카테고리별로 함수를 입력하고 모든 프로토 타입을 인터페이스에 포함하십시오. 섹션에 표시되므로 다른 유닛에서도 볼 수 있습니다 (하지만 항목을 분류하는 방법에 너무 익숙하지는 않습니다 ...). 그리고 모든 util 유닛을 별도의 전용 디렉토리에 보관하십시오.

그런 다음 Delphi 또는 프로젝트 라이브러리 경로에서 해당 디렉토리를 가리키면 모든 유틸리티 단위에서 함수를 사용할 수 있습니다.

결국 단위를 클래스 함수 나 영속 구조 등으로 클래스로 만들 수 있습니다.

저는 일반적으로 MyProjectUtils.bpl이라는 패키지를 포함하는 프로젝트 그룹을 만들고 모든 유틸리티 유닛과 클래스를 패키지에 넣습니다. . 실제로 패키지로 배포 한 적은 없지만 함께 묶어서 항상 제대로 컴파일되었는지 항상 확인할 수 있으며 IDE 등에서 즉시 찾아 볼 수 있습니다.

관련 문제