Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ Delphi. ВСрсия 1.0.6Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 16

Автор Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½ ΠžΠ·Π΅Ρ€ΠΎΠ²

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма

Π‘ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° основС простого модуля-класса, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ просмотр Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

unit ClipboardViewer;


interface


uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;


type TForm1 = class(tform)

 procedure FormCreate(Sender: TObject);

 procedure FormDestroy(Sender: TObject);

private

 FNextViewerHandle : THandle;

 procedure WMDrawClipboard(var message: TMessage); message WM_DRAWCLIPBOARD;

 procedure WMChangeCBCHain(var message: TMessage); message WM_CHANGECBCHAIN;

public

end;


var Form1: TForm1;


implementation

{$R *.DFM}


procedure TForm1.FormCreate(Sender: TObject);

begin

 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

 // ΠŸΡ€ΠΈ нСвозмоТности просмотра Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°

 // функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Nil.

 FNextViewerHandle:= SetClipboardViewer(Handle);

end;


procedure TForm1.FormDestroy(Sender: TObject);

begin

 // ВосстанавливаСм Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ.

 ChangeClipboardChain(Handle, FNextViewerHandle);

end;


procedure TForm1.WMDrawClipboard(var message: TMessage);

begin

 // ВызываСтся ΠΏΡ€ΠΈ любом ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ содСрТимого Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°

 message.Result := SendMessage(WM_DRAWCLIPBOARD, FNextViewerHandle, 0, 0);

end;


procedure TForm1.WMChangeCBCHain(var message: TMessage);

begin

 // ВызываСтся ΠΏΡ€ΠΈ любом ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

 if message.wParam = FNextViewerHandle then begin

  // УдаляСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ просмотра. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

  FNextViewerHandle:= message.lParam;

  // Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ 0 Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сообщСниС Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ

  message.Result:= 0;

 end else begin

  // ΠŸΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ сообщСниС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΊΠ½Ρƒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅.

  message.Result:= SendMessage(FNextViewerHandle, WM_CHANGECBCHAIN, message.wParam, message.lParam);

 end;

end;


end.

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°

Π”Π²Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

procedure CopyButtonClick(Sender: TObject);

begin

 If ActiveControl is TMemo then TMemo(ActiveControl).CopyToClipboard;

 If ActiveControl is TDBMemo then TDBMemo(ActiveControl).CopyToClipboard;

 If ActiveControl is TEdit then TEdit(ActiveControl).CopyToClipboard;

 If ActiveControl is TDBedit then TDBedit(ActiveControl).CopyToClipboard;

end;

procedure PasteButtonClick(Sender: TObject);

begin

 If ActiveControl is TMemo then TMemo(ActiveControl).PasteFromClipboard;

 If ActiveControl is TDBMemo then TDBMemo(ActiveControl).PasteFromClipboard;

 If ActiveControl is TEdit then TEdit(ActiveControl).PasteFromClipboard;

 If ActiveControl is TDBedit then TDBedit(ActiveControl).PasteFromClipboard;

end;

Π€ΠΎΡ€ΠΌΠ° ΠΊΠ°ΠΊ графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° Π² Π²ΠΈΠ΄Π΅ графичСского изобраТСния?

uses clipbrd;


procedure TShowVRML.Kopieren1Click(Sender: TObject);

var bitmap:tbitmap;

begin

 bitmap:=tbitmap.create;

 bitmap.width:=clientwidth;

 bitmap.height:=clientheight;

 try

  with bitmap.Canvas do CopyRect (clientrect,canvas,clientrect);

  clipboard.assign(bitmap);

 finally

  bitmap.free;

 end;

end;

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

BitBtn

Π‘ΠΌΠ΅Π½Π° ΠΈΠΊΠΎΠ½ΠΊΠΈ BitBtn Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния

Иконка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° являСтся инкапсулированным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌ для хранСния изобраТСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ участок памяти. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ, ΠΏΠ°ΠΌΡΡ‚ΡŒ, связанная с ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ, Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΊΡƒΡ‡Ρƒ, Π° для Π½ΠΎΠ²ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΈ трСбуСтся Π½ΠΎΠ²ΠΎΠ΅ распрСдСлСниС памяти. По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Delphi, этим Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ "Assign". НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ всСй ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΈΠΊΠΎΠ½ΠΊΠΈ.

implementation

{$R *.DFM}


var n: integer;  // ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Ρ‹ΠΌ Π½ΡƒΠ»ΡŽ

procedure TForm1.Button1Click(Sender: TObject);

var Image: TBitmap;

begin // ИзмСнСниС иконки в bitbtn1

 Image:= TBitmap.Create;

 if n < ImageList1.Count then ImageList1.GetBitmap(n, Image); {end if}

 BitBtn1.Glyph.Assign(Image)   // ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Для измСнСния свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Assign

 inc(n,2); // Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠ° содСрТит Π΄Π²Π΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ!

 if n > ImageList1.Count then n:= 0; {end if}

 Image.Free;

end;


procedure TForm1.Button2Click(Sender: TObject);

begin // добавляСм Π½ΠΎΠ²ΡƒΡŽ ΠΈΠΊΠΎΠ½ΠΊΡƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² список imagelist1

 if OpenDialog1.Execute then ImageList1.FileLoad(rtBitMap,OpenDialog1.FileName,clBtnFace);

 label1.Caption:=  'ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΈΠΊΠΎΠ½ΠΎΠΊ = ' + IntToStr(ImageList1.Count);

end;

DBGrid

ИспользованиС ΠΎΠΏΡ†ΠΈΠΈ MultiSelect Π² DBGRID

Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Delphi Technical Information… Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎ адрСсу http://loki.borland.com/winbin/bds.exe?getdoc+2976+Delphi

{*

 Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ мноТСствСнный Π²Ρ‹Π±ΠΎΡ€ записСй

 Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ сСткС ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»Π΅

 Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ….

 ΠœΠ΅Ρ‚ΠΎΠ΄ DisableControls примСняСтся для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹

 DBGrid Π½Π΅ обновлялся Π²ΠΎ врСмя измСнСния Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ….

 ΠŸΠΎΡΠ»Π΅Π΄Π½ΡΡ позиция Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… сохраняСтся ΠΊΠ°ΠΊ

 TBookmark.

 ΠœΠ΅Ρ‚ΠΎΠ΄ IndexOf вызываСтся для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

 ΡΡƒΡ‰Π΅ΡΡ‚вования Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ.

 Π Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ IndexOf, Π° Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄

 Refresh Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ

 ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠΎΠΉ прилоТСния.

*}

procedure TForm1.SelectClick(Sender: TObject);

var

 x: word;

 TempBookmark: TBookMark;

begin

 DBGrid1.Datasource.Dataset.DisableControls;

 with DBgrid1.SelectedRows do if Count  <> 0 then begin

  TempBookmark:= DBGrid1.Datasource.Dataset.GetBookmark;

  for x:= 0 to Count - 1 do begin

   if  IndexOf(Items[x]) > –1 then begin

    DBGrid1.Datasource.Dataset.Bookmark:= Items[x];

    showmessage(DBGrid1.Datasource.Dataset.Fields[1].AsString);

   end;

  end;

 end;

 DBGrid1.Datasource.Dataset.GotoBookmark(TempBookmark);

 DBGrid1.Datasource.Dataset.FreeBookmark(TempBookmark);

 DBGrid1.Datasource.Dataset.EnableControls;

end;


Edit

Массив Edit-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Procedure DoSomethingWithEditControls;

Var K: Integer;

 EditArray: Array[0..99] of Tedit;

begin

 Try

  For  K:= 0 to 99 do begin

   EditArray[K]:= TEdit.Create(Self);

   EditArray[K].Parent:= Self;

   SetSomeOtherPropertiesOfTEdit; {УстанавливаСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ свойства TEdit}

   Left:= 100; Top:= K*10;

   OnMouseMove:= WhatToDoWhenMouseIsMoved; {Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ}

  end;

  DoWhateverYouWantToDoWithTheseEdits; {Π”Π΅Π»Π°Π΅ΠΌ всС Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ массивом Edit-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²}

 Finally

 For K:= 0to 99do EditArray[K].Free;

end;

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΡƒΠ·Π½Π°Ρ‚ΡŒ доступныС свойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ нСпосрСдствСнно Π² инспСкторС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ (ΠΈΠ»ΠΈ) Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅ вашСй Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ View as Text)

Label

3D-Ρ€Π°ΠΌΠΊΠ° для тСкстовых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Один ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² создания тСкстового ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° с Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΎΠΉ (для создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΎΠΊΠΎΠ»ΠΎ получаса. Он дСмонстрируСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ получСния Ρ€Π°ΠΌΠΊΠΈ. Π― Π½Π΅ стал ΠΊΠΎΠ»Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π΄ свойствами Ρ‚ΠΈΠΏΠ° ParentFont…, Ρ‚.ΠΊ. это заняло Π±Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ мСста).

unit IDSLabel;


interface


uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;


type TIDSLabel = class(TBevel)

private

 { Private declarations }

 FAlignment: TAlignment;

 FCaption: String;

 FFont: TFont;

 FOffset: Byte;

 FOnChange: TNotifyEvent;

 procedure SetAlignment(taIn : TAlignment);

 procedure SetCaption(const strIn: String);

 procedure SetFont(fntNew: TFont);

 procedure SetOffset(bOffNew: Byte);

protected

{ Protected declarations }

 constructor Create(compOwn: TComponent); override;

 destructor Destroy; override;

 procedure Paint; override;

public

{ Public declarations }

published

{ Published declarations }

 property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;

 property Caption: String read FCaption write SetCaption;

 property Font: TFont read FFont write SetFont;

 property Offset: Byte read FOffset write SetOffset;

 property OnChange: TNotifyEvent read FOnChange write FOnChange;

end;


implementation


constructor TIDSLabel.Create;

begin

 inherited Create(compOwn);

 FFont:= TFont.Create;

 with compOwn as TForm do FFont.Assign(Font);

 Offset:= 4;

 Height:= 15;

end;


destructor TIDSLabel.Destroy;

begin

 FFont.Free;

 inherited Destroy;