nyuuzyou/wikis huggingface dataset:
Как скопировать структуру таблицы?

=== Как скопировать структуру таблицы? ===
{
 As we know, Paradox Tables consist in a table file and some corresponding index files
 there are many way to copy them:
 1. Using TBatchMover (at DataAccess Pallete) with Mode : BatCopy
 But you can't copy the tables corresponding index files, TBatchMove just
 copies the structure and data.
 2. Using FileCopy
 But you can't copy the tables corresponding index files automatically,
 you should define each files
 .. and many more
 The Simple way is:
 Put two TTables on your form, name it as tbSource and tbTarget.
 Then, put this procedure under implementation area
}
type
 TForm1 = class(TForm)
 tbSource: TTable;
 tbTarget: TTable;
 // ...
 end;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
 tbSource.TableName := 'Source.DB'; // The name of your tables which you want to copy from
 tbTarget.TableName := 'Target.DB'; // The name of your tables which you will to copy to
 // You Can set the tbSource.DataBaseName to an existing path/Alias
 // where you store your DB
 // You Can set the tbTarget.DataBaseName to an existing path/Alias
 // where you want to store the duplicate DB
 tbSource.StoreDefs := True;
 tbTarget.StoreDefs := True;
 tbSource.FieldDefs.Update;
 tbSource.IndexDefs.Update;
 tbTarget.FieldDefs := tbSource.FieldDefs;
 tbTarget.IndexDefs := tbSource.IndexDefs;
 tbTarget.CreateTable;
 // Actually you can set these code up to only 5 lines :)
end;
end.
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 02555
Как скопировать таблицу из одной базы данных в другую?

=== Как скопировать таблицу из одной базы данных в другую? ===
If I am not wrong you have an Access db with multiple tables and you want to copy one of these tables into another Access db. For this case i would do the next:
# Create database TrasportDB.mdb - use ADOX.
# Copy table from source table into TransportDB.mdb with SELECT * INTO [TransportTable] in "FullPath\TransportDB.mdb" FROM SourceTable.
# Deliver TransportDB.mdb on destination computer.
# Copy table from TransportTable into DestTable with SELECT * INTO [DestTable] FROM [TransportTable] IN "FullPath\TransportDB.mdb".
FullPath is the path to TransportDB.mdb and is different on source and dest computers.
This way you will use native access methods that should be more reliable and faster than using ADO methods. If you need to perform more complete tasks you should use replication from Microsoft Jet and Replication objects (import this typelib).
Source: Взято с Delphi Knowledge Base: http://www.baltsoft.com/
ID: 02762
Как скопировать файл в Windows clipboard?

=== Как скопировать файл в Windows clipboard? ===
uses 
 ShlObj, ClipBrd; 
procedure CopyFilesToClipboard(FileList: string); 
var 
 DropFiles: PDropFiles; 
 hGlobal: THandle; 
 iLen: Integer; 
begin 
 iLen := Length(FileList) + 2; 
 FileList := FileList + #0#0; 
 hGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT, 
 SizeOf(TDropFiles) + iLen); 
 if (hGlobal = 0) then raise Exception.Create('Could not allocate memory.'); 
 begin 
 DropFiles := GlobalLock(hGlobal); 
 DropFiles^.pFiles := SizeOf(TDropFiles); 
 Move(FileList[1], (PChar(DropFiles) + SizeOf(TDropFiles))^, iLen); 
 GlobalUnlock(hGlobal); 
 Clipboard.SetAsHandle(CF_HDROP, hGlobal); 
 end; 
end; 
// Example, Beispiel: 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 CopyFilesToClipboard('C:\Bootlog.Txt'#0'C:\AutoExec.Bat'); 
end; 
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 03191
Как скрыть/показать ActiveDesktop?

=== Как скрыть/показать ActiveDesktop? ===
uses
 ComObj, ShlObj, ActiveX;
procedure EnableActiveDesktop(bValue: Boolean);
const
 CLSID_ActiveDesktop: TGUID = (D1: $75048700; D2: $EF1F; D3: $11D0;
 D4: ($98, $88, $00, $60, $97, $DE, $AC, $F9));
var
 MyObject: IUnknown;
 ActiveDesk: IActiveDesktop;
 twpoComponentOpt: TComponentsOpt;
begin
 MyObject := CreateComObject(CLSID_ActiveDesktop);
 ActiveDesk := MyObject as IActiveDesktop;
 with twpoComponentOpt do
 begin
 ZeroMemory(@twpoComponentOpt, SizeOf(TComponentsOpt));
 dwSize := SizeOf(twpoComponentOpt);
 fEnableComponents := bValue;
 // fActiveDesktop := True;
 end;
 ActiveDesk.SetDesktopItemOptions(twpoComponentOpt, 0);
 ActiveDesk.ApplyChanges(AD_APPLY_ALL);
end;
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 01821
Как скрыть / показать иконки на рабочем столе?

=== Как скрыть / показать иконки на рабочем столе? ===
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 // скрыть иконки
 ShowWindow(FindWindow(nil, 'Program Manager'), SW_HIDE); 
end; 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
 // показать иконки
 ShowWindow(FindWindow(nil, 'Program Manager'), SW_SHOW); 
end;
ID: 01826
----
procedure ShowDesktop(const YesNo: boolean);
var h: THandle;
begin
 h := FindWindow('ProgMan', nil);
 h := GetWindow(h, GW_CHILD);
 if YesNo = True then
 ShowWindow(h, SW_SHOW)
 else
 ShowWindow(h, SW_HIDE);
end;
{ Использование: }
{ Скрыть иконки на рабочем столе }
ShowDesktop(False);
{ Показать иконки на рабочем столе }
ShowDesktop(True);
Source: Взято из http://forum.sources.ru
ID: 01825
Как скрыть TaskBar?

=== Как скрыть TaskBar? ===
// Спрятать
procedure TForm1.Button1Click(Sender: TObject);
var
 hTaskBar: THandle;
begin
 hTaskbar := FindWindow('Shell_TrayWnd', Nil);
 ShowWindow(hTaskBar, SW_HIDE);
end;
// Показать
procedure TForm1.Button2Click(Sender: TObject);
var
 hTaskBar: THandle;
begin
 hTaskbar := FindWindow('Shell_TrayWnd', Nil);
 ShowWindow(hTaskBar, SW_SHOWNORMAL);
end;
Source: Взято из http://forum.sources.ru
ID: 01769
----
ShowWindow(FindWindow('Shell_TrayWnd', nil), sw_hide);
Source: http://delphiworld.narod.ru/
ID: 01770
Как скрыть кнопку (х) в заголовке окна?

=== Как скрыть кнопку [х] в заголовке окна? ===
Пример показывает, как при инициализации формы происходит поиск нашего окна, а затем вычисление местоположения нужной нам кнопки в заголовке окна.
procedure TForm1.FormCreate(Sender: TObject);
var
 hwndHandle: THANDLE;
 hMenuHandle: HMENU;
 iPos: Integer;
begin
 hwndHandle := FindWindow(nil, PChar(Caption));
 if (hwndHandle <> 0) then
 begin
 hMenuHandle := GetSystemMenu(hwndHandle, FALSE);
 if (hMenuHandle <> 0) then
 begin
 DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
 iPos := GetMenuItemCount(hMenuHandle);
 Dec(iPos);
 { Надо быть уверенным, что нет ошибки т.к. -1 указывает на ошибку }
 if iPos > -1 then
 DeleteMenu(hMenuHandle, iPos, MF_BYPOSITION);
 end;
 end;
end;
Source: Взято из http://forum.sources.ru
ID: 00474
Как скрыть контекстное меню TWebbrowser?

var
 HookID: THandle;
function MouseProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall;
var
 szClassName: array[0..255] of Char;
const
 ie_name = 'Internet Explorer_Server';
begin
 if nCode < 0 then
 Result := CallNextHookEx(HookID, nCode, wParam, lParam)
 else
 begin
 case wParam of
 WM_RBUTTONDOWN,
 WM_RBUTTONUP:
 begin
 GetClassName(PMOUSEHOOKSTRUCT(lParam)^.HWND, szClassName, SizeOf(szClassName));
 if lstrcmp(@szClassName[0], @ie_name[1]) = 0 then
 Result := HC_SKIP
 else
 Result := CallNextHookEx(HookID, nCode, wParam, lParam);
 end;
 else
 Result := CallNextHookEx(HookID, nCode, wParam, lParam);
 end;
 end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 HookID := SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
 if HookID <> 0 then
 UnHookWindowsHookEx(HookID);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 Webbrowser1.Navigate('http://www.google.com');
end;
Source: http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 03458
Category:Связь
Category:WebBrowser
Как скрыть программу от Alt - Tab

=== Как скрыть программу от Alt - Tab ===
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowWindow(Handle, SW_HIDE);
 ShowWindow(Application.Handle, SW_HIDE);
end;
Author: Song
Source: Взято из http://forum.sources.ru
ID: 01481
----
with Application do
begin
 ShowWindow(Handle, SW_HIDE);
 SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
end;
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
Author: Stavros 
Source: Взято из http://forum.sources.ru
ID: 01482
Как скрыть свойства объекта?

=== Как скрыть свойства объекта? ===
В иерархии VCL в большинстве случаев существует уровень объектов-"предшественников" (TCustomXXXX), в которых многие свойства скрыты. Для унаследованных от таких "предшественников" объектов можно "открывать" на выбор те или иные свойства. А как можно скрыть свойства, которые объявлены в published-области от Object Inspector'а, но при этом оставить возможность доступа во время работы программы? Решение состоит в объявлении свойства "по новой" в public-области. В примере скрытым будет у объекта TMyControl свойство Height. 
TMyControl = class(TWinControl)
protected
 procedure SetHeight(Value: Integer);
 function GetHeight: Integer;
public
 property Height: Integer read GetHeight write SetHeight;
end;
procedure TMyControl.SetHeight(Value: Integer);
begin
 inherited Height := Value;
end;
function TMyControl.GetHeight;
begin
 Result := inherited Height;
end;
ID: 00098
Как скрыть своё приложение?

=== Как скрыть своё приложение? ===
Если Вы хотите, чтобы Ваша программа не появлялась на панели задач, но форма была видна, то воспользуйтесь следующей командой:
ShowWindow(Application.handle, SW_HIDE); 
Данная команда в основном используется в приложениях, которые активируются через иконку в трее.
Source: Взято из http://forum.sources.ru
ID: 00408
Как скрыть часики в панели задач?

=== Как скрыть часики в панели задач? ===
Убираем часики:
procedure TForm1.Button1Click(Sender: TObject);
var hn: HWnd;
begin
 hn := FindWindowEx(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil), 0, 'TrayClockWClass', nil); 
 if hn <> 0 then
 ShowWindow(hn, SW_HIDE); // Bye, bye, Baby
end;
Снова показываем:
procedure TForm1.Button2Click(Sender: TObject);
var hn: HWnd;
begin
 hn := FindWindowEx(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil), 0, 'TrayClockWClass', nil);
 if hn <> 0 then
 ShowWindow(hn, SW_SHOW); // Hello, again
end;
Source: Взято из http://forum.sources.ru
ID: 01755
----
function ShowTrayClock(bValue: Boolean) : Boolean; 
var 
 TrayWnd, TrayNWnd, ClockWnd: HWND; 
begin 
 TrayWnd := FindWindow('Shell_TrayWnd', nil); 
 TrayNWnd := FindWindowEx(TrayWnd, 0, 'TrayNotifyWnd', nil); 
 ClockWnd := FindWindowEx(TrayNWnd, 0, 'TrayClockWClass', nil); 
 Result := IsWindow(ClockWnd); 
 if Result then 
 begin 
 ShowWindow(ClockWnd, Ord(bValue)); 
 PostMessage(ClockWnd, WM_PAINT, 0, 0); 
 end; 
end; 
// Example to hide they clock: 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 ShowTrayClock(Boolean(0)); 
end;
Source: Взято с http://delphiworld.narod.ru
ID: 01756
Как сменить картинки на TDBNavigator?

=== Как сменить картинки на TDBNavigator? ===
procedure ChangeDBNavImage(DBnav: TDbNavigator);
var
 i: Integer;
 tempGlyph: TBitmap;
 ExePath: string;
begin
 ExePath := ExtractFilePath(Application.ExeName);
 tempGlyph := TBitmap.Create;
 try
 with DBNav do
 begin
 for i := 0 to ControlCount - 1 do
 begin
 if Controls[i].ClassName = 'TNavButton' then
 begin
 case TNavButton(Controls[i]).Index of
 nbFirst: tempGlyph.LoadFromFile(ExePath + 'first.bmp');
 nbPrior: tempGlyph.LoadFromFile(ExePath + 'previous.bmp');
 nbNext: tempGlyph.LoadFromFile(ExePath + 'Next.bmp');
 nbLast: tempGlyph.LoadFromFile(ExePath + 'Last.bmp');
 nbInsert: tempGlyph.LoadFromFile(ExePath + 'Insert.bmp');
 nbDelete: tempGlyph.LoadFromFile(ExePath + 'Delete.bmp');
 nbEdit: tempGlyph.LoadFromFile(ExePath + 'Edit.bmp');
 nbPost: tempGlyph.LoadFromFile(ExePath + 'Post.bmp');
 nbCancel: tempGlyph.LoadFromFile(ExePath + 'Cancel.bmp');
 nbRefresh: tempGlyph.LoadFromFile(ExePath + 'Refresh.bmp');
 end;
 TNavButton(Controls[i]).Glyph := tempGlyph;
 end;
 end;
 end;
 finally
 tempGlyph.Free;
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 ChangeDBNavImage(DBNavigator1);
end;
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 03082
Category:Базы данных
Category:DBNavigator
Как сменить пароль (master password) для таблицы Paradox

=== Как сменить пароль (master password) для таблицы Paradox ===
var
 db: TDatabase;
 Desc: CRTblDesc;
begin
 db := PriceTable.OpenDatabase;
 FillChar(Desc, SizeOf(Desc), #0);
 StrCopy(Desc.szTblName, PChar(PriceTable.TableName));
 StrCopy(Desc.szTblType, szParadox);
 StrCopy(Desc.szPassword, 'password');
 Desc.bProtected := TRUE;
 Check(DbiDoRestructure(db.Handle, 1, @Desc, nil, nil, nil, FALSE));
end;
Author: Nomadic
Source: Взято с http://delphiworld.narod.ru
ID: 02956
Category:Базы данных
Category:Paradox
Как сменить пароль для таблицы Paradox?

=== Как сменить пароль для таблицы Paradox? ===
Нет способа сделать это в пределах Delphi VCL. Кажется, это довольно серьезное упущение. Однако, есть возможность сделать это напрямую через Borland Database Engine через интерфейс предоставляемый модулями DBIPROCS и DBITYPES. Нужно использовать DbiDoRestructure.
Copyright © 1996 Epsylon Technologies
Source: Взято из FAQ Epsylon Technologies (095)-913-5608; (095)-913-2934; (095)-535-5349
ID: 02527
Category:Paradox
Как снять выделение в StringGrid?

=== Как снять выделение в StringGrid? ===
Если Вы хотите избавиться от выделенных ячеек TStringGrid, которые не имеют фокуса либо используются только для отображения данных, то попробуйте воспользоваться следующей небольшой процедурой.
procedure TForm1.GridClean(Sender: TObject); 
var
 hGridRect: TGridRect; 
begin 
 hGridRect.Top := -1; 
 hGridRect.Left := -1; 
 hGridRect.Right := -1; 
 hGridRect.Bottom := -1; 
 (Sender as TStringgrid).Selection := hGridRect; 
end; 
Следующий код можно использовать например в событии грида OnExit:
var MyGrid: TStringGrid; 
 
GridClean(MyGrid);
Source: Взято из http://forum.sources.ru
ID: 00596
----
Как снять пароль с Excel файла?

{
Today I want to show how you may load some xls-file that is
password-protected, and how to save xls into another file
but without protection.
Just replace there file names and password...
}
var
 xls, xlw: Variant;
begin
 { load MS Excel }
 xls := CreateOLEObject('Excel.Application');
 { open your xls-file }
 xlw := xls.WorkBooks.Open(FileName := 'd:\book1.xls', Password := 'qq', ReadOnly := True);
 { save with other file name }
 xlw.SaveAs(FileName := 'd:\book2.xls', Password := );
 { unload MS Excel }
 xlw := UnAssigned;
 xls := UnAssigned;
end;
Source: http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 04393
Category:COM
Category:MS Office
Как создавать не квадратные формы и контролы?

=== Как создавать не квадратные формы и контролы? ===
Всё, что нам нужно, это HRGN и дескриптор (handle) элемента управления. SetWindowRgn имеет три параметра: дескриптор окна, которое будем менять, дескритор региона и булевый (boolean) параметр, который указывает - перерисовывать или нет после изменения. Как только у нас есть дескриптор и регион, то можно вызвать SetWindowRgn(Handle, Region, True) и вуаля!
Здесь приведён пример использования функции BitmapToRgn (описанной в примере Как создать регион(HRNG) по маске). 
Заметьте, что Вы не должны освобождать регион при помощи DeleteObject, так как после вызова SetWindowRgn владельцем региона становится операционная система.
var 
 MaskBmp: TBitmap; 
begin 
 MaskBmp := TBitmap.Create; 
 try 
 MaskBmp.LoadFromFile('FormShape.bmp'); 
 Height := MaskBmp.Height; 
 Width := MaskBmp.Width; 
 // ОС владеет регионом, после вызова SetWindowRgn
 SetWindowRgn(Self.Handle, BitmapToRgn(MaskBmp), True); 
 finally 
 MaskBmp.Free; 
 end; 
end;
Source: Взято из http://forum.sources.ru
ID: 00465
Как создавать потоки без класса TThread?

=== Как создавать потоки без класса TThread? ===
Ниже приведены два примера, которые при создании потоков позволяют обойтись без класса TThread, используя API функции CreateThread, SuspendThread, ResumeThread и TerminateThread.
Пример 1:
Поместите на форму 2 окошка редактирования (edit) и 6 кнопок. Далее приведён сам код:
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;
procedure incedit1; stdcall;
procedure incedit2; stdcall;
type
 TForm1 = class(TForm)
 Button1: TButton;
 Edit1: TEdit;
 Edit2: TEdit;
 Button6: TButton;
 Button7: TButton;
 Button2: TButton;
 Button3: TButton;
 Button5: TButton;
 Button4: TButton;
 procedure Button1Click(Sender: TObject);
 procedure Button6Click(Sender: TObject);
 procedure Button7Click(Sender: TObject);
 procedure Button4Click(Sender: TObject);
 procedure Button5Click(Sender: TObject);
 procedure Button2Click(Sender: TObject);
 procedure Button3Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
var
 Form1: TForm1;
implementation
var
 th1, th2: cardinal;
 h1, h2: integer;
procedure incedit1;
var
 i: integer;
begin
 i := 0;
 while true do
 begin
 form1.edit1.text := inttostr(i);
 i := i + 1;
 end;
end;
procedure incedit2;
var
 i: integer;
begin
 i := 0;
 while True do
 begin
 Form1.Edit2.Text := IntToStr(i);
 i := i + 1;
 end;
end;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
 h1 := BeginThread(nil, 1024, @incedit1, nil, 0, th1);
 h2 := BeginThread(nil, 1024, @incedit2, nil, 0, th2);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
 TerminateThread(h1, 0);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
 TerminateThread(h2, 0);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
 ResumeThread(h1);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
 ResumeThread(h2);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
 SuspendThread(h1);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
 SuspendThread(h2);
end;
end.
Пример 2:
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;
procedure printh(p: pointer); stdcall;
type
 TForm1 = class(TForm)
 Button1: TButton;
 procedure Button1Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.DFM}
procedure printh(p: pointer); stdcall;
begin
 TForm1(p).caption := 'Hello from thread';
 ExitThread(0);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
 h1: cardinal;
begin
 CreateThread(nil, 128, @printh, self, 0, h1);
end;
end.
Примечание от Jin X
Программа не работает. Запускаю, жму Button1, счётчик покрутится полсекунды и всё. Кстати, у procedure incedit1; stdcall; не должно быть параметра типа pointer? Но даже и с ним не пашет. А вот если после i := i + 1; поставить Sleep(10), то будет работать. Вот только не понятно почему. Может, из-за того, что нет синхронизации?
Source: Взято с http://delphiworld.narod.ru
ID: 00303
ID: 02086
Как создание нестандартную процедуру разбиения слов при переносах для TEdit, TMemo или TRichEdit?

=== Как создание нестандартную процедуру разбиения слов при переносах для TEdit, TMemo или TRichEdit? ===
В следующем примере создается процедура разбиения слов при переносах для TMemo. Заметьте, что реализованная процедура просто всегда разрешает перенос. Для дополнительной информации см.таже документацию к сообщению EM_SETWORDBREAKPROC. 
var 
 OriginalWordBreakProc: Pointer; 
 NewWordBreakProc: Pointer; 
function MyWordBreakProc(LPTSTR: PChar; ichCurrent: Integer; cch: Integer; code: Integer): Integer {$IFDEF WIN32} stdcall; {$ELSE} ; export; {$ENDIF} 
begin 
 Result := 0; 
end; 
procedure TForm1.FormCreate(Sender: TObject);
begin
 OriginalWordBreakProc := Pointer(SendMessage(Memo1.Handle, EM_GETWORDBREAKPROC, 0, 0)); 
 {$IFDEF WIN32} 
 NewWordBreakProc := @MyWordBreakProc; 
 {$ELSE} 
 NewWordBreakProc := MakeProcInstance(@MyWordBreakProc, hInstance); 
 {$ENDIF} 
 SendMessage(Memo1.Handle, EM_SETWORDBREAKPROC, 0, longint(NewWordBreakProc)); 
end; 
procedure TForm1.FormDestroy(Sender: TObject); 
begin 
 SendMessage(Memo1.Handle, EM_SETWORDBREAKPROC, 0, longint(@OriginalWordBreakProc)); 
 {$IFNDEF WIN32} 
 FreeProcInstance(NewWordBreakProc); 
 {$ENDIF} 
end; 
ID: 00559
Как создать DBase базу данных?

=== Как создать DBase базу данных? ===
procedure MakeDataBase;
begin
 with TTable.Create(nil) do
 begin
 DatabaseName := 'c:\temp'; (* alias *)
 TableName := 'test.dbf';
 TableType := ttDBase;
 with FieldDefs do
 begin
 Add('F_NAME', ftString, 20, false);
 Add('L_NAME', ftString, 30, false);
 end;
 CreateTable;
 { create a calculated index }
 with IndexDefs do
 begin
 Clear;
 { don't forget ixExpression in calculated indexes! }
 AddIndex('name', 'Upper(L_NAME)+Upper(F_NAME)', [ixExpression]);
 end;
 end;
end;
Source: Взято с Delphi Knowledge Base: http://www.baltsoft.com/
ID: 02693
Как создать DLL только с ресурсами?

=== Как создать DLL только с ресурсами? ===
Создайте и откомпилируйте пустой проект DLL, который содержит ссылку на файл ресурсов .res, который содержит Ваши ресурсы.
library ResTest; 
uses 
 SysUtils; 
{$R MYRES.RES} 
begin 
end. 
Для использования такой DLL, просто загрузите dll и ресурсы, которые Вы будете использовать:
Пример:
{$IFDEF WIN32} 
const BadDllLoad = 0; 
{$ELSE} 
const BadDllLoad = 32; 
{$ENDIF} 
procedure TForm1.Button1Click(Sender: TObject); 
var 
 h: THandle; 
 Icon: THandle; 
begin 
 h := LoadLibrary('RESTEST.DLL'); 
 if h <= BadDllLoad then 
 ShowMessage('Bad Dll Load') 
 else
 begin 
 Icon := LoadIcon(h, 'ICON_1'); 
 DrawIcon(Form1.Canvas.Handle, 10, 10, Icon); 
 FreeLibrary(h); 
 end; 
end; 
Source: Взято из http://forum.sources.ru
ID: 01987
Как создать Help file?

Есть MS Help Compiler - он создаёт help файлы разных форматов. Сам он не удобный, есть множество оболочек и визуальных дизайнеров. Мне больше всего нравится "Help and Manual" - всё очень просто, визуально и интуитивно понятно.
Author: Vit
Source: Vingrad.ru http://forum.vingrad.ru
ID: 04542
Category:Разработка приложений
Category:Справочная система
Как создать ShortCut файл (.LNK)?

=== Как создать ShortCut файл (.LNK)? ===
uses ShlObj, ActiveX, ComObj;
procedure CreateShortCut(ShortCutName, Parameters, FileName: string);
var ShellObject: IUnknown;
 ShellLink: IShellLink;
 PersistFile: IPersistFile;
 FName: WideString;
begin
 ShellObject := CreateComObject(CLSID_ShellLink);
 ShellLink := ShellObject as IShellLink;
 PersistFile := ShellObject as IPersistFile;
 with ShellLink do
 begin
 SetArguments(PChar(Parameters));
 SetPath(PChar(FileName));
 SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
 FName := ShortCutName;
 PersistFile.Save(PWChar(FName), False);
 end;
end;
Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 01748
Как создать dBASE таблицу во время выполнения

=== Как создать dBASE таблицу во время выполнения ===
Данная процедура полезна для создания временных таблиц :
procedure MakeDataBase;
begin
 with TTable.Create(nil) do
 begin
 DatabaseName := 'c:\temp'; (* alias *)
 TableName := 'test.dbf';
 TableType := ttDBase;
 with FieldDefs do
 begin
 Add('F_NAME', ftString, 20, False);
 Add('L_NAME', ftString, 30, False);
 end;
 CreateTable;
 { create a calculated index }
 with IndexDefs do
 begin
 Clear;
 { don't forget ixExpression in calculated indexes! }
 AddIndex('name', 'Upper(L_NAME)+Upper(F_NAME)', [ixExpression]);
 end;
 end;
end;
Source: Взято с http://delphiworld.narod.ru
ID: 02705
Как создать БД в кодировке CP1251

=== Как создать БД в кодировке CP1251 ===
CREATE DATABASE Efes2
USING CODESET 1251 TERRITORY RU
COLLATE USING IDENTITY;
Source: Взято с http://delphiworld.narod.ru
ID: 02978
Category:Базы данных
Category:DB2
Как создать временный canvas

Создайте Bitmap, и воспользуйтесь свойством холста TBitmap-а, чтобы рисовать на нём. Следующий пример создаёт Bitmap, рисует на его canvas-е, рисует canvas на форме, а затем освобождает bitmap.
procedure TForm1.Button1Click(Sender: TObject);
var
 bm: TBitmap;
begin
 bm := TBitmap.Create;
 bm.Width := 100;
 bm.Height := 100;
 bm.Canvas.Brush.Color := clRed;
 bm.Canvas.FillRect(Rect(0, 0, 100, 100));
 bm.Canvas.MoveTo(0, 0);
 bm.Canvas.LineTo(100, 100);
 Form1.Canvas.StretchDraw(Form1.ClientRect, Bm);
 bm.Free;
end;
Source: http://forum.sources.ru
ID: 03716
Category:Графика