1. Wenn Sie möchten, dass Ihr Programm Ausnahmen korrekt behandelt, geben Sie bitte die Einheit SysUtils.pas an, andernfalls verwendet das Programm auch try. . . außer. . . Auch Ausnahmen werden nicht korrekt abgefangen. 2. Eine Möglichkeit, einen konstanten String-Ressourcenstring aa='aaaa';raise Exception.CreateRes(@aa); zu definieren. 3. Initialisierung des String-Konstanten-Arrays const constarray:array [0..2] von string=('first ', 'zweiter','dritter');4. Strukturinitialisierungstyp Tstructinit=record A1:integer; integer;End;Const m_structinit:Tstructinit=(A1:0;A2:(0,1,2));5 Die Länge des mehrdimensionalen Arrays var array2:array of array of integer;setlength(array2,2,2) ;6 Der mit „Erstellen“ und „Neu“ geöffnete Speicherplatz ist im Heap vorhanden und kann nicht automatisch freigegeben werden. Es wird empfohlen, FreeAndNil zum Freigeben zu verwenden. Parameter und lokale Variablen sind im Stapel vorhanden und werden automatisch freigegeben. 7. SizeOf ist nicht für Objekte geeignet und gibt immer 4 zurück; für feste Typen kann es korrekt zurückgegeben werden. 8. Create(nil) muss manuell freigegeben werden, und Create(self) wird freigegeben, wenn der Besitzer es freigibt Es wurden Änderungen vorgenommen. Definieren Sie den Wert der Konstante. PROcedure ChangeConst(const Const;var Value;Size:Integer);begin Move((@Value)^,(@Constant)^,Size);End;10. Durch die Verwendung von DownTo in einer Schleife beim Ausführen eines Löschvorgangs werden Fehler vermieden. 11. Der ASCII-Code für chinesische Zeichen ist >128. Dies kann verwendet werden, um festzustellen, ob es sich um ein chinesisches Zeichen handelt. 12. Beim Schreiben einer DLL müssen Sie Folgendes verwenden Die Sharemem-Einheit verweist auf die Speicherverwaltung 13 von BORLANDMM.DLL. PostMessage stellt die Nachricht nur in die Nachrichtenwarteschlange und muss zur Verarbeitung in die Warteschlange gestellt werden. SendMessage umgeht die Nachrichtenwarteschlange und wird direkt an die Fensterprozedur gesendet und kehrt erst zurück, wenn der Rückgabewert 14 für die Nachrichtenverarbeitung vorliegt: CM_MOUSEENTER, CM_MOUSELEAVE15. Sie können ThintWindow und die Klassenmethode verwenden ActivateHint zum Erstellen eines schwebenden Formulars.17. Rufen Sie das Dialogfeld mit den Dateieigenschaften auf und verwenden Sie die Funktion ShowFileProperties(FileName: String; Wnd: lpVerb := PAnsiChar('properties'); lpIDList := nil; lpParameters := 0; hProcess := 0; lpClass := nil; Ergebnis := ShellExecuteEX(@sfi);end;procedure TForm1.Button1Click(Sender: TObject);begin ShowFileProperties('c:/AA.txt', Handle);end;18. Das Ändern der Systemzeit verwendet Windows,Dialogs,Forms;var MyTime : TsystemTime;begin FillChar(MyTime,sizeof(MyTime),#0); MyTime.wYear:=2003; MyTime.wDay:=01; If not SetSystem(MyTime) thenShowmessage('Failure'); Zeichenfolge);
var
Suche: TSearchRec;
Rec: Wort;
Beginnen
Quellverzeichnis := Quellverzeichnis + '/';
Rec := FindFirst(SourceDir + '*.*', faAnyFile, Search);
Während Rec = 0 Do
Beginnen
Wenn Search.Name[1] <> '.'
Beginnen
If (Search.Attr And faDirectory) = faDirectory Then
Beginnen
Windows.CreateDirectory(PChar(DestinationDir + '/' + Search.Name), nil);
FileSetAttr(DestinationDir + '/' + Search.Name, FileGetAttr(SourceDir + '/' + Search.Name));
X_Copy(SourceDir + '/' + Search.Name, DestinationDir + '/' + Search.Name);
Ende
Anders
Beginnen
CopyFile(PChar(SourceDir + '/' + Search.Name),PChar(DestinationDir + '/' + Search.Name), True);
FileSetAttr(DestinationDir + '/' + Search.Name, FileGetAttr(SourceDir + '/' + Search.Name));
application.ProcessMessages;
Ende;
Ende;
Rec := FindNext(Suchen);
Ende;
FindClose(Suchen);
Ende;20. Zeichnen Sie eine transparente Bitmap-Prozedur DrawTrans(DestCanvas: TCanvas; ; ORBitmap:= NIL; versuchen Sie ANDBitmap:= TBitmap.Create; ORBitmap:= Bounds(0,0, SrcBitmap.Height); with ORBitmap do begin Height:= SrcBitmap.Height; .Color := clBlack; Canvas.CopyMode := cmSrcCopy; Canvas.BrushCopy(Src, SrcBitmap, AColor); end; with ANDBitmap do begin Height:= SrcBitmap.Height; Canvas.CopyMode := ; Canvas.BrushCopy(Src, SrcBitmap, Src, AColor); mit DestCanvas do begin CM := cmSrcAnd; Draw(X,Y, ORBitmap); ANDBitmap.Free; ORBitmap.Free; end;end;procedure TForm1.Button4Click(Sender: TObject);begin DrawTrans(Image1.Canvas, 0,0, Image2.Picture.Bitmap, clBlack, clSilver);end;21. Holen Sie sich die CPU-Geschwindigkeitsfunktion GetCpuSpeed: Extended;var t, mhi, mlo, nhi, nlo: dword ; shr32 : comp;begin shr32 := 65536; 65536; t := GetTickCount; while t = GetTickCount do ; asm DB 0FH,031H // rdtsc mov mhi,edx mov mlo,eax end; while GetTickCount < (t + 1000) do ; nhi,edx mov nlo,eax end; Ergebnis := ((nhi * shr32 + nlo) - (mhi * shr32 + mlo)) / 1E6;end;procedure TForm1.Button4Click(Sender: TObject);begin label1.Caption := FloatToStr(GetCpuSpeed) + 'mhz';end; temporär Ich habe gerade so viel geschrieben und werde in Zukunft nach und nach aktualisieren und weitere hinzufügen.