nyuuzyou/wikis huggingface dataset:
Как сохранить Outlook календарь как website?

{ In Outlook lasst sich ein Kalender als WebSeite speichern. Dazu benotig man
den "Web Publishing Wizard" download im Microsoft Download Center. }
{ In Outlook you can save the calendar as website. For this you need the
"Web Publishing Wizard" available at Microsoft Download Center. }
{ Original VB Script: By Sue Mosher, sue @slipstick.com, with input from Ken Slovak and others
for more Outlook samples, see http://www.slipstick.com/dev/code/index.htm }
{ .... }
uses ComObj;
{ .... }
procedure TForm1.Button1Click(Sender: TObject);
var
 Outlook, NameSpace, TopFolder, CalendarFolder, WebPub: OleVariant;
 sTitle: string;
begin
 Outlook := CreateOleObject('Outlook.Application');
 WebPub := CreateOleObject('WebPub.cWebPub');
 NameSpace := Outlook.GetNamespace('MAPI');
 TopFolder := NameSpace.Folders[1];
 CalendarFolder := TopFolder.Folders('Kalender');
 WebPub.Create('Kalender von AHA', , False, '01.05.2003', '01.06.2003',
 True, True, 'C:\Temp');
 {
 WebPub.Create method parameters:
 'sTitle - Title displayed at the top of the page
 'sGraphic - Path to a graphic file to use for BACKGROUND
 ' attribute
 'bUseGraphic - True=Use 'sGraphic' param, False=Ignore
 'dtStartDate - Start of date range to publish
 'dtEndDate - End of date range to publish
 'bDetails - Publish appointment details
 'bShowInBrowser - Display in default browser after publishing
 'sSiteName - Local path to store published calendar
 }
 WebPub := Unassigned;
 Outlook := Unassigned;
end;
Source: http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 04445
Category:COM
Category:MS Office
Как сохранить QuickReport в stream?

uses QRPrntr;
procedure SaveQuickReportToStream(AQuickReport: TQuickRep; AStream: TStream);
var
 PL: TQRPageList;
 I: Integer;
begin
 PL := nil;
 try
 PL := TQRPageList.Create;
 PL.Stream := TQRStream.Create(100000);
 AQuickReport.Prepare;
 PL.LockList;
 try
 for I := 1 to AQuickReport.QRPrinter.PageCount do
 PL.AddPage(AQuickReport.QRPrinter.GetPage(I));
 PL.Finish;
 finally
 PL.UnlockList;
 end;
 PL.Stream.SaveToStream(AStream);
 finally
 FreeAndNil(PL);
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
 stream: TFileStream;
begin
 stream := TFileStream.Create('c:\quickreport.dat', fmCreate);
 QuickReportToStream(QuickRep1, stream);
 stream.Free;
end;
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 03269
Category:Создание отчетов
Как сохранить RTF в TBlobfield?

=== Как сохранить RTF в TBlobfield? ===
В этом примере поле 'Table1Memo' это paradox 'formatted memo'. Оно так же может быть полем blob.
Через TBlobStream содержимое контрола RichEdit можно загружать или сохранять в базу данных:
procedure TForm1.BtnGetClick(Sender: TObject);
var
 bs: TBlobStream;
begin
 bs := Nil;
 with Table1 Do
 try
 Open;
 First;
 bs := TBlobStream.Create(Table1Memo, bmRead);
 RichEdit1.PlainText := False;
 RichEdit1.Lines.LoadFromStream(bs);
 finally
 bs.Free;
 Close;
 end;
end;
procedure TForm1.BtnPutClick(Sender: TObject);
var
 bs: TBlobStream;
begin
 bs := nil;
 with Table1 Do
 try
 Open;
 First;
 Edit;
 bs := TBlobStream.Create(Table1Memo, bmWrite);
 RichEdit1.PlainText := False;
 RichEdit1.Lines.SaveToStream(bs);
 Post;
 finally
 bs.Free;
 Close;
 end;
end;
Source: Взято из http://forum.sources.ru
ID: 02464
Как сохранить веб страничку в bitmap?

procedure TForm1.Button1Click(Sender: TObject);
var
 ViewObject: IViewObject;
 sourceDrawRect: TRect;
begin
 if EmbeddedWB1.Document <> nil then
 try
 EmbeddedWB1.Document.QueryInterface(IViewObject, ViewObject);
 if ViewObject <> nil then
 try
 sourceDrawRect := Rect(0, 0, Image1.Width, Image1.Height);
 ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Self.Handle,
 image1.Canvas.Handle, @sourceDrawRect, nil, nil, 0);
 finally
 ViewObject._Release;
 end;
 except
 end;
end;
Перевод материала с сайта members.home.com/hfournier/webbrowser.htm
Author: John 
Source: http://blackman.km.ru/myfaq/cont4.phtml
ID: 03483
Category:Связь
Category:WebBrowser
Как сохранить веб страничку в jpg?

procedure generateJPEGfromBrowser(browser: iWebBrowser2; jpegFQFilename: String;
 srcHeight: Integer; srcWidth: Integer; tarHeight: Integer; tarWidth: Integer);
var
 sourceDrawRect: TRect;
 targetDrawRect: TRect;
 sourceBitmap: TBitmap;
 targetBitmap: TBitmap;
 jpeg: TJPEGImage;
 viewObject: IViewObject;
begin
 sourceBitmap := TBitmap.Create;
 targetBitmap := TBitmap.Create;
 jpeg := TJPEGImage.Create;
 try
 try
 sourceDrawRect := Rect(0, 0, srcWidth, srcHeight);
 sourceBitmap.Width := srcWidth;
 sourceBitmap.Height := srcHeight;
 viewObject := browser as IViewObject;
 if viewObject = nil then
 Exit;
 OleCheck(viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, self.Handle,
 sourceBitmap.Canvas.Handle, @sourceDrawRect, nil, nil, 0));
 // Изменяем размер исходного битмапа для конечного битмапа
 targetDrawRect := Rect(0, 0, tarWidth, tarHeight);
 targetBitmap.Height := tarHeight;
 targetBitmap.Width := tarWidth;
 targetBitmap.Canvas.StretchDraw(targetDrawRect, sourceBitmap);
 // Создаём JPEG из Bitmap и сохраняем его
 jpeg.Assign(targetBitmap) ;
 makeFileWriteable(jpegFQFilename);
 jpeg.SaveToFile(jpegFQFilename);
 finally
 jpeg.Free;
 sourceBitmap.Free;
 targetBitmap.Free;
 end;
 except
 // Обработка ошибок
 end;
end;
Перевод материала с сайта members.home.com/hfournier/webbrowser.htm
Author: Donall Burns
Source: http://blackman.km.ru/myfaq/cont4.phtml
ID: 03484
Category:Связь
Category:WebBrowser
Как сохранить все картинки TWebbrowser?

uses
 UrlMon;
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
 try
 Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
 except
 Result := False;
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
 k, p: Integer;
 Source, dest, ext: string;
begin
 for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
 begin
 Source := WebBrowser1.OleObject.Document.Images.Item(k).Src;
 p := LastDelimiter('.', Source);
 ext := UpperCase(Copy(Source, p + 1, Length(Source)));
 if (ext = 'GIF') or (ext = 'JPG') then
 begin
 p := LastDelimiter('/', Source);
 dest := ExtractFilePath(ParamStr(0)) + Copy(Source, p + 1, Length(Source));
 DownloadFile(Source, dest);
 end;
 end;
end;
Source: http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 03485
Category:Связь
Category:WebBrowser
Как сохранить иконку в файл имея её хендл?

=== Как сохранить иконку в файл имея её хендл? ===
uses
 Windows,ActiveX;
function OleSavePictureFile(dispPicture: IDispatch; bstrFileName: TBStr): HResult; stdcall;
 external 'oleaut32.dll';
// icon - дескриптор иконки
// FileName - файл, в который сохранять
// DestroyAfterSave - уничтожать дескриптор иконки после сохранения или нет
function StoreIconFile(Icon: HICON; FileName: string; DestroyAfterSave: Boolean = False): Boolean;
const
 IID_IPictureDisp:TGUID = '{7BF80981-BF32-101A-8BBB-00AA00300CAB}';
var
 pd: TPictDesc;
 ipd: IPictureDisp;
begin
 pd.cbSizeOfStruct := SizeOf(TPictDesc);
 pd.picType := PICTYPE_ICON;
 pd.hIcon := Icon;
 Result := (OleCreatePictureIndirect(pd, IID_IPictureDisp, DestroyAfterSave, ipd) = S_OK)
 and (OleSavePictureFile(ipd, StringToOLEStr(FileName)) = S_OK);
end;
Author: Krid
Source: Взято из http://forum.sources.ru
ID: 02351
Как сохранить исходник HTML из TWebBrowser.Document на диск?

TWebBrowser.Document включает в себя IPersistStreamInit который содержит метод Save(). Всё, что нам нужно знать, это как использовать данный метод с объектом, который включён в IStream. Для этого мы просто воспользуемся TStreamAdapter.
Обратите внимание, что интерфейсы IPersistStreamInit и IStream объявлены внутри ActiveX unit.
Итак, вот так это выглядит.
procedure TForm1.SaveHTMLSourceToFile(const FileName: string; WB: TWebBrowser);
var
 PersistStream: IPersistStreamInit;
 FileStream: TFileStream;
 Stream: IStream;
 SaveResult: HRESULT;
begin
 PersistStream := WB.Document as IPersistStreamInit;
 FileStream := TFileStream.Create(FileName, fmCreate);
 try
 Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
 SaveResult := PersistStream.Save(Stream, True);
 if FAILED(SaveResult) then
 MessageBox(Handle, 'Fail to save HTML source', 'Error', 0);
 finally
 { В ответ на уничтожение объекта TFileStream, передаём
 soReference в конструктор TStreamAdapter. }
 FileStream.Free;
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 if SaveDialog1.Execute then
 SaveHTMLSourceToFile(SaveDialog1.FileName, WebBrowser1);
end;
А как сохранить вместе с исходником все файлы (.CSS, JPG, GIF Etc..) ?
try
 WebBrowser1.ExecWB(4, 0);
except
 on E: Exception do
 msError:=true;
end;
Source: http://forum.sources.ru
ID: 03486
Category:Связь
Category:WebBrowser
Как сохранить содержимое TPaintBox в BMP

=== Как сохранить содержимое TPaintBox в BMP ===
var
 Bitmap: TBitmap;
 Source: TRect;
 Dest: TRect;
begin
 Bitmap := TBitmap.Create;
 try
 with Bitmap do
 begin
 Width := MyPaintBox.Width;
 Height := MyPaintBox.Height;
 Dest := Rect(0, 0, Width, Height);
 end;
 with MyPaintBox do
 Source := Rect(0, 0, Width, Height);
 Bitmap.Canvas.CopyRect(Dest, MyPaintBox.Canvas, Source);
 Bitmap.SaveToFile('MYFILE.BMP');
 finally
 Bitmap.Free;
 end;
end;
Source: Взято с http://delphiworld.narod.ru
ID: 01254
ID: 03783
Category:Графика
Category:Bitmap
Category:PaintBox
Как сохранить содержимое таблицы в текстовый файл?

=== Как сохранить содержимое таблицы в текстовый файл? ===
Эти небольшие функции анализирую таблицу и записывают её содержимое в TStringList. А затем просто сохраняют в файл.
procedure DatasetRecordToInfFile(ADataset: TDataSet; AStrList: TStrings);
var
 i: integer;
begin
 for i := 0 to (ADataset.FieldCount-1) do
 aStrList.Add(ADataset.Fields[i].FieldName + '=' + ADataset.Fields[i].AsString);
end;
procedure DatasetToInfFile(ADataset: TDataSet; AStrList: TStrings);
begin
 ADataSet.First;
 while not ADataSet.EOF do
 begin
 DatasetRecordToInfFile(ADataset, AStrList);
 ADataSet.Next;
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 DatasetRecordToInfFile(Table1, Memo1.Lines);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
 DatasetToInfFile(Table1, Memo1.Lines);
end;
Source: Взято с http://delphiworld.narod.ru
ID: 02602
Category:Базы данных
Как сохранить текст MS Word в другом формате?

Создайте новую форму и разместите на ней:
* кнопку Button3,
* компонент RichText с названием WordEditor,
* компонент OpenDialog.
Теперь вы можете выбирать любой файл *.doc и загружать его в компонент RichText.
;Примечание: Format := 6 заставит Word сохранять файл как RTF. Указать расширение файла не достаточно.
Другие форматы файлов:
* 0 - Обычный (Word format)
* 1 - Шаблон документа
* 2 - Только текст (в кодировке ANSI)
* 3 - Текст с разделителями (текст с переносами строк; кодировка ANSI)
* 4 - Только текст (PC-8) (кодировка IBM PC)
* 5 - Текст с разделителями (PC-8) (текст с переносами строк; кодировка IBM PC)
* 6 - Rich-text format (RTF)
procedure TImport_Form.ToolButton3Click(Sender: TObject);
var
 WordApp: Variant;
begin
 if OpenDialog1.Execute then
 begin
 Edit1.Text := ExtractFileName(OpenDialog1.FileName);
 StatusBar1.SimpleText := OpenDialog1.FileName;
 WordApp := CreateOleObject('Word.Basic');
 if not VarIsEmpty(WordApp) then
 begin
 WordApp.FileOpen(OpenDialog1.FileName);
 WordApp.FileSaveAs(Name := 'c:\temp_bb.rtf', Format := 6);
 WordApp.AppClose;
 WordApp := Unassigned;
 WordEditor.Lines.LoadFromFile('c:\temp_bb.rtf');
 end
 else
 ShowMessage('Could not start MS Word');
 end;
end;
Как сделать, чтобы Word не открывал файлы с паролем или файлы помощника, которые вызывают зависание?
Перед открытием документа нужно добавить:
if WordApp.ActiveDocument.HasPassword = True then
 MsgBox("Password Protected");
Можно задать пароль:
WordApp.Password := 'mypassword";
;Внимание: Если код выше выдает "Undefined property: ActiveDocument", замените:
CreateOleObject('Word.Basic');
на
CreateOleObject('Word.Application');
Source: Взято с Delphi Knowledge Base: http://www.baltsoft.com/
ID: 04420
Category:COM
Category:MS Office
Как спрятать и отключить кнопку "Пуск"?

=== Как спрятать и отключить кнопку "Пуск"? ===
Приведенный пример прячет и показывает кнопку "Пуск", а также разрешает и запрещает ее. 
procedure TForm1.Button1Click(Sender: TObject);
var
 Rgn: hRgn;
begin
 { Cпрятать кнопку "Пуск" }
 Rgn := CreateRectRgn(0, 0, 0, 0);
 SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), Rgn, True);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
 { Показать кнопку "Пуск" }
 SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), 0, True);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
 { Запретить кнопку "Пуск" }
 EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), False);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
 { Разрешить кнопку "Пуск" }
 EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), True);
end;
ID: 01797
Как спрятать окна MDI Child

=== Как спрятать окна MDI Child ===
procedure TCustomForm.VisibleChanging;
begin
 if (FormStyle = fsMDIChild) and Visible then
 raise EInvalidOperation.Create(SMDIChildNotVisible);
end;
Source: Взято с http://delphiworld.narod.ru
ID: 00500
Как спрятать окно при запуске приложения?

=== Как спрятать окно при запуске приложения? ===
OnCreate формы ставишь Application.ShowMainForm := False; собственно и все, этим решается и вопрос с закладкой в таскбаре и с видимостью формы
Author: Diamond Cat
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00458
----
Я пытаюсь создать приложение, помещающее во время запуска иконку в системную область панели задач c надлежащим контекстным меню. Тем не менее приложение все еще остается видимым в панели задач. Использование Application.ShowMainForm:=False оказывается недостаточным. 
Я тоже столкнулся с этой проблемой, но, к счастью, нашел ответ. Вот маленький код, который классно справляется с проблемой.
procedure TMainForm.FormCreate(Sender: TObject);
begin
 Application.OnMinimize := AppMinimize;
 Application.OnRestore := AppMinimize;
 Application.Minimize;
 AppMinimize(@Self);
end;
procedure TMainForm.AppMinimize(Sender: TObject);
begin
 ShowWindow(Application.Handle, SW_HIDE);
end;
Source: Взято с http://delphiworld.narod.ru
ID: 00459
Как спрятать форму?

=== Как спрятать форму? ===
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Frorm1.Handle, SW_HIDE);
Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00457
Как сравнить Bookmarks в таблице?

=== Как сравнить Bookmarks в таблице? ===
function TBDEDirect.CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Boolean;
var
 Res: DBIResult;
 CompareRes: Word;
begin
 Result := False;
 if CheckDatabase then
 begin
 Res := DbiCompareBookmarks(FDataLink.DataSource.DataSet.Handle,
 Bookmark1, Bookmark2, CompareRes);
 if Res = 0 then
 if CompareRes = 0 then
 Result := True;
 else
 Check(Res);
 end;
end;
ID: 02436
Как сравнить bookmarks в таблице?

=== Как сравнить bookmarks в таблице? ===
function TBDEDirect.CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Boolean;
var
 Res: DBIResult;
 CompareRes: Word;
begin
 Result := False;
 if CheckDatabase then
 begin
 Res := DbiCompareBookmarks(FDataLink.DataSource.DataSet.Handle,
 Bookmark1, Bookmark2, CompareRes);
 if Res = 0 then
 begin
 if CompareRes = 0 then
 Result := True;
 end
 else
 Check(Res);
 end;
end;
ID: 02608
Как сравнить быстродействие алгоритмов

Если вас сколько-нибудь интересует скорость работы вашей программы, то нужно смерить скорость алгоритмов и сравнивать их. Здесь я привожу пример, сравнивающий четыре способа возведения 2 в степень 30.
uses Math;
procedure TForm1.Button1Click(Sender: TObject);
var
 Res, Exponent: Integer;
 Res1: Real;
 t, i: Integer;
begin
 Exponent := 30;
 Application.ProcessMessages;
 t := GetTickCount;
 for i := 1 to 1000000 do
 Res := 1 shl Exponent;
 Form1.Caption := Form1.Caption + ' ' + IntToStr(GetTickCount - t);
 Application.ProcessMessages;
 t := GetTickCount;
 for i := 1 to 1000000 do
 Res1 := LdExp(1, Exponent);
 Form1.Caption := Form1.Caption + ' ' + IntToStr(GetTickCount - t);
 Application.ProcessMessages;
 t := GetTickCount;
 for i := 1 to 1000000 do
 Res1 := IntPower(2, Exponent);
 Form1.Caption := Form1.Caption + ' ' + IntToStr(GetTickCount - t);
 Application.ProcessMessages;
 t := GetTickCount;
 for i := 1 to 1000000 do
 Res1 := Power(2, Exponent);
 Form1.Caption := Form1.Caption + ' ' + IntToStr(GetTickCount - t);
end;
 delphi4all@narod.ru
 aleksey@sch103.krasnoyarsk.su
Author: Автор советов: Даниил Карапетян
Author: Автор справки: Алексей Денисов
ID: 04235
Category:Алгоритмы
Category:Математика
Как сравнить две иконки

=== Как сравнить две иконки ===
function IconsAreEqual(const Icon1, Icon2: TIcon): Boolean;
var
 ms1: TMemoryStream;
 ms2: TMemoryStream;
begin
 Result := False;
 ms1 := TMemoryStream.Create;
 try
 Icon1.SaveToStream(ms1);
 ms2 := TMemoryStream.Create;
 try
 Icon2.SaveToStream(ms2);
 if ms1.Size = ms2.Size then
 // Compare the streams, Streams vergleichen:
 Result := CompareMem(ms1.Memory, ms2.Memory, ms1.Size)
 finally
 ms2.Free
 end
 finally
 ms1.Free
 end
end;
procedure TForm1.Button1Click(Sender: TObject);
var
 icon1: TIcon;
 icon2: TIcon;
begin
 icon1 := TIcon.Create;
 icon2 := TIcon.Create;
 try
 icon1.LoadFromFile('c:\Icon1.ico');
 icon2.LoadFromFile('c:\Icon2.ico');
 if IconsAreEqual(icon1, icon2) then
 ShowMessage('Icon 1 and Icon 2 match')
 else
 ShowMessage('Icon 1 and Icon 2 do not match');
 finally
 icon1.Free;
 icon2.Free;
 end;
end;
Source: Взято с сайта: http://www.swissdelphicenter.ch
ID: 02370
Как среагировать на минимизацию-максимизацию формы перед тем как произойдет изменение?

=== Как среагировать на минимизацию-максимизацию формы перед тем как произойдет изменение? ===
Перехватывать сообщение WM_SYSCOMMAND. Если это сообщение говорит о минимизации или максимизации формы - пищит динамик.
type
 TForm1 = class(TForm)
 private
 { Private declarations }
 procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
 public
 { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMSysCommand;
begin
 if (Msg.CmdType = SC_MINIMIZE) or (Msg.CmdType = SC_MAXIMIZE) then
 MessageBeep(0)
 else
 inherited;
end;
ID: 00421
Как сэкономить память в Ваших программах

Совместимость: Delphi 4.x (или выше)
Обычно, когда класс располагается в памяти, то между полями остаются небольшие пространства, не содержащие никакой информации. Оказывается можно избавиться от таких участков памяти и соответственно Ваше приложение будет меньше расходовать оперативной памяти.
Но сначала обратимся к основам типов данных, используемых в Delphi, и детально рассмотрим - сколько байт памяти занимает каждый тип данных:
* Boolean, char and byte = 1 байт 
* SmallInt, word, wordbool = 2 байт 
* string, pointers, LongInt, Integer = 4 байт
Теперь давайте посмотрим на объявление класса в нашем исходном коде:
TMyClass = class
private
 field1: Char;
 field2: LongInt;
 field3: Boolean;
 field4: string;
 field5: Byte;
 field6: Integer;
public
 procedure proc1;
end;
теперь просуммируем байты, которые занимает каждый тип данных. По идее должно получиться 15 байт, но на самом деле это не так. Реальный размер, занимаемый данным экземпляром класса будет составлять 24 байта, т. е. 4 байта на каждое поле. Почему? Потому что по умолчанию в Delphi, по правилам оптимизации, каждое поле располагается от предыдущего со сдвигом на 4 байта: field1 занимает 1 байт, по идее поле field2 должно следовать сразу же за field1, но по правилам оптимизации, остаются 3 байта не содержащие никакой информации, а следовательно напрасно потерянные. А если бы field2 был бы длиной в 1 байт или 2 байта, то он был бы помещён сразу же за полем field1, потому что это не нарушает правил оптимизации.
Какой же напрашивается вывод? А если изменить порядок объявления переменных в классе? Я просто сгруппировал переменные по их размеру (байтовому): вместе все однобайтовые, соответственно вместе все двухбайтовые и т.д.
Вот так стал выглядеть наш класс:
TMyClass = class
private
 field1: Char;
 field3: Boolean;
 field5: Byte;
 field2: LongInt;
 field4: string;
 field6: Integer;
public
 procedure proc1;
end;
С такой организацией классы, его длина стала 16 байт (сэкономили 8 байт на каждом экземпляре данного класса). Конечно же это не большая экономия памяти, но в тех случая, когда класс инициализируется многократно либо класс довольно велик, то такая экономия довольно ощутима.
Author: Diego Jones
Source: http://forum.sources.ru
ID: 04524
Category:Разработка приложений
Category:Оптимизация и отладка
Как таскать форму за метку?

=== Как таскать форму за метку? ===
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
const 
 SC_DragMove = $F012; { a magic number }
begin
 ReleaseCapture();
 Form1.Perform(WM_SysCommand, SC_DragMove, 0);
end;
Author: TAPAKAH
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00584
Category:VCL
Category:DragAndDrop
Как текст на кнопке расположить под заданным углом

=== Как текст на кнопке расположить под заданным углом ===
Как выдать текст под наклоном? 
Чтобы вывести под любым углом текст необходимо использовать TrueType Fonts (например «Arial»). Например:
var
 LogFont: TLogFont;
begin
 GetObject(Canvas.Font.Handle, SizeOf(TLogFont), @LogFont);
 { Вывести текст 1/10 градуса против часовой стрелки }
 LogFont.lfEscapement := Angle * 10;
 Canvas.Font.Handle := CreateFontIndirect(LogFont);
end;
Source: http://delphiworld.narod.ru/
ID: 01245
Как у Комбобокса сделать BorderStyle := bsNone?

=== Как у Комбобокса сделать BorderStyle := bsNone? ===
procedure TForm1.FormCreate(Sender: TObject);
begin
 SetWindowRgn(ComboBox1.Handle, CreateRectRgn(2, 2, ComboBox1.Width - 2, ComboBox1.Height - 2), True);
end;
Author: Smike
Source: Взято из http://forum.sources.ru
ID: 01159
----
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;
type
 TForm1 = class(TForm)
 ComboBox1: TComboBox;
 procedure FormCreate(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
function NewComboProc(wnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): Integer; stdcall;
var
 r, r1: TRect;
begin
 case uMsg of
 WM_PAINT:
 begin
 GetWindowRect(wnd, r);
 SetWindowRgn(wnd, CreateRectRgn(2, 2, r.Right-r.Left - 2, r.Bottom-r.Top - 2), True);
 end;
 WM_CTLCOLORLISTBOX:
 begin
 GetWindowRect(wnd, r);
 GetWindowRect(lParam, r1);
 if (r.Left = r1.Left) and (r.Right = r1.Right) then
 begin
 InflateRect(r1, -2,0);
 SetWindowPos(lParam, 0, r.Left+2, r.Bottom-2, r1.Right-r1.Left, r1.Bottom-r1.Top, SWP_NOZORDER);
 end;
 end;
 end;
 Result := CallWindowProc(Pointer(GetWindowLong(wnd, GWL_USERDATA)), wnd, uMsg, wParam, lParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 SetWindowLong(ComboBox1.Handle, GWL_USERDATA, SetWindowLong(ComboBox1.Handle, GWL_WNDPROC, LPARAM(@NewComboProc)));
end;
end.
Author: Krid
Source: Взято из http://forum.sources.ru
----
Как убить задачу, зная только имя .exe?

=== Как убить задачу, зная только имя .exe? ===
{ Эта небольшая функция закрывает приложения, соответствующие заданному имени .exe.
 Пример: KillTask('notepad.exe');
 KillTask('iexplore.exe'); }
uses
 Tlhelp32, Windows, SysUtils;
function KillTask(ExeFileName: string): Integer;
const
 PROCESS_TERMINATE=$0001;
var
 ContinueLoop: BOOL;
 FSnapshotHandle: THandle;
 FProcessEntry32: TProcessEntry32;
begin
 Result := 0;
 FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
 ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
 while Integer(ContinueLoop) <> 0 do
 begin
 if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName))
 or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName)))
 then
 Result := Integer(TerminateProcess(OpenProcess(
 PROCESS_TERMINATE, BOOL(0),
 FProcessEntry32.th32ProcessID), 0));
 ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
 end;
 CloseHandle(FSnapshotHandle);
end;
Source: Взято из http://forum.sources.ru
ID: 02103