nyuuzyou/wikis huggingface dataset:
Как сделать откат внутри триггера

=== Как сделать откат внутри триггера ===
Внутри триггера нельзя управлять транзакциями, поэтому генерируешь там исключение а откат транзакции делаешь в приложении, пославшем запрос. Естественно exception должен предварительно создан
SET TERM !!;
CREATE TRIGGER " DELETE_INV" FOR " TINV"
 ACTIVE BEFORE DELETE
 POSITION 10
 AS
 BEGIN
 IF (EXISTS (SELECT tOst.Id FROM tOst
 WHERE tOst.Id = tInv.Id))
 THEN
 EXCEPTION EST_OSTATOK;
 END !!
SET TERM ;!!
DBase.StartTransaction;
try
 Query.ExecSQL;
 DBase.Commit;
except
 DBase.Rollback;
 raise; // Для последующей обработки
end;
Source: Взято с http://delphiworld.narod.ru
ID: 02706
Как сделать отступ в Memo?

=== Как сделать отступ в Memo? ===
С помощью API-функции SendMessage можно задать поля в Memo-компоненте. Если необходимо, например, сделать отступ в 20 пикселей слева то можно это сделать следующим образом: 
var
 MyRect: TRect; 
begin 
 SendMessage(Memo1.Handle, EM_GETRECT, 0, LongInt(@MyRect)); 
 MyRect.Left := 20; 
 SendMessage(Memo1.Handle, EM_SETRECT, 0, LongInt(@MyRect)); 
 Memo1.Refresh; 
end; 
действует до первого изменения размеров компонента TMemo, поэтому указанный код необходимо поместить в обработчик OnResize компонента владельца - формы или панели. Приводит к дополнительной перерисовке TMemo при отправке сообщения. 
ID: 00549
Как сделать плавное закрытие окна ?

=== Как сделать плавное закрытие окна ? ===
Работает в 2k/XP:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 AnimateWindow(Handle, 500, AW_HIDE or AW_BLEND);
end; 
Author: p0s0l
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00443
Как сделать плавную прокрутку?

=== Как сделать плавную прокрутку? ===
В RxLib есть компонент SecretPanel для этого..
Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 01227
Как сделать прозрачным фон текста

Используйте функцию SetBkMode():
procedure TForm1.Button1Click(Sender: TObject);
var
 OldBkMode: Integer;
begin
 with Form1.Canvas do
 begin
 Brush.Color := clRed;
 FillRect(Rect(0, 0, 100, 100));
 Brush.Color := clBlue;
 TextOut(10, 20, 'Not Transparent!');
 OldBkMode := SetBkMode(Handle, TRANSPARENT);
 TextOut(10, 50, 'Transparent!');
 SetBkMode(Handle, OldBkMode);
 end;
end;
Source: http://delphiworld.narod.ru/
ID: 03654
Category:Графика
Category:Работа с текстом
Как сделать прямоугольник для выделения части картинки для редактирования

Самый простой способ - воспользоваться функцией Windows API DrawFocusRect. Функция DrawFocusRect использует операцию XOR при рисовании - таким образом вывод прямоугольника дважды с одними и теми же координатами стирает прямоугольник, и прямоугольник всегда будет виден, на фоне какого бы цвета он не выводился.
type
 TForm1 = class(TForm)
 procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
 procedure FormMouseMove(Sender: TObject;
 Shift: TShiftState; X, Y: Integer);
 procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
 private
 { Private declarations }
 Capturing: bool;
 Captured: bool;
 StartPlace: TPoint;
 EndPlace: TPoint;
 public
 { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.DFM}
function MakeRect(Pt1: TPoint; Pt2: TPoint): TRect;
begin
 if pt1.x < pt2.x then
 begin
 Result.Left := pt1.x;
 Result.Right := pt2.x;
 end
 else
 begin
 Result.Left := pt2.x;
 Result.Right := pt1.x;
 end;
 if pt1.y < pt2.y then
 begin
 Result.Top := pt1.y;
 Result.Bottom := pt2.y;
 end
 else
 begin
 Result.Top := pt2.y;
 Result.Bottom := pt1.y;
 end;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if Captured then
 DrawFocusRect(Form1.Canvas.Handle, MakeRect(StartPlace, EndPlace));
 StartPlace.x := X;
 StartPlace.y := Y;
 EndPlace.x := X;
 EndPlace.y := Y;
 DrawFocusRect(Form1.Canvas.Handle, MakeRect(StartPlace, EndPlace));
 Capturing := True;
 Captured := True;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
 if Capturing then
 begin
 DrawFocusRect(Form1.Canvas.Handle, MakeRect(StartPlace, EndPlace));
 EndPlace.x := X;
 EndPlace.y := Y;
 DrawFocusRect(Form1.Canvas.Handle, MakeRect(StartPlace, EndPlace));
 end;
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 Capturing := False;
end;
Source: http://delphiworld.narod.ru
ID: 03824
ID: 03841
Category:Графика
Как сделать пункты меню с картинками?

=== Как сделать пункты меню с картинками? ===
Следующий код показывает, как добавить картинку в виде объекта TImage в объект TMenuItem.
var 
 hHandle: THandle; 
 x: integer; 
 // visual controls: 
 hMenu: TMenuItem; 
 Image1: TImage; 
begin
 x := 10; // десятый пункт меню
 hHandle := GetMenuItemID(hMenu.Handle, x); 
 ModifyMenu(hMenu.Handle, hHandle, MF_BYCOMMAND or MF_BITMAP, hHandle, 
 PChar(Image1.Picture.Bitmap.Handle)) 
Source: Взято из http://forum.sources.ru
ID: 01298
Как сделать различные подсказки для каждой ячейки в StringGrid?

=== Как сделать различные подсказки для каждой ячейки в StringGrid? ===
Следующий пример демонстрирует отслеживание движения мышки в компоненте TStringGrid. Если мышка переместится на другую ячейку в гриде, то будет показано новое окно подсказки с номером колонки и строки данной ячейки:
type
 TForm1 = class(TForm)
 StringGrid1: TStringGrid;
 procedure StringGrid1MouseMove(Sender: TObject;
 Shift: TShiftState; X, Y: Integer);
 procedure FormCreate(Sender: TObject);
 private
 { Private declarations }
 Col: integer;
 Row: integer;
 public
 { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
 StringGrid1.Hint := '0 0';
 StringGrid1.ShowHint := True;
end;
procedure TForm1.StringGrid1MouseMove(Sender: TObject;
 Shift: TShiftState; X, Y: Integer);
var
 r: integer;
 c: integer;
begin
 StringGrid1.MouseToCell(X, Y, C, R);
 if ((Row <> r) or (Col <> c)) then
 begin
 Row := r;
 Col := c;
 Application.CancelHint;
 StringGrid1.Hint := IntToStr(r) + #32 + IntToStr(c);
 end;
end;
Source: Взято из http://forum.sources.ru
ID: 00607
Как сделать регулятор громкости?

=== Как сделать регулятор громкости? ===
ВОТ нашел в Интернете:
Эта программа увеличивает громкость выбранного канала на 1000.
uses MMSystem;
procedure TForm1.Button1Click(Sender: TObject);
var
 vol: LongInt;
 LVol, RVol: Integer;
begin
 AuxGetVolume(ListBox1.ItemIndex, @Vol);
 LVol := Vol shr 16;
 if LVol < MaxWord - 1000 then
 LVol := LVol + 1000
 else
 LVol := MaxWord;
 RVol := (Vol shl 16) shr 16;
 if RVol < MaxWord - 1000 then
 RVol := RVol + 1000
 else
 RVol := MaxWord;
 AuxSetVolume(ListBox1.ItemIndex, LVol shl 16 + RVol);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
 i: Integer;
 cap: TAuxCaps;
begin
 for i := 0 to auxGetNumDevs - 1 do
 begin
 auxGetDevCaps(i, Addr(cap), SizeOf(cap));
 ListBox1.Items.Add(cap.szPname)
 end;
end;
Второй вариант:
uses mmsystem;
function GetWaveVolume: DWord;
var
 Woc: TWAVEOUTCAPS;
 Volume: DWord;
begin
 Result := 0;
 if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, SizeOf(Woc)) = MMSYSERR_NOERROR then
 if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
 begin
 WaveOutGetVolume(WAVE_MAPPER, @Volume);
 Result := Volume;
 end;
end;
procedure SetWaveVolume(const AVolume: DWord);
var
 Woc: TWAVEOUTCAPS;
begin
 if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, SizeOf(Woc)) = MMSYSERR_NOERROR then
 if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
 WaveOutSetVolume(WAVE_MAPPER, AVolume);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 Beep;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
 LeftVolume: Word;
 RightVolume: Word;
begin
 LeftVolume := StrToInt(Edit1.Text);
 RightVolume := StrToInt(Edit2.Text);
 SetWaveVolume(MakeLong(LeftVolume, RightVolume));
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
 Caption := IntToStr(GetWaveVolume);
end;
Author: MMM
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02258
Как сделать родительское окно с фоновым рисунком в клиентской области?

=== Как сделать родительское окно с фоновым рисунком в клиентской области? ===
Для того чтобы сделать это выполните следующие шаги: 
* Создайте новый проект. 
* Установите FormStyle формы в fsMDIForm 
* Разместите Image на форме и загрузите в него картинку. 
* Найдите { Private Declarations } в объявлении формы и добавьте следующие строки: 
 FClientInstance: TFarProc; 
 FPrevClientProc: TFarProc; 
 procedure ClientWndProc(var Message: TMessage); 
Добавьте следующие строки в разделе implementation: 
procedure TMainForm.ClientWndProc(var Message: TMessage); 
var 
 Dc: hDC; 
 Row: Integer; 
 Col : Integer; 
begin 
 with Message do 
 case Msg of 
 WM_ERASEBKGND: 
 begin 
 Dc := TWMEraseBkGnd(Message).Dc; 
 for Row := 0 to ClientHeight div Image1.Picture.Height do 
 for Col := 0 to ClientWidth div Image1.Picture.Width do 
 BitBlt(Dc, 
 Col * Image1.Picture.Width, 
 Row * Image1.Picture.Height, 
 Image1.Picture.Width, 
 Image1.Picture.Height, 
 Image1.Picture.Bitmap.Canvas.Handle, 
 0, 
 0, 
 SRCCOPY); 
 Result := 1; 
 end; 
 else 
 Result := CallWindowProc(FPrevClientProc, 
 ClientHandle, 
 Msg, 
 wParam, 
 lParam); 
 end; 
end; 
В методе формы OnCreate добавьте: 
 FClientInstance := MakeObjectInstance(ClientWndProc); 
 FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC)); 
 SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance)); 
Добавьте к проекту новую форму и установите ее свойство FormStyle в fsMDIChild. 
У Вас получился MDI-проект с "обоями" в клиентской области MDI формы. 
ID: 00502
Как сделать свои собственные сообщения при компилляции?

===== Как сделать свои собственные сообщения при компилляции? =====
Формат команды:
 {$MESSAGE HINT|WARN|ERROR|FATAL 'text string' }
Например, добавление следующих строк приведёт к появлению:
{$MESSAGE 'Появился новый hint!'}
{$MESSAGE Hint 'И это тоже hint!'}
{$MESSAGE Warn 'А это уже Warning'}
{$MESSAGE Error 'Эта строка вызовет ошибку компиляции!'}
{$MESSAGE Fatal 'А это фатальная ошибка компиляции!'}
Пример:
destructor TumbSelectionTempTable.Destroy;
begin
 // Clear the temp tables.
{$MESSAGE Warn ' - remember to free all allocated objects'}
 ClearAllOuterWorldFold;
 if FSubjectsTempTableCreated then
 DropTempTable(FTableName);
 FOuterWorldsFolded.Free;
 FQuery.Free;
 inherited;
end;
Работает только в Дельфи 6/7
ID: 00010
Как сделать список всех пользователей BDE?

=== Как сделать список всех пользователей BDE? ===
With Paradox:
procedure BDEGetPDXUserList(AList: TStrings);
var
 hCur: hDBICur;
 UDesc: USERDesc;
begin
 AList.Clear;
 Check(DBIOpenUserList(hCur));
 try
 while DBIGetNextRecord(hCur, dbiNOLOCK, @UDesc, nil) <> DBIERR_EOF do
 begin
 AList.Add(StrPas(UDesc.szUserName));
 end;
 finally
 DBICloseCursor(hCur);
 end;
end;
Source: Взято с Delphi Knowledge Base: http://www.baltsoft.com/
ID: 02526
Category:Paradox
Как сделать так, чтобы в компонент TEdit можно было вводить текст только на английской раскладке?

=== Как сделать так, чтобы в компонент TEdit можно было вводить текст только на английской раскладке? ===
когда TEdit получает фокус надо вызвать:
ActivateKeyboardLayout($409, 0);
если этого мало тогда почитай про WM_INPUTLANGCHANGE 
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00541
Как сделать текстовый список всех доступных свойств перечисляемого типа?

=== Как сделать текстовый список всех доступных свойств перечисляемого типа? ===
I need to get a list of strings (like a StringList) with the possible values for a TBrushStyle property (bsSolid, bsClear, bsHorizontal, for example). I want to build a ComboBox with this options. How can I set the property Items of my ComboBox directly with all the values from the enumerated type TBrushStyle? My ComboBox will be alike the Property Editor for this type.
You can use runtime type information (RTTI) to do that. Below is an example:
uses 
 {...}, TypInfo
procedure BrushStylesAsStrings(AList: TStrings);
var
 a: integer;
 pInfo: PTypeInfo;
 pEnum: PTypeData;
begin
 AList.Clear;
 pInfo := PTypeInfo(TypeInfo(TBrushStyle));
 pEnum := GetTypeData(pInfo);
 with pEnum^ do
 begin
 for a := MinValue to MaxValue do
 AList.Add(GetEnumName(pInfo, a));
 end;
end; 
Language: en
Author: Sen
Source: Взято из http://www.lmc-mediaagentur.de/dpool
ID: 00282
Как сделать фон у текста прозрачным?

=== Как сделать фон у текста прозрачным? ===
Для этого можно воспользоваться API функцией SetBkMode().
procedure TForm1.Button1Click(Sender: TObject);
var
 OldBkMode: integer;
begin
 with Form1.Canvas do
 begin
 Brush.Color := clRed;
 FillRect(Rect(0, 0, 100, 100));
 Brush.Color := clBlue;
 TextOut(10, 20, 'Not Transparent!');
 OldBkMode := SetBkMode(Handle, TRANSPARENT);
 TextOut(10, 50, 'Transparent!');
 SetBkMode(Handle, OldBkMode);
 end;
end;
Source: Взято из http://forum.sources.ru
ID: 01952
Как сделать форму активной, Форма находится в DLL

=== Как сделать форму активной, Форма находится в DLL ===
procedure ShowMainForm;
var
 hWnd, hCurWnd, dwThreadID, dwCurThreadID: THandle;
 OldTimeOut: DWORD;
 AResult: Boolean;
begin
 ShowWindow(Application.Handle, SW_RESTORE);
 Application.MainForm.Visible := True; // Показываем главную форму
 // Ставим нашу форму впереди всех окон
 hWnd := Application.Handle;
 SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @OldTimeOut, 0);
 SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(0), 0);
 SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
 hCurWnd := GetForegroundWindow;
 AResult := False;
 while not AResult do
 begin
 dwThreadID := GetCurrentThreadId;
 dwCurThreadID := GetWindowThreadProcessId(hCurWnd);
 AttachThreadInput(dwThreadID, dwCurThreadID, True);
 AResult := SetForegroundWindow(hWnd);
 AttachThreadInput(dwThreadID, dwCurThreadID, False);
 end;
 SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
 SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(OldTimeOut), 0); 
end;
Author: Rouse_
Source: Взято из http://forum.sources.ru
ID: 00444
Как сделать форму без caption?

=== Как сделать форму без caption? ===
Обычная форма:
TForm.Style := bsNone 
Author: Song
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00461
----
MDIChild форма:
setWindowLong(handle, GWL_STYLE, getWindowLong(handle, GWL_STYLE) and not WS_CAPTION);
width := width + 1;
width := width - 1;
Author: rhf 
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00462
----
{ Private Declaration } 
procedure CreateParams(var Params: TCreateParams); override; 
//... 
procedure TForm1.CreateParams(var Params: TCreateParams); 
begin 
 inherited Createparams(Params); 
 with Params do 
 Style := (Style or WS_POPUP) and not WS_DLGFRAME; 
end;
Source: Взято из http://forum.sources.ru
ID: 00463
----
procedure TForm1.HideTitlebar; 
var 
 Style: Longint; 
begin 
 if BorderStyle = bsNone then Exit; 
 Style := GetWindowLong(Handle, GWL_STYLE); 
 if (Style and WS_CAPTION) = WS_CAPTION then 
 begin 
 case BorderStyle of 
 bsSingle, 
 bsSizeable: SetWindowLong(Handle, GWL_STYLE, Style and 
 (not (WS_CAPTION)) or WS_BORDER); 
 bsDialog: SetWindowLong(Handle, GWL_STYLE, Style and 
 (not (WS_CAPTION)) or DS_MODALFRAME or WS_DLGFRAME); 
 end; 
 Height := Height - GetSystemMetrics(SM_CYCAPTION); 
 Refresh; 
 end; 
end; 
procedure TForm1.ShowTitlebar; 
var 
 Style: Longint; 
begin 
 if BorderStyle = bsNone then Exit; 
 Style := GetWindowLong(Handle, GWL_STYLE); 
 if (Style and WS_CAPTION) <> WS_CAPTION then 
 begin 
 case BorderStyle of 
 bsSingle, 
 bsSizeable: SetWindowLong(Handle, GWL_STYLE, Style or WS_CAPTION or 
 WS_BORDER); 
 bsDialog: SetWindowLong(Handle, GWL_STYLE, 
 Style or WS_CAPTION or DS_MODALFRAME or WS_DLGFRAME); 
 end; 
 Height := Height + GetSystemMetrics(SM_CYCAPTION); 
 Refresh; 
 end; 
end; 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 HideTitlebar; 
end; 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
 ShowTitlebar; 
end;
Source: Взято с http://delphiworld.narod.ru
ID: 00464
Как сделать форму всегда позади всех окон?

=== Как сделать форму всегда позади всех окон? ===
protected
 procedure CreateParams(var Params: TCreateParams); override;
//...
procedure TForm.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 if Assigned(Application.MainForm) then
 begin
 Params.WndParent := GetDesktopWindow;
 Params.Style := WS_CHILD;
 end;
end;
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 00425
Как сделать форму невидимой, а компоненты (image) видимые…

=== Как сделать форму невидимой, а компоненты (image) видимые… ===
 Сайт кому интересно : NikNet.narod.ru
 04.12.2006.
Данный пример показывает, как сделать форму невидимой, а компоненты (image) видимые… 
И ещё, если компонент имеет Transparent = false, то процедура не вырезает те части
которые должны быть вырезанные. Одни, словом как вы видите её визуально так и 
увидите в Runtime.
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls, Buttons;
type
 TForm1 = class(TForm)
 Image3: TImage;
 Image2: TImage;
 Image1: TImage;
 procedure FormCreate(Sender: TObject);
 protected
 procedure ImagesWindowRgn;
 public
 end;
var
 Form1: TForm1;
implementation
uses Types;
{$R *.dfm}
procedure TForm1.ImagesWindowRgn;
var
 FullRgn, Rgn: THandle;
 ClientX, ClientY, i, k: integer;
 x, y, firstx, cl: integer;
 last: boolean;
 temprgn: hrgn;
begin
 k := 0;
 ClientX := (Width - ClientWidth) div 2;
 ClientY := Height - ClientHeight - ClientX;
 FullRgn := CreateRectRgn(0, 0, Width, Height);
 Rgn := CreateRectRgn(ClientX, ClientY, ClientX+ClientWidth, ClientY+ClientHeight);
 CombineRgn(FullRgn, FullRgn, Rgn, RGN_DIFF);
 for i := 0 to ControlCount-1 do
 begin
 with Controls[i] do
 begin
// Rgn := CreateRectRgn(ClientX+Left, ClientY+Top, ClientX+Left+Width, ClientY+Top+Height);
// CombineRgn(FullRgn, FullRgn, Rgn, RGN_OR);
//***************************************************************************************
 if (TImage(Controls[i]).Picture) <> nil then
 with TImage(Controls[i]) do
 begin
 if Transparent then
 cl := Picture.Bitmap.Canvas.Pixels [0, 0];
 for y := 0 to Picture.Bitmap.height-1 do
 begin
 firstx := 0;
 last := False;
 for x := 0 to Picture.Bitmap.width-1 do
 if (abs(Picture.Bitmap.canvas.pixels[x, y] - cl) > 0)
 and (x <> pred(Picture.Bitmap.width)) then
 begin
 if not last then
 begin
 last := True;
 if Transparent then
 firstx := x;
 end;
 end
 else
 if last then
 begin
 last := false;
 temprgn := CreateRectRgn(firstx + left,
 y + Top,
 left + x,
 Top + y + 1);
// temprgn := createrectrgn(firstx, y, x, y+1);
 CombineRgn(FullRgn, FullRgn, temprgn, RGN_or);
 deleteobject(temprgn);
 end;
 end;
 end;
//***************************************************************************************
 end;
 end;
 SetWindowRgn(Handle, FullRgn, True);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 HorzScrollbar.Visible := False;
 VertScrollbar.Visible := False;
 BorderStyle := bsNone;
 ImagesWindowRgn;
end;
end.
ID: 00456
Как скачать любой URL используя стандартные настройки сети?

Начиная с Internet Explorer 3, Microsoft поддерживает очень полезные API, Wininet. Эти функции позволяют использовать все возможности IE, такие как настройки прокси, кэширование файлов и т.д.
Ниже приведён пример использования этих функций для скачивания файла с нужного URL. Это может быть любой доступный URL, ftp://, http://, gopher://, и т.д.
Более подробную информацию об этих функция можно посмотреть в MSDN - Win32 Internet API Functions.
function DownloadFile(const Url: string): string;
var
 NetHandle: HINTERNET;
 UrlHandle: HINTERNET;
 Buffer: array[0..1024] of Char;
 BytesRead: Cardinal;
begin
 Result := ;
 NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if Assigned(NetHandle) then
 begin
 UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
 if Assigned(UrlHandle) then
 begin
 { UrlHandle правильный? Начинаем загрузку }
 FillChar(Buffer, SizeOf(Buffer), 0);
 repeat
 Result := Result + Buffer;
 FillChar(Buffer, SizeOf(Buffer), 0);
 InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
 until BytesRead = 0;
 InternetCloseHandle(UrlHandle);
 end
 else
 begin
 { UrlHandle неправильный. Генерируем исключительную ситуацию. }
 raise Exception.CreateFmt('Cannot open URL %s', [Url]);
 end;
 InternetCloseHandle(NetHandle);
 end
 else
 { NetHandle недопустимый. Генерируем исключительную ситуацию }
 raise Exception.Create('Unable to initialize Wininet');
end;
Source: http://forum.sources.ru
ID: 03577
Category:Связь
Category:Web
Как скопировать данные между БД?

=== Как скопировать данные между БД? ===
Такая возможность присуствует в IB 4.0, 4.1 (утилита QLI) однако отсутствует в IB 4.2 и 5.x. В простейшем случае можно обойтись утилитами DATAPUMP или Database Desktop. Также большое количество подобных утилит есть на www.ibase.ru/download.htm. В конце-концов, можно достаточно быстро самому написать программу копирования данных.
Author: Дмитрий Кузьменко
Source: http://www.ibase.ru/
ID: 02917
Category:Базы данных
Category:Interbase
Как скопировать директорию?

=== Как скопировать директорию? ===
Использовать ShFileOperation
procedure TForm1.Button2Click(Sender: TObject);
var
 OpStruc: TSHFileOpStruct;
 frombuf, tobuf: Array [0..128] of Char;
begin
 FillChar(frombuf, Sizeof(frombuf), 0);
 FillChar(tobuf, Sizeof(tobuf), 0);
 StrPCopy(frombuf, 'd:\brief\*.*');
 StrPCopy(tobuf, 'd:\temp\brief');
 with OpStruc do
 begin
 Wnd := Handle;
 wFunc := FO_COPY;
 pFrom := @frombuf;
 pTo := @tobuf;
 fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
 fAnyOperationsAborted := False;
 hNameMappings := Nil;
 lpszProgressTitle := Nil;
 end;
 ShFileOperation(OpStruc);
end;
Source: Взято с сайта http://blackman.wp-club.net/
ID: 03159
Category:Файловая система
Как скопировать содержимое одного RichEdit в другой?

=== Как скопировать содержимое одного RichEdit в другой? ===
TMemoryStream это самый простой инструмент взаимодействия между всеми VCL компонентами:
procedure TForm1.Button1Click(Sender: TObject);
var
 MemoryStream: TMemoryStream;
begin
 MemoryStream := TMemoryStream.Create;
 try
 RichEdit1.Lines.SaveToStream(MemoryStream);
 MemoryStream.Seek(0, soFromBeginning);
 RichEdit2.Lines.LoadFromStream(MemoryStream);
 finally
 MemoryStream.Free;
 end;
end;
Source: Взято из http://forum.sources.ru
ID: 00568
Как скопировать содержимое строки в буфер обмена?

=== Как скопировать содержимое строки в буфер обмена? ===
procedure CopyStringToClipboard(s: string);
var
 hg: THandle;
 P: PChar;
begin
 hg := GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, Length(S)+1);
 P := GlobalLock(hg);
 StrPCopy(P, s);
 GlobalUnlock(hg);
 OpenClipboard(Application.Handle);
 SetClipboardData(CF_TEXT, hg);
 CloseClipboard;
 GlobalFree(hg);
end;
Source: Взято с http://delphiworld.narod.ru
ID: 01896
----
uses 
 ClipBrd; 
procedure StrToClipbrd(StrValue: string); 
var 
 S: string; 
 hMem: THandle; 
 pMem: PChar; 
begin 
 hMem := GlobalAlloc(GHND or GMEM_SHARE, Length(StrValue) + 1); 
 if hMem <> 0 then 
 begin 
 pMem := GlobalLock(hMem); 
 if pMem <> nil then 
 begin 
 StrPCopy(pMem, StrValue); 
 GlobalUnlock(hMem); 
 if OpenClipboard(0) then 
 begin 
 EmptyClipboard; 
 SetClipboardData(CF_TEXT, hMem); 
 CloseClipboard; 
 end 
 else 
 GlobalFree(hMem); 
 end 
 else 
 GlobalFree(hMem); 
 end; 
end; 
function GetStrFromClipbrd: string; 
begin 
 if Clipboard.HasFormat(CF_TEXT) then 
 Result := Clipboard.AsText 
 else 
 begin 
 ShowMessage('There is no text in the Clipboard!'); 
 Result := ; 
 end; 
end; 
// write "Hallo" to the clipboard and read it back. 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 StrToClipbrd('Hallo'); 
 ShowMessage(GetStrFromClipbrd); 
end;
Source: http://delphiworld.narod.ru/
ID: 01897
Как скопировать страницу?

var
 After: OleVariant;
 Sh: _Worksheet;
begin
 Sh := Excel.Worksheets['Sheet1'] as _Worksheet;
 After := Excel.Workbooks[1].Sheets[3];
 Sh.Copy(EmptyParam, After, lcid);
end;
Source: Delphi Knowledge Base: http://www.baltsoft.com/
ID: 04388
Category:COM
Category:MS Office