1. プログラムで例外を正しく処理したい場合は、SysUtils.pas ユニットを引用符で囲んでください。それ以外の場合は、プログラムで try を使用している場合でも同様です。 。 。を除外する。 。 。例外も正しくキャッチされません。 2. 文字列定数を定義する方法 resourcestring aa='aaaa';raise Exception.CreateRes(@aa); 3. 文字列定数配列の初期化 const constarray:array [0..2] of string=('first ', '2 番目','3 番目');4. 構造体初期化タイプ Tstructinit=レコード A1:整数 A2:配列 [0..2] integer;End;Const m_structinit:Tstructinit=(A1:0;A2:(0,1,2));5. 多次元配列の長さ var array2:array of integer;setlength(array2,2,2) ;6 . Create と New を使用して開かれたスペースはヒープ内に存在するため、自動的に解放されません。パラメータとローカル変数はスタック内に存在し、自動的に解放されます。 7. SizeOf はオブジェクトには適しておらず、常に 4 を返します。固定タイプの場合は正しく返されます。 8. Create(nil) は手動で解放される必要があり、Create(self) は所有者が解放されると解放されます。変更は、定数 PROcedure ChangeConst(const Const;var Value;Size:Integer);begin Move((@Value)^,(@Constant)^,Size);End;10 の値を定義します。削除操作を実行するときにループ内で DownTo を使用すると、エラーが回避されます。 11. 中国語の文字の ASCII コードは >128 であり、これを使用して中国語の文字であるかどうかを判断できます。 12. DLL を作成する場合は、次を使用する必要があります。 Sharemem ユニットは BORLANDMM.DLL メモリ管理を参照します。 PostMessage はメッセージをメッセージ キューに入れるだけであり、処理のためにキューに入れる必要があります。 SendMessage はメッセージ キューをバイパスし、ウィンドウ プロシージャに直接送信され、メッセージ処理の戻り値が返されるまで戻りません。 14. マウスの移動メッセージ: CM_MOUSEENTER、CM_MOUSELEAVE15。フローティング フォームを作成するにはヒントを有効にします。17. ファイル プロパティ ダイアログ ボックスを呼び出すには、ShellAPI 関数を使用します。ShowFileProperties(FileName: String; Wnd: lp動詞 := PAnsiChar('プロパティ'); lpディレクトリ := 0; hInstApp := 0; 0; lpClass := 終了; ShellExecuteEX(@sfi);end;procedure TForm1.Button1Click(Sender: TObject);begin ShowFileProperties('c:/AA.txt', Handle);end;18. システム時刻の変更には Windows,Dialogs,Forms;var MyTime を使用します。 : TsystemTime;begin FillChar(MyTime,sizeof(MyTime),#0); MyTime.w Year:=2003; MyTime.wDay:=01; SetSystem(MyTime) thenShowmessage('Failure'); 19. フォルダー Xcopy(SourceDir,DestinationDir:) をコピーします。弦);
変数
検索: TSearchRec;
Rec: 単語;
始める
ソースディレクトリ := ソースディレクトリ + '/';
Rec := FindFirst(SourceDir + '*.*', faAnyFile, Search);
Rec = 0 の間 Do
始める
If Search.Name[1] <> '.'
始める
If (Search.Attr および faDirectory) = faDirectory then
始める
Windows.CreateDirectory(PChar(DestinationDir + '/' + Search.Name), nil);
FileSetAttr(DestinationDir + '/' + Search.Name, FileGetAttr(SourceDir + '/' + Search.Name));
X_Copy(SourceDir + '/' + Search.Name, DestinationDir + '/' + Search.Name);
終わり
それ以外
始める
CopyFile(PChar(SourceDir + '/' + Search.Name),PChar(DestinationDir + '/' + Search.Name), True);
FileSetAttr(DestinationDir + '/' + Search.Name, FileGetAttr(SourceDir + '/' + Search.Name));
アプリケーション.プロセスメッセージ;
終わり;
終わり;
Rec := FindNext(検索);
終わり;
FindClose(検索);
終わり;20. 透明なビットマップを描画するプロシージャ DrawTrans(DestCanvas: TCanvas; ; ORBitmap:= NIL; try ANDBitmap:= TBitmap.Create; ORBitmap:= TBitmap.Create; Src := Bounds(0,0, SrcBitmap.Width, SrcBitmap.Height); .Color := clBlack; Canvas.CopyMode := cmSrcCopy(Src, SrcBitmap, Src, AColor); ANDBitmap で終了します。 ; Canvas.BrushCopy(Src, SrcBitmap, Src, AColor); 終了 CM := CopyMode := cmSrcAnd; Draw(X,Y, ORBitmap); ANDBitmap.Free; ORBitmap.Free; 終了;終了;プロシージャ TForm1.Button4Click(送信者: TObject);begin DrawTrans(Image1.Canvas, 0,0, Image2.Picture.Bitmap, clBlack, clSilver);end;21. CPU 速度関数の取得 GetCpuSpeed: Extended;var t, mhi, mlo, nhi, nlo: dword; shr32 : comp;開始 shr32 := 65536; shr32 := shr32 * 65536; t := GetTickCount; while t = GetTickCount do ; // rdtsc mov mhi,edx mov mlo,eax end; while GetTickCount < (t + 1000) do ; nhi,edx mov nlo,eax 結果 := ((nhi * shr32 + nlo) - (mhi * shr32 + mlo)) / 1E6;end;プロシージャ TForm1.Button4Click(Sender: TObject);begin label1.Caption := FloatToStr(GetCpuSpeed) + 'mhz';一時的に終了;たくさん書きましたが、今後少しずつ更新して追加していきます。