Delphi는 진정한 객체 지향 접근 방식, 오늘날 세계에서 가장 빠른 컴파일러, 선도적인 데이터베이스 기술, 특히 Windows API와의 완벽한 호환성, 뛰어난 코드 자동 생성 기능을 채택했기 때문에... 사람들은 짧은 시간 안에 그것을 보았습니다. 지난 몇 년 동안 Delphi는 수많은 개발 도구 중에서 두각을 나타냈습니다! 프로그래머가 아주 적은 작업을 수행하면서 짧은 시간 내에 전문가 수준의 응용 프로그램 소프트웨어를 개발할 수 있게 해주는 것은 델파이의 뛰어난 품질입니다!
더 좋게 만들자! 델파이의 장점을 최대한 활용하여 프로그램을 더 빠르게 디자인하려면 어떻게 해야 할까요?
1. 완전한 코드 공유(Jubang)를 최대한 활용하세요.
이것의 목적은 단지 "게으른" 것이 아니라 프로그램 코드를 최적화하는 방법이기도 합니다. 물론 가장 먼저 고려해야 할 것은 공유가 가능한지 여부(이것은 매우 간단합니다. 이벤트의 드롭다운 컬렉션에 포함되어 있는지 확인하세요)이고, 두 번째로 주의해야 할 것은 " 문제는 공유 후, 정확성이 첫 번째 단계이기 때문입니다. 정확성이 보장될 때만 최적화를 추구해야 합니다!
예를 들어 사용자가 데이터를 삭제하기 전에 확인 메시지를 표시합니다.
PROcedure TForm1.Table1BeforeDelete(DataSet: TDataSet);
시작하다
//삭제기록 확인
if MessageBox(handle,'현재 레코드를 삭제하시겠습니까?','Confirm',MB_IconQuestion+MB_YesNo)=IDNO then
중단;
끝;
그런 다음 데이터 레코드를 삭제하기 전에 사용자가 확인할 수 있도록 허용하는 한 TDataSet.BeforeDelete 이벤트(Table2의 BeforeDelete, Table3의 BeforeDelete...)에서 이 코드를 완전히 공유할 수 있습니다. 행운은 매일 일어나는 것이 아니며 때로는 그렇게 직접적이고 단순하지도 않습니다.
"As"라는 단어는 영어뿐만 아니라 Delphi에서도 매우 유용합니다! 이는 여러 "유사한" 구성 요소에 대한 코드를 공유하려고 할 때 적용됩니다. 그 중 하나에 대한 코드만 작성하면 됩니다.
예를 들어, 텍스트 편집 상자 그룹이 입력 포커스를 받을 때 배경색을 갈색으로 변경하고 포커스를 잃었을 때 시스템 색상을 복원하려면 다음과 같은 코드를 공유할 수 있습니다. 텍스트 편집 상자는 다음 코드를 공유합니다):
절차 TForm1.Edit1Enter(Sender: TObject);
시작하다
(TEdit으로 보낸 사람).color:=ClTeal; //입력 포커스 가져오기
끝;
절차 TForm1.Edit1Exit(Sender: TObject);
시작하다
(TEdit으로 보낸 사람).color:=ClWindow; //입력 포커스 손실
끝;
위의 예는 좀 너무 구체적인 것 같습니다. 일부 구성 요소에만 특별한 주의를 기울이면 어떻게 될까요? 위의 예를 들어보면 사용자의 주의를 끌기 위해 숫자를 입력해야 하는 텍스트 입력 상자가 두 개 있는데, 포커스를 받으면 색상이 파란색으로 바뀌는데 여전히 쓰고 싶지 않습니다. 각 구성요소에 대한 코드를 별도로 작성합니다.
이 문제를 해결하려면 먼저 컴포넌트의 Tag 속성을 사용하여 특수 처리할 컴포넌트에 0이 아니고 같지 않은 태그를 할당합니다. (델파이는 태그 값이 같은지 확인하지 않는다는 점에 유의해야 합니다. 디자인하는 동안 직접 제어해야 합니다.) 그런 다음 다음과 같이 코드를 작성합니다. 여전히 공유할 수 있습니다.
절차 TForm1.Edit1Enter(Sender: TObject);
시작하다
케이스(TEdit으로 보낸 사람). 태그
10,20:(Sender as TEdit).Color:=clBlue //숫자 입력을 위한 텍스트 상자
또 다른
(TEdit으로 보낸 사람).Color:=clTeal; //기타 텍스트 상자
끝;
끝;
(아래의 설명은 델파이의 기본 조건에 따른 것으로 가정합니다.)
1. Self 키워드를 사용하십시오.
누군가 내가 틀렸다고 생각할 수도 있습니다! 사실 여기서 소개하고 싶은 것은 저자의 '상습범'(기억력 부족으로 인한)의 또 다른 '수법'이다. 가끔 컴포넌트의 정확한 이름이 기억나지 않는 경우가 있는데, 이때 다시 폼으로 돌아가서 확인을 하게 된다면(제 친구들은 대부분 이렇겠죠) 조금은 아쉬울 것 같습니다. Delphi에서 Self는 구성 요소가 있는 형식을 명시적으로 참조하므로 Self를 사용하면 특히 노동력이 절약됩니다. 따라서 Delphi의 코드를 활성화하려면 Self를 입력하고 뒤에 쉼표를 입력하면 됩니다. 완료되면 시스템은 양식의 모든 구성 요소와 양식 자체의 속성을 포함하는 드롭다운 목록을 즉시 표시하며, 여기에서 필수 구성 요소를 선택할 수 있습니다. 이러한 방식으로 양식과 테이블 간에 전환하는 작업 부하가 방지됩니다.
2. 코드 완성(Code Completion) 사용:
Delphi의 코드 채우기 기능 덕분에 더 이상 너무 많은 매개변수 세부사항을 기억할 필요가 없습니다. 자세히 설명하기 전에, 델파이 코드 완성의 기본 단축키는 우리가 사용한 일부 단축키와 충돌합니다(예를 들어 Ctrl+Space는 열기 및 닫기 단축키와 충돌합니다). 한자 입력 방법) 따라서 먼저 이 문제를 해결하시기 바랍니다.
물론 코드 완성은 일반적으로 자동으로 활성화되지만, 델파이가 이 기술을 VB에서 배워야 한다고 생각하지 않습니다. 예를 들어 StrToint(edit1.)를 입력하면 델파이는 edit1의 속성을 자동으로 표시하지 않습니다. 이때 Ctrl+Space를 사용하여 코드 완성을 활성화합니다. 특히 중첩이 깊은 경우 델파이는 혼란스러워 보입니다.
3. 코드 매개변수 사용:
활성화 바로 가기 키는 Ctrl+Shift+Space입니다. 이 기능은 Delphi에서도 자동으로 구현됩니다. 위에서 언급한 대로 앞뒤로 전환하거나 커서를 이동하면 이 기능이 사라집니다. 기능의 특정 매개변수를 확인해야 할 경우 이 단축키를 사용하여 열 수 있습니다. .
4. 코드 템플릿 사용:
이 기술에는 인프라이즈 델파이 개발팀 엔지니어들의 뛰어난 기술력과 항상 사용자를 생각하는 숭고한 도덕성이 다시 한번 반영되어 있습니다! (다른 사람이 Microsoft에 의해 밀렵당했다는 소식을 듣고 싶지 않습니다.)
활성화 단축키는 Ctrl+J입니다. 이 기능의 구현 메커니즘은 자동이 아니라는 점을 제외하면 코드 채우기와 유사합니다. 물론 가장 흥미로운 점은 사용자가 자신의 템플릿을 정의할 수 있다는 것입니다. 예를 들어 작성자가 정의한 템플릿: 바로 가기 -> "msg" 코드 -> "MessageboxMessageBox(
handler,'|',',MB_Icon...+MB_...);", msg를 입력하고 Ctrl+J를 누르자마자 전체 코드가 "눈에 띄고" 커서를 다음 위치로 이동합니다. 입력을 추가해야 하는데, 정말 멋지네요!
참고: 자신을 위해 많은 귀여운 템플릿을 정의했고 이를 버리는 것을 꺼린다면 Delphi4Bin 디렉터리에 Delphi32.dci 파일을 백업하고 Delphi를 다시 설치한 후 이 파일로 덮어쓰는 것이 좋습니다.
이 주제를 여기에 쓰면 안 되지만 어쩔 수가 없네요...
1. 프로그램의 정상적인 작동에 영향을 주지 않고 객체 관찰자를 사용하여 직접 설정할 수 있다면 코드를 작성할 필요가 없습니다.
이 주제는 너무 광범위하므로 여기에는 한 가지 예만 들어보겠습니다. 예를 들어 너무 "가혹"하지 않으면서 Delphi4의 상태 표시줄에 자동 프롬프트를 구현하려고 합니다.
"힌트" 조건을 사용하면 더 이상 이전처럼 프로세스(ShowMyHint(...))를 정의한 다음 프로그램이 실행되는 위치에서 초기화할 필요가 없습니다.
그녀의 가치를 Tapplication의 OnHin 이벤트에 할당하세요. 상태 표시줄의 AutoHint 속성을 True로 설정하기만 하면 됩니다! 물론 그녀는 그럴 수 밖에 없는 것 같다.
첫 번째 패널에 표시됩니다(너무 "가혹한" 조건이 없는 경우). 물론 말이 많다고 비난하고, 몇몇 친구들은 델파이의 힌트를 모른다
속성은 두 부분으로 구성되어 있습니다. 관심 있는 분들은 작가 개인 홈페이지 www.zg169.net/~delphiok(방금 오픈했습니다)를 방문해 주세요.
Zhang 씨, 아직 많은 것이 없습니다).
2. 코드 저장:
더 적은 수의 코드를 작성할 수 있다면 더 많은 코드를 작성할 필요가 없습니다.
예를 들어, 다음 두 코드는 정확히 동일한 기능을 구현합니다. 어떤 코드를 사용하시겠습니까?
코드 조각 1:
ToolButton1.Down=true이면
시작하다
Dbgrid1.show;
DelBtn.Enabled:=true;
끝
또 다른
시작하다
Dbgrid1.Hide;
DelBtn.Enabled:=false;
끝;
코드 조각 2:
Dbgrid1.Visible:=ToolButton1.Down;
DelBtn.Enabled:=ToolButton1.Down;
그러므로 프로그램 작성을 마친 후에는 프로그램 조정만 추구할 것이 아니라 프로그램 코드도 튀겨야 합니다.
3. 변수를 저장합니다.
어떤 프로그래머들은 필요하지 않은 곳에 변수를 정의하고 변수가 필요한 곳에 중복된 변수를 정의하는 것은 좋지 않다고 생각합니다.
습관, 특히 매 단계마다 전역 변수를 정의하는 습관은 훨씬 더 의심스럽습니다. 일부 독자들은 내가 구두쇠라고 생각할 수도 있습니다. 오늘날의 프로세서 속도는 다음과 같습니다.
지금은 어떤 시대인가요... 하지만 간단히 코드를 보여드리면 다음과 같은 내용을 이해하실 것입니다.
절차 TForm1.Button1Click(Sender: TObject);
Var s1,s2:문자열;
시작하다
s1:=Inputbox('data','사용자 이름을 입력하세요',');
s1<>'이면
시작하다
Btn_Name.Enabled:=참;
s2:=Inputbox('data','사용자의 주소를 입력하세요',');
s2<>'이면
Btn_Adress.Enabled:=참;
끝;
끝;