AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Notification, falls Komponente nicht mehr sichtbar

Ein Thema von hellion · begonnen am 16. Okt 2018 · letzter Beitrag vom 16. Okt 2018
Antwort Antwort
ghubi01

Registriert seit: 18. Nov 2017
136 Beiträge
 
Delphi 12 Athens
 
#1

AW: Notification, falls Komponente nicht mehr sichtbar

  Alt 16. Okt 2018, 14:29
Hallo hellion,

vielleicht hilft Dir folgende Funktion etwas weiter:
Delphi-Quellcode:
var
  cbxBool: Boolean;
  ...
  begin
    cbxBool:=IsWindowVisible(CheckBox1.Handle);
  ...
  end;
Wenn CheckBox1.Visible True und die GroupBox1.Visible False ist, und somit Beides unsichtbar,
dann gibt IsWindowVisible False zurück.
  Mit Zitat antworten Zitat
hellion

Registriert seit: 10. Jun 2010
4 Beiträge
 
#2

AW: Notification, falls Komponente nicht mehr sichtbar

  Alt 16. Okt 2018, 14:42
Hallo ghubi01,

Ja, das kann ich schon so machen, aber halt nur von extern. Also kann ich es z.B. in der TForm-Instanz machen.
Was ich aber brauche, ist ein Event innerhalb meiner TComboBox-Klasse "Parent.Visible wurde geändert" (PARENTVISIBLECHANGED), quasi eine analoge Message zu z.B. CM_PARENTFONTCHANGED oder CM_PARENTCOLORCHANGED.
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
136 Beiträge
 
Delphi 12 Athens
 
#3

AW: Notification, falls Komponente nicht mehr sichtbar

  Alt 16. Okt 2018, 15:01
Hallo hellion,

ich hab hierhttps://www.delphipraxis.net/96445-a...reagieren.html im Forum noch etwas gefunden das Dir weiterhelfen könnte.

Mit den gezeigten Beispielen könnte man auf Änderungen von Visible der GroupBox reagieren und ggf. ein Property in der untergeordneten Checkbox einfügen und setzen.
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
136 Beiträge
 
Delphi 12 Athens
 
#4

AW: Notification, falls Komponente nicht mehr sichtbar

  Alt 16. Okt 2018, 20:59
Hallo hellion,

hier hätte ich noch eine Idee:
Delphi-Quellcode:
const
  MY_MSG = WM_USER + 1;

type
  TCheckBox = class(Vcl.StdCtrls.TCheckBox)
  private
    FParantVisible: Boolean;
  protected
    procedure ParentMsg(var Msg: TMessage); Message MY_MSG;
  public
    property ParantVisible: Boolean read FParantVisible;
  end;

  TComboBox = class(Vcl.StdCtrls.TComboBox)
  private
    FParantVisible: Boolean;
  protected
    procedure ParentMsg(var Msg: TMessage); Message MY_MSG;
  public
    property ParantVisible: Boolean read FParantVisible;
  end;

  ...

procedure TCheckBox.ParentMsg(var Msg: TMessage);
begin
  FParantVisible:=Boolean(Msg.WParam);
end;

procedure TComboBox.ParentMsg(var Msg: TMessage);
begin
  FParantVisible:=Boolean(Msg.WParam);
end;

  ...

procedure TForm2.TestClick(Sender: TObject);
var
  MyMsg: TMessage;
begin
  //Nach jedem Visible-Wechsel eine Botschaft an Alle senden
  GroupBox1.Visible:=not GroupBox1.Visible;
  MyMsg.Msg:=MY_MSG;
  MyMsg.WParam:=integer(GroupBox1.Visible);
  MyMsg.LParam:=0;
  MyMsg.Result:=0;

  GroupBox1.Broadcast(MyMsg); // Die Message geht an alle Controls der GroupBox1
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz