// Help-Button des Formulars benutzen:


// Getestet mit D4 unter XP und mit D2010 unter W7

// Variante 1: Meldung sofort ausgeben

type 
  TForm1 = class(TForm) 
    procedure FormCreate(Sender: TObject); 
  private 
    procedure wmNCLButtonDown(var Msg: TWMNCLButtonDown); 
      message WM_NCLBUTTONDOWN; 
    procedure wmNCLButtonUp(var Msg: TWMNCLButtonUp); 
      message WM_NCLBUTTONUP; 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{ $R * . DFM } 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  BorderIcons := [biSystemMenu, biHelp]; 
end; 
 
procedure TForm1.wmNCLButtonDown(var Msg: TWMNCLButtonDown); 
begin 
  if Msg.HitTest = HTHELP then Msg.Result := 0 
  else inherited; 
end; 
 
procedure TForm1.wmNCLButtonUp(var Msg: TWMNCLButtonUp); 
begin 
  if Msg.HitTest = HTHELP then begin 
    Msg.Result := 0; 
    ShowMessage('Hier steht was Wichtiges'); 
  end else inherited; 
end;


//---------------------------------------------------------------


// Variante 2: Direkthilfe für eine Komponente

type 
  TForm1 = class(TForm) 
    Edit1: TEdit; 
    Button1: TButton; 
    CheckBox1: TCheckBox; 
    procedure FormCreate(Sender: TObject); 
  private 
    procedure wmNCLButtonDown(var Msg: TWMNCLButtonDown); 
      message WM_NCLBUTTONDOWN; 
  public 
    { Public-Deklarationen } 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{$R *.DFM} 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  BorderIcons := [biSystemMenu, biHelp]; 
 
  Edit1.Tag := 1; 
  Button1.Tag := 2; 
  CheckBox1.tag := 3; 
end; 
 
procedure TForm1.wmNCLButtonDown(var Msg: TWMNCLButtonDown); 
var 
  x: integer; 
  p: TPoint; 
  s: string; 
begin 
  inherited; 
  if Msg.HitTest = HTHELP then begin 
    getcursorpos(p); 
    p := ScreenToclient(p); 
    for x := 0 to componentcount - 1 do begin 
      if (components[x] is TControl) 
        and (ptinrect(TControl(components[x]).boundsrect, p)) 
        then begin 
        case components[x].Tag of 
          1: s := 'Hier können Sie etwas eingeben'; 
          2: s := 'Mit diesem Button können Sie etwas auslösen'; 
          3: s := 'Hier können Sie etwas an- oder abhaken'; 
          else
            exit;
          end; 
        showmessage(s); 
      end; 
    end; 
  end; 
end;
 


 

Zugriffe seit 6.9.2001 auf Delphi-Ecke