"스마트 프로그래머는 델파이를 사용합니다!" 그러나 결국 전문가가 몇 명 있으며 나와 같은 초보자는 어디에나 있습니다. 나는 신인이기 때문에 자연스럽게 이것을 설정하는 방법과 그 글을 쓰는 방법과 같은 아주 좋은 질문이 많이 있습니다 ... 아래, 아래, 나는 축적 된 작은 경험을 바탕으로 요약 연설을 할 것입니다. 포럼의 일반적인 작은 질문 (청중은 따뜻하게 박수를 보냈습니다! 나는 꽃을 가져갔습니다.
system 시스템 응용 프로그램 ations
에이. Delphi는 Delphi5와 같은 일반적으로 사용되는 많은 컨트롤을 대체했으며 올해 발표 된 Delphi6은 Delphi5의 1.5 배입니다. 1024*768의 해상도에서도 많은 컨트롤이 있으면 모든 구성 요소 패널을 표시 할 수 없으며 매번 두 개의 작은 버튼을 눌러 매번 더 많은 패널을 표시하는 것이 매우 불편합니다! 그러나 다음 레지스트리 키 값을 추가하면 구성 요소 패널을 자동으로 확장 할 수 있습니다.
[hkey_current_user/software/borland/delphi/x.0/extras]
"autopalettesexect"= "1"
(참고 : X.0은 델파이의 버전 번호를 나타냅니다. extras 기본 키가 없으면 아래에서 새 키를 작성하십시오.
b. 새 양식을 만들 때마다 글꼴과 크기를 설정할 때마다 정말로 번거 롭습니다! 그런 다음 다음 키 값을 추가하고 시스템이 자동으로 설정하도록하십시오.
[hkey_current_user/software/borland/delphi/x.0/formdesign]
"DefaultFont"= "宋体, 9, _"
(참고 : _는 공간을 나타내며 대담한 (Bold) 등으로 대체 할 수도 있습니다.
기음. 작업 환경을 사용자 정의하여 더 적합합니다.
• 설정 도구 모음. Delphi 도구 모음을 마우스 오른쪽 버튼으로 클릭하고 사용자 정의를 선택한 다음 필요한 버튼을 선택하고 도구를 드래그 한 다음 원치 않는 버튼을 드래그하십시오. 내가 자주 사용하는 것은 다음과 같습니다. 개방형 프로젝트, 저장, 저장, 실행 취소, 표준 도구 모음 아래의 Redo, Debug Toolbar 아래에서 실행됩니다. 구성 요소 팔레트 도구 모음.
• 창 레이아웃을 설정하십시오. 프로그램을 효율적으로 작성하려면 각 창을 합리적으로 배열하는 것이 중요합니다. 일반적으로 사용되는 Windows는 객체 검사관, 프로젝트 관리자 (View | Project Manager), 시계 목록 (시계 추가 ...)입니다.
각 양식을 설정 한 후 데스크탑 도구 모음에서 현재 데스크탑 저장 버튼을 누르면 저장하십시오.
• 디스플레이 색상을 설정하십시오. 코드의 색상을 습관과 일치하게하여 글을 쓸 때 생각을 명확하게하는 데 도움이됩니다. 도구 | 편집기 옵션 열린 편집기 속성, 색상 탭을 선택하고 코드 색상을 설정하십시오. 일반적으로 사용되는 몇 가지만 있습니다.
공백 : 빈 공간, 즉 배경;
댓글 : 댓글;
예약 된 단어 : 예약 된 단어;
문자열 : 문자열;
번호 : 번호;
실행 지점 : 실행중인 현재 라인 (즉, F7이 밟을 때 도착하는 선);
활성화 중단 : 브레이크 포인트;
오류 줄 : 오류가 발생했습니다.
d. Delphi 프로그래밍에서 일부 바로 가기 키를 마스터하면 효율성이 크게 향상 될 수 있으며 이제 이러한 단축키 키를 사용하지 않으면 너무 많은 지루한 설정으로 지루하지 않습니다. 다음은 자주 사용하는 바로 가기 키입니다.
ESC : 현재 선택된 구성 요소 (일반적으로 패널, GroupBox, Form 등)의 컨테이너를 선택하십시오.
Ctrl+Arrow 키 : 선택한 구성 요소를 하나의 픽셀로 움직입니다.
Ctrl+Shift+Arrow 키 : 선택한 구성 요소를 큰 그리드로 이동합니다 (불꽃 놀이를 유지 한 다음 화살표 키로 이동하는 것과 유사);
Shift+Dragon 키 : 선택한 구성 요소의 크기, 한 번에 하나의 픽셀을 조정하십시오.
shift+구성 요소 : Shift 키를 누르고 마우스의 구성 요소를 클릭하면 여러 구성 요소를 동시에 선택할 수 있습니다.
Ctrl+왼쪽 마우스 버튼 :이 호출에서 CTRL을 누르고 누른 경우, 마우스가 하이퍼 링크와 유사한 형식이된다는 것을 알 수 있습니다 이 기능의 구현 부분으로 직접 이동하십시오. 나는이 기능을 가장 많이 사용하여 모듈을 찾는 것이 매우 편리합니다!
ctrl+shift+c : 객체에서 메소드를 선언 한 다음 커서를 넣고 ctrl+shift+c를 눌러 다음과 같은 구현을위한 기본 프레임 워크를 설정합니다.
tform1 = 클래스 (tform)
사적인
{개인 선언}
공공의
{공개 선언}
절차 광산;
끝;
CURSOR를 절차 광산 라인에 올려 놓고 CTRL+SHIFT+C를 누르면 다음 코드가 장치에 자동으로 삽입됩니다.
절차 tform1.mine;
시작하다
끝;
== 양식 운영 ations
여러 형식의 프로그램에서 Delphi는 기본적으로 기본적으로 프로그램이 시작될 때 모든 것을 만들어냅니다 (숨겨져 있고 하나의 기본 형식 만 표시됩니다). 따라서 일시적으로 불필요한 양식은 많은 메모리 공간을 차지합니다. 따라서 메뉴 프로젝트의 양식 탭에서 "자동 창작 양식"에서 "사용 가능한 양식"으로 당분간 시작되지 않은 양식을 전송해야합니다 | 옵션 ... 이런 식으로, 이러한 양식의 생성 및 릴리스에는 코드가 구현되어야합니다.
에이. 양식을 만드는 두 가지 방법의 비교. 자연적으로 생성되지 않은 양식의 경우 쇼 (self) 또는 create (응용 프로그램) 전에 만들어야합니다. 예를 들어, form2.creat (self) 및 form2.create (응용 프로그램)이지만 그 차이점은 무엇입니까? 실제로, 둘 사이에는 큰 차이가 없습니다.
그러나 소유자가 다른 창이나 통제에 속하는 경우 소유자가 석방되면 소유자가 출시 될 것입니다. 주요 차이점은 누가 양식의 자원을 관리하는 것입니다. 첫 번째 방법으로 생성 된 양식의 리소스는 두 번째 방법으로 작성된 프로그래머가 관리합니다.
b. 양식을 공개하는 몇 가지 방법. 메모리를 저장하기 때문에 사용 된 양식은 메모리를 "이동"해야합니다. 여기에 몇 가지 유사한 방법을 나열하겠습니다.
(1)
절차 tform1.Button1click (sender : tobject);
시작하다
......
Form2 = nil이면
form2 : = tform2.create (응용 프로그램);
form2.showmodal;
......
끝;
절차 tform2.close (Sender : Tobject; var action : tcloseacect);
시작하다
modalresult : = mrnone;
행동 : = 불운;
form2 : = nil;
끝;
(2)
절차 tform1.Button1click (sender : tobject);
시작하다
할당되지 않은 경우 (Form2)
시작하다
application.createform (tform2, form2);
노력하다
form2.showmodal;
마지막으로
form2.free;
form2 : = nil;
끝;
끝
또 다른
form2.showmodal;
끝;
(3)
절차 tform2.button1click (sender : tobject);
시작하다
form2.close;
form2.release;
끝;
== 제어 사용
에이. 유명한 RXLIB 제어 패키지는 3 명의 러시아 전문가가 작성했으며 매우 뛰어납니다! 그러나 콘텐츠가 너무 많아서 잘 사용하기 쉽지 않습니다. rxrichedit에 몇 가지 요점을 말할 것입니다.
• 많은 사람들이 rxlib를 설치하는 방법을 물었습니다. 조금 복잡한 것 같습니다.
rxinst.exe를 실행하려면 RxLib/Program Files/Borland/Delphi5 (또는 6)/rx 폴더에 설치 한 다음 Delphi를 열고 File/Open ...을 선택하고 rxctl5.dpk, rxdb5.dpk, rxbde5.dpk를 켜십시오. , Compile을 누르십시오. DCLRX55.DPK, DCLRXDB5.DPK 및 DCLRXBD5.dpk를 눌러 컴파일하고 설치하십시오.
• 허용 속성. Win98의 기본 설정은 오른쪽 클릭 메뉴에 문제가 없지만, 바로 가기 메뉴는 True로 두 번 나타납니다. 그러나 false 일 때는 정상적으로 표시됩니다. 따라서 시스템 호환성의 경우 현재 OS 버전을 결정해야합니다.
절차 tformmain.formcreate (sender : tobject);
var
Osvi : Osversioninfo;
......
시작하다
osvi.dwosversioninfosize : = sizeof (osversioninfo);
getversionex (OSVI);
CASE OSVI.DWPLATFORMID OF
1 : rxrichedit1.
2 : rxrichedit1.AllowObjects : = false;
끝;
.........
끝;
그러나이 속성에 왜 그런 문제가 있는지 모르겠으므로 전문가가 저에게 조언을주기를 바랍니다.
• onurlClick 이벤트. rxRichedit는 웹 페이지 주소를 하이퍼 링크 형식으로 자동 변환하지만 특정 동작에는 여전히 코드를 작성해야합니다. 그렇지 않으면 이러한 주소는 빈 쉘이됩니다.
절차 tformmain.rxRichedit1urlClick (sender : tobject; const urltext : String; 버튼 : tmouseButton);
시작하다
if button = mbleft라면
shellexecute (핸들, nil, pchar (urltext), nil, nil, sw_show);
끝;
b. 메모리를 저장하고 작동을 최적화하기 위해 항상 구성 요소를 동적으로 만듭니다. 그러나 그것을 사용한 후에는 시간이 지남에 따라 기억이 나지 않으면 원래 의도에 위배됩니다. 그러나 생성 된 구성 요소를 "킬"하는 방법은 편집 컨트롤을 만들었고 이제는 사라지기를 원하지만 edit.free를 사용한 후에도 edit.text가 여전히 존재한다는 것을 알고 있습니다. 이것은 편집에 의해 지적 된 메모리 공간을 해방 시키지만, ext.text가 호출 될 때 포인터는 NIL로 설정되지 않으므로 Delphi는 여전히 편집 한 포인터에 따라 해제 된 메모리 영역에 액세스 할 수 있습니다. 생성 ....mistake. 따라서 앞으로 정상적인 작동을 보장하기 위해 무료 편집 후 무료 편집 후 포인터를 사용하지 않아야합니다.
기음. 상태 라인에서 각 컨트롤의 프롬프트 텍스트를 표시합니다. 이 응용 프로그램의 Onhint 이벤트를 사용할 수 있지만 응용 프로그램은 호환되지 않는 객체이므로 다음 방법을 사용할 수 있습니다.
......
공공의
Procedure DisplayHint (Sender : Tobject); // 프롬프트 텍스트를 표시하는 메소드를 선언합니다
끝;
......
절차 tform1.DisplayHint (발신자 : Tobject);
시작하다
상태 bar1.simpletext : = getLonghint (application.hint);
끝;
절차 tform1. formcreate (sender : tobject);
시작하다
application.onhint : = displayHint;
끝;
이런 식으로 상태 표시 줄에 표시된 텍스트는 프롬프트 상자 (자동으로 나타나는 작은 노란색 상자)와 동일합니다. 상태 표시 줄의 프롬프트 텍스트가 더 자세히 설명되기를 원한다면 어떻게해야합니까? 실제로, 컨트롤의 힌트 속성이 다음과 같이 작성된 한 : myhint | 그것은 단지 myhint! "상태 표시 줄에 표시됩니다. 지금.
d. ListView 사용의 몇 가지 핵심 요점. 다음은 예로 2 열 목록보기입니다.
→ 줄 추가 :
ListView1과 함께
시작하다
ListItem : = items.add;
listitem.caption : = '첫 번째 열 내용';
listitem.subitems.add ( '두 번째 열 내용');
끝;
→ Clear ListView1 :
ListView1.Items.clear;
→ 현재 선택된 행의 줄 번호를 가져 와서 현재 행을 삭제하십시오.
i : = 0 to listview1.items.count-1 do
listView1.Items [i] .Selected the //i=ListView1.Selected.Index
시작하다
ListView1.items.delete (i);
끝;
물론 ListView에는 OnSelectItem 이벤트가있어 선택한 행을 결정하고 글로벌 변수에 할당 할 수 있습니다.
→ 행 및 열을 읽는 작업 :
edit1.text : = listview1.items [i] .caption;
edit2.text : = listview1.items [i] .subitems.strings [0];
edit3.text : = listview1.items [i] .subitems.strings [1];
유사하게, 전체 열은 루프를 사용하여 읽을 수 있습니다.
→ 초점을 한 줄로 이동하십시오.
i : = 0 to listview1.items.count-1 do
if (listView1.Items [i] .Selected) 및 (i> 0) 그러면
시작하다
ListView1.SetFocus;
listView1.Items.Item [i-1] .Selected : = true;
끝;
그러나 delphi6에는 ListView에 itemindex 속성이 있으므로
ListView1.SetFocus;
ListView1.ItemIndex : = 3;
초점을 설정할 수 있습니다.
== 기타 ==
• 소프트웨어를 최적화하고보다 완벽하게 만들기 위해 배열을 사용할 때 종종 동적 배열이 사용됩니다. 다음과 같이 선언 할 때 : A : 배열의 배열, 배열을 사용하기 전에 SetLength (A, 3)는 배열 길이를 3, 즉 A [0], A [1], A [2]로 설정합니다. 그래서 그게 다야. 배열 길이를 다시 확장 해야하는 경우 : Seplength (a, 5), A [3] 및 A [4]가 추가되고 이전 A [0], A [1], A [2] 값은 유사하게 (a, 3)와 seplength (a, 1) 인 경우, [0] 만 남기고 [1]과 [A a [1]. 2]는 메모리에서 자동으로 지워집니다. 참고 : 동적 배열은 "0"로 시작하므로 setLength (a, 1) High (a) = 0 이후에 시작합니다! !
마지막으로,이 동적 배열이 더 이상 사용되지 않고 프로그램이 아직 종료되지 않은 경우, 메모리를 저장하기 위해 다음을 사용하기 위해 다음을 사용합니다.
• "현재 프로그램을 진행하는 방법"이라는 질문은 종종 포럼에서 볼 수 있습니다. 실제로이 기능은 때때로 프로그래밍에 사용됩니다. 실제로이 효과를 달성 할 수있는 몇 가지 기능이 있습니다.
→ getCurrentDirectory () : Winapi 함수, 특정 사용법은 다음과 같습니다.
var
mycurrentdir : char의 배열 [0..144];
시작하다
getCurrentDirectory (sizeof (mycurrentDir), myCurrentDir); // 최종 형식은 다음과 같습니다.
MyCurrentDir : = MyCurrentDir+'/mySoftName.exe';
끝;
→ getCurrentDir () : 델파이의 getCurrentDirectory가 캡슐화 한 함수는 사용법이 간단합니다 : myCurrentDir : = getCurrentDir. 최종 형식은 C :/Windows/System입니다
경로를 직접 얻을 수있는 기능도 있습니다 : ExtractFilePath (Paramstr (0)), ExtractFilePath (Application.Exename) 등.
• 시스템 종료, 다시 시작 등의 메시지 이것은 또한 사람들이 묻는 질문이며, 여기에서 언급 할 것입니다.
종료 : exitwindowsex (EWX_SHUTDOWN, 32);
다시 시작 : exitwindowsex (ewx_reboot, 32);
로그 아웃 : ExitWindowSex (EWX_LOGOFF, 32);
전원 끄기 : exitwindowsex (EWX_PowerOff, 32);
• 델파이에서는 #39를 사용하는 것 외에도 프로그램에서 "단일 단일 따옴표"를 처리하는 방법 (예 : ShowMessage)? `` '및' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '모두`` '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '을 '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' 실제로, 4 개의 단일 따옴표는 단일 인용문, 즉 '' '', 두 번째와 세 번째는 이것이 " '"임을 나타내고 첫 번째와 네 번째는 이것이 문자 유형임을 나타냅니다. 하하, 매우 흥미로운 :)
• Showmessage의 중국 문제. ShowMessage의 버튼은 모두 e- 텍스트로되어있어 사람들이 불편 함을 느끼게합니다. 사실, DIY 후에 우리는 그것들을 모두 중국어로 만들 수 있습니다.
먼저, 현재 프로젝트를 저장 한 다음 프로젝트 | 언어 | 추가 ... 언어 추가 대화 상자가 나타나고, 중국어로 원하는 프로젝트를 선택하십시오 (폴더를 사용자 정의 할 수 있습니다). 중국어; 다음; 목록에서 "const_smsgdlgok"항목을 찾고 "중국어 (번역)"패턴을 "OK"(Original)로 변경하고 저장 후 종료하십시오. 이제 프로그램을 다시 실행하십시오. 하하, 중국 버튼일까요?
그러나 ShowMessage의 메시지 대화 상자는 매우 간단하며 시스템 디버깅 중에 개발자에게 표시 할 수 있습니다. 그러나 너무 간단하기 때문에 소프트웨어의 공식 버전에서 그러한 대화 상자를 사용하지 않는 것이 좋습니다. 또한 ShowMessage 대신 MessageBox를 사용하여 소프트웨어의 크기를 줄이는 것이 가장 좋습니다. !