AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Alle Namen der Controls in einem Fenster auflisten

Alle Namen der Controls in einem Fenster auflisten

Ein Thema von sminds · begonnen am 23. Jun 2006 · letzter Beitrag vom 23. Jun 2006
Antwort Antwort
sminds

Registriert seit: 16. Jun 2003
Ort: Südtirol
21 Beiträge
 
#1

Alle Namen der Controls in einem Fenster auflisten

  Alt 23. Jun 2006, 12:04
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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Alle Namen der Controls in einem Fenster auflisten

  Alt 23. Jun 2006, 14:00
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
  Mit Zitat antworten Zitat
sminds

Registriert seit: 16. Jun 2003
Ort: Südtirol
21 Beiträge
 
#3

Re: Alle Namen der Controls in einem Fenster auflisten

  Alt 23. Jun 2006, 14:07
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Alle Namen der Controls in einem Fenster auflisten

  Alt 23. Jun 2006, 14:09
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Alle Namen der Controls in einem Fenster auflisten

  Alt 23. Jun 2006, 14:12
Zu einem anderen Zweck in einem anderen Programm geschrieben, aber es könnte auch dir helfen:

Delphi-Quellcode:
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;
Mit dieser Routine suche ich alle Controls einer bestimmten Klasse (wahlweise rekursiv) und speichere ihren Namen und einen Zeiger in einer StringListe:

Delphi-Quellcode:
procedure TDemoForm.DemoButtonClick(Sender: TObject);
begin
  with ListBox do
  begin
    Items.Clear;
    FindControls(self, Items, TEdit, true);
  end;
end;
marabu
  Mit Zitat antworten Zitat
sminds

Registriert seit: 16. Jun 2003
Ort: Südtirol
21 Beiträge
 
#6

Re: Alle Namen der Controls in einem Fenster auflisten

  Alt 23. Jun 2006, 14:12
Super,
Danke für die Starthilfe.

mfg,
~sminds.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz