AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Captions aller Komponenten in ein Memo-Feld schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Captions aller Komponenten in ein Memo-Feld schreiben

Ein Thema von Primus · begonnen am 30. Dez 2002 · letzter Beitrag vom 1. Jan 2003
Antwort Antwort
Primus

Registriert seit: 16. Sep 2002
Ort: Werneuchen
32 Beiträge
 
#1

Captions aller Komponenten in ein Memo-Feld schreiben

  Alt 30. Dez 2002, 12:25
Hallo,

ich suche nach einer Möglichkeit alle Captions der Komponenten in
meiner Form in ein Memo-Feld zu schreiben. Aber Irgendwie bekomme ich
das nicht hin.

Folgendes habe ich schon versucht:

Delphi-Quellcode:
var
  i: integer;
  PropInfo: PPropInfo;
  Component: TComponent;
begin
  for i := 0 to ComponentCount - 1 do
  begin
    Component := Components[i];
      PropInfo := GetPropInfo(Component.ClassInfo, 'Caption');
  end;
end;
Danke schon mal,

Primus
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 30. Dez 2002, 12:28
SourceCode ungetestet, dürfte aber funktionieren:
Delphi-Quellcode:
var
  i: integer;
begin
  for i := 0 to Form1.ComponentCount do begin
    Memo1.Lines.Add( Form1.Components[i].Caption );
  end;
end;
Chris
  Mit Zitat antworten Zitat
Primus

Registriert seit: 16. Sep 2002
Ort: Werneuchen
32 Beiträge
 
#3
  Alt 30. Dez 2002, 12:34
Leider funktioniert das nicht, da es kein Form1.Components[i].Caption gibt.

Gruss,

Primus
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#4
  Alt 30. Dez 2002, 12:50
Dann eben so:

Delphi-Quellcode:
var
  i: integer;
begin
  for i:=0 to Form1.ComponentCount do begin
    if (Form1.Components[i] is TControl) then
      Memo1.Lines.Add( (Form1.Components[i] as TControl).Caption );
  end;
end;
Wusste gerade nicht, ob Caption von TControl oder von TComponent kommt...

Chris
  Mit Zitat antworten Zitat
Primus

Registriert seit: 16. Sep 2002
Ort: Werneuchen
32 Beiträge
 
#5
  Alt 1. Jan 2003, 15:27
Hallo Chris,

entweder stelle ich mich zu dusslig an, oder mein Delphi will
mich ärgern.

Auch der Code funktioniert nicht, Delphi meldet unbekannte Funktion Caption.

Hast Du noch eine andere Idee?

Ach so gesundes neues Jahr wünsche ich.

Primus
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6
  Alt 1. Jan 2003, 15:38
TControl hat zwar die Eigenschaft Caption, nur ist sie protected. Aus diesem Grund kann auch die RTTI nicht genutzt werden, weil diese nur für published Eigenschaften funktioniert (bei entsprechendem Compilerschalter).

Delphi-Quellcode:
type
  TControlHack = class(TControl);
...
var
  i: integer;
begin
  for i := 0 to Form1.ComponentCount - 1 do
    if (Form1.Components[i] is TControl) then
      Memo1.Lines.Add(TControlHack(Form1.Components[i]).Caption);
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 11:35 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