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

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

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

procedureTfrmExplorer.TreeViewMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

var P : TPoint;

begin

 if  Button<>mbRight then exit;

 TreeMenu.AutoPopup := False;

 if TreeView.GetNodeAt(X,Y)<>NIL then begin

  TreeView.Selected := TreeView.GetNodeAt(X,Y);

  P.X := X;

  P.Y:=Y;

  P := TreeView.ClientToScreen(P);

  TreeMenu.Popup(P.X,P.Y);

 end;

end;

Иконки в PopupMenu

Delphi 2

type TForm1 = class(TForm)

 MainMenu1: TMainMenu;

 File1: TMenuItem; /**** Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ для Menu Bar ****/

 Open1: TMenuItem; /**** Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ для Menu File ****/

 procedure FormCreate(Sender: TObject);

 procedure FormShow(Sender: TObject);

private

 {private declarations}

public

 {public declarations}

 Icn, Txt, MnuItm: TBitmap;

end;


procedure TForm2.FormCreate(Sender: TObject);

var

 R: TRect;

 HIcn: HIcon;

 Ic: TIcon;

 Index: Word;

 FileName: PChar;

begin

 /** ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΈΠΊΠΎΠ½ΠΊΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ прилоТСния **/

 Ic:=TIcon.Create;

 Ic.Handle:=ExtractAssociatedIcon(Hinstance, /* Π·Π°Π΄Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΈ имя Ρ„Π°ΠΉΠ»Π° */, Index);

 /** Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ для тСкста ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ **/

 Txt:=TBitmap.Create;

 with Txt do begin

  Width:=Canvas.TextWidth(' ВСст');

  Height:=Canvas.TextHeight(' ВСст');

  Canvas.TextOut(0, 0, ' ВСст');

 end;

 /** ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠΊΠΎΠ½ΠΊΡƒ Π² bitmap для измСнСния Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠΊΠΎΠ½ΠΊΠΈ **/

 Icn:=TBitmap.Create;

 with Icn do begin

  Width:=32;

  Height:=32;

  Brush.Color:=clBtnFace;

  Canvas.Draw(0, 0, Ic);

 end;

 /** Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΡƒΠ΄Π° ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΈΠΊΠΎΠ½ΠΊΡƒ ΠΈ тСкст **/

 MnuItm:=TBitmap.Create;

 with MnuItm do begin

  Width:=Txt.Width+18;

  Height:=18;

  with Canvas do begin

   Brush.Color:=clBtnFace;

   Pen.Color:=clBtnFace;

   Brush.Style:=bsSolid;

   Rectangle(0, 0, Width, Height);

   CopyMode:=cmSrcAnd;

   StretchDraw(Rect(0, 0, 16, 16), Icn);

   CopyMode:=cmSrcAnd;

   Draw(16, 8-(Txt.Height div 2), Txt);

  end;

 end;

end;


procedure TForm2.FormShow(Sender: TObject);

var

 ItemInfo: TMenuItemInfo;

 hBmp1   : THandle;

begin

 HBmp1:=MnuItm.Handle;

 with ItemInfo do begin

  cbSize     := SizeOf(ItemInfo);

  fMask      := MIIM_TYPE;

  fType      := MFT_BITMAP;

  dwTypeData := PChar(MakeLong(hBmp1, 0));

 end;

 /** ЗамСняСм MenuItem Open1 Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ **/

 SetMenuItemInfo(GetSubMenu(MainMenu1.Handle, File1.MenuIndex), Open1.MenuIndex, true, ItemInfo);

end;

Π’ мСню ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΈ. Π― Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ‰Ρƒ Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ это всС, Ρ‡Ρ‚ΠΎ я Π²Π°ΠΌ ΠΌΠΎΠ³Ρƒ сСйчас Π΄Π°Ρ‚ΡŒ.

Листинг Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² Β«Ρ‡Π•ΠΊΠ½ΡƒΡ‚ΠΎΠ΅Β» состояниС мСню (просто это Π΄Π΅Π»Π°Π΅Ρ‚ Win95). Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Β«Ρ‡Π•ΠΊΠ½ΡƒΡ‚ΠΎΠ΅Β» ΠΈ Β«Π½Π΅Ρ‡Π•ΠΊΠ½ΡƒΡ‚ΠΎΠ΅Β» состояниС.

unit Unit1;


interface


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


type TForm1 = class(TForm)

 MainMenu1: TMainMenu;

 File1: TMenuItem;

 Open1: TMenuItem;

 procedure FormCreate(Sender: TObject);

 procedure FormShow(Sender: TObject);

private

 { Private declarations }

public

 { Public declarations }

 Icn, MnuItm : TBitmap;

end;


var Form1: TForm1;


implementation


{$R *.DFM}


procedure TForm1.FormCreate(Sender: TObject);

var

 R: TRect;

 HIcn: HIcon;

 Ic: TIcon;

 Index: Word;

begin

 { /** ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΈΠΊΠΎΠ½ΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прилоТСния **/ }

 Index := 0;

 { 11-я ΠΈΠΊΠΎΠ½ΠΊΠ° Π² Ρ„Π°ΠΉΠ»Π΅ }

 Ic:=TIcon.Create;

 Ic.Handle:=ExtractAssociatedIcon(Hinstance, 'c:\win95\system\shell32.dll', Index);

 { /** ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠΊΠΎΠ½ΠΊΡƒ Π² bitmap для измСнСния Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠΊΠΎΠ½ΠΊΠΈ **/ }

 Icn:=TBitmap.Create;

 with Icn do begin

  Width:=32;

  Height:=32;

  Canvas.Brush.Color := clbtnface;

  Canvas.Draw(0,0,Ic);

 end;

 { /** Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΡƒΠ΄Π° ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΈΠΊΠΎΠ½ΠΊΡƒ ΠΈ тСкст **/ }

 MnuItm:=TBitmap.Create;

 with MnuItm do begin

  Width :=18;

  Height:=18;

  with Canvas do begin

   Brush.Color:=clbtnface;

   Pen.Color:=clbtnface;

   CopyMode:=cmSrcAnd;

   StretchDraw(Rect(0,0,16,16), Icn);

  end;

 end;

end;


procedure TForm1.FormShow(Sender: TObject);

var

 ItemInfo: TMenuItemInfo;

 hBmp1   : THandle;

begin

 HBmp1:=MnuItm.Handle;

 with ItemInfo do begin

  cbSize        := SizeOf(ItemInfo);

  fMask         := MIIM_CHECKMARKS;

  fType         := MFT_BITMAP;

  hBmpunChecked := HBmp1; { НСотмСчСнноС (Unchecked) состояниС }

  hBmpChecked   := HBmp1; { ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ΅ (Checked) состояниС }

 end;

 { /** ЗамСняСм MenuItem Open1 Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ **/ }

 SetMenuItemInfo(GetSubMenu(MainMenu1.Handle, File1.MenuIndex), Open1.MenuIndex, true, ItemInfo);

end;

end.

ProgressBar 

ProgressBar β€” Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΊΠ°

Письмо читатСля 

ЗдравствуйтС Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½!

Π—Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° обратился с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ β€” "Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ прогрСсс ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°ΠΊ Π² прилоТСниях Нортона. Π§Ρ‚ΠΎΠ± Π±Ρ‹Π» Π² статус строкС ΠΈ НИКАКИΠ₯ Ρ€Π°ΠΌΠΎΠΊ". ProgressBar Π² StatusBar β€” Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ с Ρ€Π°ΠΌΠΊΠΎΠΉ ΠΎΡ‚ ProgressBar? ProgressBar всСгда Π²Ρ‹Ρ‡Π΅Ρ€Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΠΌΠΊΡƒ ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΅Π΅ управлСния. Однако появилась интСрСсная идСя, Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΠ²ΡˆΠ°ΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с Π½ΠΎΠ²Ρ‹ΠΌ свойством ShowFrame. РСшСниС оказалось Π½Π° ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ простым.

unit SProgress;


interface

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


type TVSProgressBar = class(TProgressBar)

 procedure WMNCPAINT(var Msg: TMessage); message WM_NCPAINT;

private

 { Private declarations }

 FShowFrame: boolean;

 procedure SetShowFrame(Value: boolean);

protected

 { Protected declarations }

public

 { Public declarations }

 constructor Create(AOwner: TComponent); override;

published

 { Published declarations }

 property Align;

 property Anchors;

 property BorderWidth;

 property DragCursor;

 property DragKind;

 property DragMode;

 property Enabled;

 property Hint;

 property Constraints;

 property Min;

 property Max;

 property Orientation;

 property ParentShowHint;

 property PopupMenu;

 property Position;

 property ShowFrame: boolean read FShowFrame write SetShowFrame;

 property ShowHint;

 property Smooth;

 property Step;

 property TabOrder;

 property TabStop;

 property Visible;

 property OnContextPopup;

 property OnDragDrop;

 property OnDragOver;

 property OnEndDock;

 property OnEndDrag;

 property OnEnter;

 property OnExit;

 property OnMouseDown;

 property OnMouseMove;

 property OnMouseUp;

 property OnStartDock;

 property OnStartDrag;

end;


procedure Register;


implementation


{ TVSProgressBar }

constructor TVSProgressBar.Create(AOwner: TComponent);

begin

 Inherited;

 FShowFrame:= True;

end;


procedure TVSProgressBar.SetShowFrame(Value: boolean);