Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

Как не допустить запуск второй копии программы?
Как извлечь иконку из EXE- и DLL-файлов?
Как завершить все работающие приложения?
Как программно включить NUM LOCK?
Как открыть-закрыть привод CD-ROM?
Как перетащить форму не за заголовок?
Как сделать главную форму полностью невидимой?
Как добиться реального STAY-ON-TOP?
Как сделать прозрачную форму?
Как градиентно "залить" экран?
Как заполнить фон формы повторяющимся изображением?
Как скрыть кнопку "Пуск"?
Как добавить событие OnMouseLeave?
Как добавить кнопку не главной формы на Панель задач?
Как ограничить TEdit на ввод нецифровой информации?
Как добавить иконку в меню?
Как использовать анимированный курсор?
Как узнать серийный номер винчестера?
Как из программы изменить системные время и дату?
Как запустить другую программу?



Как не допустить запуск второй копии программы?

program Previns;

uses
     WinTypes,
     WinProcs,
     SysUtils,
     Forms,
     Uprevins in 'UPREVINS.PAS' {Form1};

{$R *.RES}

type
   PHWND = ^HWND;

function EnumFunc(Wnd:HWND; TargetWindow:PHWND) : bool; export;
var
  ClassName : array[0..30] of char;
begin
  Result := true;
  if GetWindowWord(Wnd,GWW_HINSTANCE) = hPrevInst then
    begin
      GetClassName( Wnd, ClassName, 30 );
      if StrIComp( ClassName, 'TApplication' ) = 0 then
        begin
          TargetWindow^ := Wnd;
          Result := false;
        end;
    end;
end;

procedure GotoPreviousInstance;
var
  PrevInstWnd : HWND;
begin
  PrevInstWnd := 0;
  EnumWindows( @EnumFunc, Longint( @PrevInstWnd ) );
  if PrevInstWnd <> 0 then
    if IsIconic( PrevInstWnd ) then
      ShowWindow( PrevInstWnd, SW_RESTORE )
    else
      BringWindowToTop( PrevInstWnd );
end;

begin
  if hPrevInst <> 0 then
    GotoPreviousInstance
  else
    begin
      Application.CreateForm(TForm1, Form1);
      Application.Run;
  end;
end.

Как извлечь иконку из EXE- и DLL-файлов?

uses ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
var
  IconIndex : word;
  h : hIcon;
begin
  IconIndex := 0;
  h := ExtractAssociatedIcon(hInstance, 'C:\WINDOWS\NOTEPAD.EXE', IconINdex);
  DrawIcon(Form1.Canvas.Handle, 10, 10, h);
end;

Как завершить все работающие приложения?

Пример показывает, как закрыть все приложения без сохранения данных.

procedure TForm1.Button1Click(Sender: TObject);
var
  pTask : PTaskEntry;
  Task : Bool;
  ThisTask: THANDLE;
begin
  GetMem (pTask, SizeOf (TTaskEntry));
  pTask^.dwSize := SizeOf (TTaskEntry);
  Task := TaskFirst (pTask);
    while Task do
      begin
        if pTask^.hInst = hInstance then
          ThisTask := pTask^.hTask
        else
          TerminateApp (pTask^.hTask, NO_UAE_BOX);
      Task := TaskNext (pTask);
    end;
  TerminateApp (ThisTask, NO_UAE_BOX);
end;

Как программно включить NUM LOCK?

procedure TForm1.Button1Click(Sender: TObject);
var
  KeyState : TKeyboardState;
begin
  GetKeyboardState(KeyState);
    if (KeyState[VK_NUMLOCK] = 0) then
      KeyState[VK_NUMLOCK] := 1
    else
      KeyState[VK_NUMLOCK] := 0;
    SetKeyboardState(KeyState);
end;
{Для CAPS LOCK - VK_CAPITAL}
{Для SCROOL LOCK - VK_SCROLL}


Как открыть-закрыть привод CD-ROM?

Открываем:
mciSendString('Set cdaudio door open wait', nil, 0, handle);

Закрываем:
mciSendString('Set cdaudio door closed wait', nil, 0, handle);

//Не забудьте подключить модуль MMSystem


Как перетащить форму не за заголовок?

public
    procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
......
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
  inherited;
   if M.Result = htClient then
            M.Result := htCaption;
end;

Как сделать главную форму полностью невидимой?

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;

Как добиться реального STAY-ON-TOP?

with Form1 do
   SetWindowPos(Handle,
                          HWND_TOPMOST,
                          Left,
                          Top,
                          Width,
                          Height,
                          SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

Поместите вызов данной функции в обработчиках события OnShow(), OnDeactivate(), и OnActivate().

Как сделать прозрачную форму?

procedure TForm1.FormCreate(Sender: TObject);
begin
   Form1.Brush.Style := bsClear;
   Form1.BorderStyle := bsNone;
end;

Как градиентно "залить" экран?

procedure TForm1.FormPaint(Sender: TObject);
var
  Row, Ht: Word;
begin
  Ht := (ClientHeight + 255) div 256;
   for Row := 0 to 255 do
     with Canvas do
      begin
       Brush.Color := RGB(0, 0, Row);
       FillRect(Rect(0, Row * Ht, ClientWidth, (Row + 1) * Ht));
      end;
end;

Как заполнить фон формы повторяющимся изображением?

unit Unit1;

interface

uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs;

type
      TForm1 = class(TForm)
      procedure FormCreate(Sender: TObject);
      procedure FormPaint(Sender: TObject);

private
    { Private declarations }
public
    { Public declarations }
end;

var
    Form1: TForm1;
    Bitmap: TBitmap;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Bitmap := TBitmap.Create;
  Bitmap.LoadFromFile('C:\WINDOWS\cars.BMP');
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  X, Y, W, H: LongInt;
begin
  with Bitmap do
    begin
      W := Width;
      H := Height;
    end;
  Y := 0;
   while Y < Height do
     begin
       X := 0;
        while X < Width do
           begin
            Canvas.Draw(X, Y, Bitmap);
            Inc(X, W);
        end;
       Inc(Y, H);
   end;
  end;
end.

Как скрыть кнопку "Пуск"?

procedure HideStartButton(visi:boolean);
var
  Tray, Child : hWnd;
  C : Array[0..127] of Char;
  S : String;
begin
  Tray := FindWindow('Shell_TrayWnd', nil);
  Child := GetWindow(Tray, GW_CHILD);
   while Child <> 0 do
    begin
     If GetClassName(Child, C, SizeOf(C)) > 0 then
      begin
       S := StrPAS(C);
        If UpperCase(S) = 'BUTTON' then
         begin
          IsWindowVisible(Child);
           If Visi then
            ShowWindow(Child, 1)
           else
            ShowWindow(Child, 0);
           end;
        end;
     Child := GetWindow(Child, GW_HWNDNEXT);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 HideStartButton(True);
end;

Как добавить событие OnMouseLeave?

procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
.....
procedure MyComponent.CMMouseEnter(var msg:TMessage);
begin
  inherited;
   {действия на вход мыши в область компонента}
end;

procedure MyComponent.CMMouseLeave(var msg: TMessage);
begin
  inherited;
   {действия на покидание мыши области компонента}
end;

Как добавить кнопку не главной формы на Панель задач?

type
   TForm2 = class(TForm)

  protected
   procedure CreateParams(VAR Params: TCreateParams); override;
....
procedure TForm2.CreateParams(VAR Params: TCreateParams);
begin
  Inherited CreateParams(Params);
   with Params do ExStyle := ExStyle OR WS_EX_APPWINDOW;
end;

Как ограничить TEdit на ввод нецифровой информации?

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8,'0'..'9']) then Key := #0;
end;

Как добавить иконку в меню?

var
  Bmp1 : TPicture;
.....
  Bmp1 := TPicture.Create;
  Bmp1.LoadFromFile('c:\where\b1.BMP');
   SetMenuItemBitmaps(MenuItemTest.Handle,
                                    0,
                                    MF_BYPOSITION,
                                    Bmp1.Bitmap.Handle,
                                    Bmp1.Bitmap.Handle);

Как использовать анимированный курсор?

const
    crMyCursor = 1;
.....
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Загружаем курсор. Единственный способ для этого
  Screen.Cursors[crMyCursor] := LoadCursorFromFile('c:\mystuff\mycursor.ani');
  // Используем курсор на форме
  Cursor := crMyCursor;
end;

Как узнать серийный номер винчестера?

procedure TForm1.Button1Click(Sender: TObject);
var
  SerialNum : dword;
  a, b : dword;
  Buffer : array [0..255] of char;
begin
  if GetVolumeInformation('c:\', Buffer, SizeOf(Buffer), @SerialNum, a, b, nil, 0) then
    Label1.Caption := IntToStr(SerialNum);
end;

Как из программы изменить системные время и дату? 

function SetPCSystemTime(tDati: TDateTime): boolean;
var
   tSetDati: TDateTime;
   vDatiBias: Variant;
   tTZI: TTimeZoneInformation;
   tST: TSystemTime;
begin
GetTimeZoneInformation(tTZI);
 vDatiBias := tTZI.Bias / 1440;
tSetDati := tDati + vDatiBias;
  with tST do
   begin
     wYear := StrToInt(FormatDateTime('yyyy', tSetDati));
     wMonth := StrToInt(FormatDateTime('mm', tSetDati));
     wDay := StrToInt(FormatDateTime('dd', tSetDati));
     wHour := StrToInt(FormatDateTime('hh', tSetDati));
     wMinute := StrToInt(FormatDateTime('nn', tSetDati));
     wSecond := StrToInt(FormatDateTime('ss', tSetDati));
     wMilliseconds := 0;
   end;
   SetPCSystemTime := SetSystemTime(tST);
end;

Как запустить другую программу?

function ExecuteFile(const FileName, Params, DefaultDir: string; ShowCmd: Integer): THandle;
var
  zFileName, zParams, zDir: array[0..79] of Char;
begin
  Result := ShellExecute(Application.MainForm.Handle, nil,
                                    StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
                                    StrPCopy(zDir, DefaultDir), ShowCmd);
end;
.....
procedure TForm1.Button1Click(Sender: TObject);
begin
  ExecuteFile('maker.exe','text_file','c:\maker', SW_SHOWNORMAL);
end;










helloworld.ru © 2001-2021
Все права защищены