![]() |
Alle Namen der Controls in einem Fenster auflisten
Hallo,
ich möchte ein Berechtigungssystem schreiben, daß mir alle Controls eines Fensters ermittelt, die ich dann in eine Datenbank schreibe und dann für jeden einzelnen Benutzer sagen kann, welches Control er sehen, ändern usw. darf. Habe im Forum gelesen, daß es anscheinend mit EnumChildWindows möglich ist. Werde da aber nicht ganz schlau und wäre für eine zus. Info sehr dankbar. Vielen Dank, sminds. |
Re: Alle Namen der Controls in einem Fenster auflisten
Hallo.
Geht es dir um Fenster von frenden Anwendungen? Arbeitest du ohne VCL-Komponenten? Bei VCL-Komponenten findest du alle Controls in der entsprechenden property deiner Form, wobei du rekursiv suchen musst. Grüße vom marabu |
Re: Alle Namen der Controls in einem Fenster auflisten
Ich meine die eigene Anwendung und ich arbeite mit VCL-Komponenten.
Kannst Du mir ein paar Zeilen Code posten, wie diese Eigenschaft heißt. Vielen Dank für die Infos. MfG, ~sminds |
Re: Alle Namen der Controls in einem Fenster auflisten
Wenn es um die eigene Anwendung geht ist es einfacher. Mit "DeinFrom.Controls[i]" und "DeinForm.ControlCount" kannst du alle Controls durchlaufen. Ist eines der Controls vom Typ TWinControl gehst du davon auch wieder rekursiv alles durch.
|
Re: Alle Namen der Controls in einem Fenster auflisten
Zu einem anderen Zweck in einem anderen Programm geschrieben, aber es könnte auch dir helfen:
Delphi-Quellcode:
Mit dieser Routine suche ich alle Controls einer bestimmten Klasse (wahlweise rekursiv) und speichere ihren Namen und einen Zeiger in einer StringListe:
procedure FindControls(wc: TWinControl; s: TStrings; c: TClass; recurse: Boolean = False);
var i: Integer; cc: TWinControl; begin for i := 0 to Pred(wc.ControlCount) do begin cc := wc.Controls[i] as TWinControl; if cc is c then s.AddObject(cc.Name, cc); if recurse and (cc.ControlCount > 0) then FindControls(cc, s, c, recurse); end; end;
Delphi-Quellcode:
marabu
procedure TDemoForm.DemoButtonClick(Sender: TObject);
begin with ListBox do begin Items.Clear; FindControls(self, Items, TEdit, true); end; end; |
Re: Alle Namen der Controls in einem Fenster auflisten
Super,
Danke für die Starthilfe. mfg, ~sminds. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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 by Thomas Breitkreuz