![]() |
Kann man die plazierten Komponenten in einer Liste darstellen?
Hallo Delphifans,
gibt es ein Tool oder eine Möglichkeit die verwendeten Komponenten auf einer angezeigten Form mit ihren Namen/Komponentennamen in einer Tabelle darzustellen Das wäre insofern eine feine Sache, da man dann eine Übersicht der verwendeten Namen hätte. Auch für eine Dokumentation wäre das nicht schlecht und man könnte sich selbst besser kontrollieren. Natürlich kann man sich sowas per Hand aus dem Quelltext zusammensuchen, aber man ist ja um jede Erleichterung froh. Die Struktur wie u.a. wäre schon hilfreich ...
Für jede Anregung bin ich dankbar! Gruß Lingneu |
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
Ja, alle Komponenten kann man mit Komp.Components[] rekursiv auslesen.
|
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
Suchst Du sowas?
Delphi-Quellcode:
unit KomponentenListeUnit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, DBCtrls, ComCtrls, Grids, DBGrids, DB, ADODB, ActnList, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Button2: TButton; ActionList: TActionList; acListe: TAction; acEnde: TAction; con: TADOConnection; qry: TADOQuery; dbg: TDBGrid; stb: TStatusBar; dbn: TDBNavigator; meListe: TMemo; procedure acListeExecute(Sender: TObject); procedure acEndeExecute(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.acListeExecute(Sender: TObject); var i : Integer; begin meListe.Lines.Clear; for i := 0 to Self.ComponentCount - 1 do Begin meListe.Lines.Add(Format('%s -> %s',[Self.Components[i].Name,Self.Components[i].ClassName])); end; end; procedure TForm1.acEndeExecute(Sender: TObject); begin Close; end; end.
|
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
Eine sprechendere Namensgebung wäre auf jeden Fall angebracht (hatten wir schon mindestens einmal als Thema).
Ich bin ein Verfechter von
Delphi-Quellcode:
aus dem ganz einfachen Grund, dass bei zu vielen Controls auf einer Form es Sinn macht, diese in einem Frame unterzubringen und dann ist der Zugriff im Prinzip gleich:
CustomerNameEdit: TEdit;
CustomerActiveCheckBox: TCheckBox; CustomerAddressCityEdit: TEdit;
Delphi-Quellcode:
Ein weiterer Vorteil ist bei der Codevervollständigung. Tippe ich
// ohne Frames
CustomerAddressCityEdit.Text := '...'; // mit Frames Customer // CustomerFrame .Address // AddressFrame .CityEdit.Text := '...';
Delphi-Quellcode:
bekomme ich automatisch alles vorgeschlagen, was mit Customer beginnt. Sehr praktisch.
Customer
Eine alphabetische Sortierung nach den Namen ergibt dann auch einen sehr guten Überblick. Nur diese Tabelle bringt nicht viel, wenn die Namen nicht aussagekräftig sind. |
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
@Sir Rufo:
Du hättest dann vermutlich lieber sowas, wie in der Anlage? (gerade erstellt aus der laufenden Entwicklungsumgebung von Delphi 7) |
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
@nahpets
Ohne mir den Anhang angesehen zu haben, ich habe am liebsten immer das, wo ich mir die wenigsten Gedanken machen muss, dann bleibt immer Platz und Zeit für neue Gedanken ;) Bei
Delphi-Quellcode:
brauche ich mir nur noch zu überlegen, wie ich die Daten dort rein und raus bekomme.
CustomerAddressCityEdit
Delphi-Quellcode:
oder
Edit1
Delphi-Quellcode:
sind da die totalen Denkbremsen.
e_CAC
|
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
hallo zusammen,
herzlichen DAnk für die vielen, konstruktiven Antworten! @mkinzler - merci für den hinweis! @nahpets - dein Code reicht mir momentan voll aus das mit der HTML Seite finde ich auch genial - wie macht man sowas? @sir rufo - guter Tipp mit der Namensvergabe! grüße vom LingNeu |
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
Zitat:
Und letztlich nutzt Du ja (ausgehend von Deiner Beschreibung) eine "prosaische" Weiterentwicklung dieses Grundgedanken. |
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
Zitat:
Wesentliche Hilfe liefert dabei die TypInfo von Delphi. Zu den dort enthaltenen Routinen baut man sich ein paar Funktionen und Prozeduren, die die Informationen mit HTML-Tags versehen, sammle das alles in einer Stringliste und speichere es ab. Ok - hat mich schon ein paar Jährchen an immerwiederweiterentwickeln gekostet, aber alles wesentliche ist mit Hausmitteln von Delphi zu erledigen. |
AW: Kann man die plazierten Komponenten in einer Liste darstellen?
@nahpets,
danke für die Info! RESPEKT!8-) Viele Grüße LingNeu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 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