1. Если вы хотите, чтобы ваша программа правильно обрабатывала исключения, укажите модуль SysUtils.pas, в противном случае, даже если программа использует try. . . кроме. . . Исключения также не улавливаются правильно. 2. Способ определения константной строки resourcesstring aa='aaaa';raise Exception.CreateRes(@aa); 3. Инициализация массива строковых констант const constarray:array [0..2] of string=('first ', 'второй','третий');4. Тип инициализации структуры Tstructinit=record A1:integer;A2:array [0..2] of целое число;End;Const m_structinit:Tstructinit=(A1:0;A2:(0,1,2));5. Длина многомерного массива var array2:массив массива целых чисел;setlength(array2,2,2) ;6 . Пространство, открытое с помощью Create и New, существует в куче и не может быть автоматически освобождено. Для освобождения рекомендуется использовать FreeAndNil. Параметры и локальные переменные существуют в стеке и автоматически освобождаются. 7. SizeOf не подходит для объектов и всегда возвращает 4; его можно корректно вернуть для фиксированных типов. 8. Create(nil) необходимо освободить вручную, а Create(self) будет выпущен по мере выпуска владельца. 9. Динамический. изменения были Определите значение константы PROcedure ChangeConst(const Const;var Value;Size:Integer);begin Move((@Value)^,(@Constant)^,Size);End;10. Использование DownTo в цикле при выполнении операции удаления позволит избежать ошибок. 11. Код Ascii китайских символов >128, по которому можно определить, является ли это китайским символом. 12. При написании dll необходимо использовать. модуль Sharemem для ссылки на управление памятью BORLANDMM.DLL. 13. PostMessage только помещает сообщение в очередь сообщений, и его необходимо поставить в очередь для обработки. SendMessage обходит очередь сообщений и отправляется непосредственно в оконную процедуру и не возвращается до тех пор, пока не будет возвращено значение обработки сообщения. 14. Сообщения о движении мыши: CM_MOUSEENTER, CM_MOUSELEAVE15. Сообщение о завершении работы WM_QUERYENDsession16. Вы можете использовать ThintWindow и метод класса. ActivateHint для создания плавающей формы. 17. Вызов диалогового окна свойств файла использует ShellAPI; функция ShowFileProperties(FileName: String; Wnd: lpVerb := PAnsiChar('properties'); lpIDList:= ноль; nShow:= 0; lpParameters:= ноль; hIcon:= 0; hkeyClass:= 0; 0 lpClass: = ноль; конец; ShellExecuteEX(@sfi);end;процедура 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.wYear:=2003; MyTime.wMonth:=06; MyTime.wDay:=01; Если не SetSystem(MyTime) thenShowmessage('Failure'); 19. Скопируйте папку Xcopy. Нить);
вар
Поиск: TSearchRec;
Запись: Слово;
Начинать
SourceDir := SourceDir + '/';
Rec := FindFirst(SourceDir + '*.*', faAnyFile, Search);
Пока Rec = 0, делайте
Начинать
Если Search.Name[1] <> '.' Тогда
Начинать
Если (Search.Attr и faDirectory) = faDirectory Тогда
Начинать
Windows.CreateDirectory(PChar(DestinationDir + '/' + Search.Name), ноль);
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));
application.ProcessMessages;
конец;
конец;
Rec := FindNext(Поиск);
конец;
НайтиЗакрыть(Поиск);
конец;20. Процедура рисования прозрачного растрового изображения DrawTrans(DestCanvas: TCanvas; ; ORBitmap:= NIL; попробуйте ANDBitmap:= TBitmap.Create; .Цвет:= clBlack.CopyMode:=; cmSrcCopy; Canvas.BrushCopy(Src, SrcBitmap, Src, AColor); end; с ANDBitmap начать Width:= SrcBitmap.Width;= SrcBitmap.Height; Canvas.Brush.Color := BackColor.CopyMode := cmSrcInvert; ; Canvas.BrushCopy(Src, SrcBitmap, Src, AColor); конец; с DestCanvas do start CM := CopyMode := cmSrcAnd; Draw(X,Y, ANDBitmap); CopyMode := cmSrcPaint; Draw(X,Y, ORBitmap); наконец; ANDBitmap.Free; ORBitmap.Free; конец;конец;процедуры TForm1.Button4Click(Отправитель: TObject);begin DrawTrans(Image1.Canvas, 0,0, Image2.Picture.Bitmap, clBlack, clSilver);end;21. Получить функцию скорости процессора GetCpuSpeed: Extended;var t, mhi, mlo, nhi, nlo: dword; shr32 : комп;начало shr32 := 65536 := shr32 *; 65536; t := GetTickCount; while t = GetTickCount do ; asm DB 0FH,031H // rdtsc mov mhi,edx mov mlo,eax end; while GetTickCount < (t + 1000) do ; asm DB 0FH,031H // rdtsc mov nhi,edx mov nlo,eax end Результат:= ((nhi * shr32 + nlo) - (mhi * shr32 + mlo)) / 1E6;end;procedure TForm1.Button4Click(Sender: TObject);begin label1.Caption := FloatToStr(GetCpuSpeed) + 'mhz';end временно; Я просто так много написал, и в будущем буду постепенно обновлять и добавлять.