Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Verhalten diverser Komponenten ändern

  Alt 16. Okt 2006, 17:52
Wie wäre es denn mal so:
Delphi-Quellcode:
unit Unit6;

interface

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

type
  TForm6 = class(TForm)
    Panel1: TPanel;
    CheckBox1: TCheckBox;
    Edit1: TEdit;
    CheckBox2: TCheckBox;
    Panel2: TPanel;
    StatusBar1: TStatusBar;
    procedure CheckBox1Click(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form6: TForm6;

implementation

{$R *.dfm}

procedure TForm6.CheckBox1Click(Sender: TObject);
begin
  Panel2.Enabled := not CheckBox1.Checked;
end;

procedure TForm6.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  PosPoint : TPoint;
  s : string;
begin
  PosPoint.X := x - Panel2.Left;
  PosPoint.Y := y - Panel2.Top;
  s := '';
  if Panel2.ControlAtPos( PosPoint, true, true ) <> nil then
    s := TControl( Panel2.ControlAtPos( PosPoint, true, true ) ).Name;
  StatusBar1.SimpleText := Format( 'Maus an Position %d:%d Control: %s', [ x, y, s ] );
end;

end.
Also im Prinzip werden die aktiven Elemente auf einem Panel plaziert. Dieses Panel wird im Hilfmodus deaktiviert.
Dann wird MouseDown abgefragt und die Klickposition im Panel bestimmt und das entsprechende Control gesucht.

Fertig.

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat