AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Kann man die plazierten Komponenten in einer Liste darstellen?
Thema durchsuchen
Ansicht
Themen-Optionen

Kann man die plazierten Komponenten in einer Liste darstellen?

Ein Thema von LingNeu · begonnen am 9. Sep 2015 · letzter Beitrag vom 9. Sep 2015
Antwort Antwort
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#1

Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 08:04
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 ...

 
Objektname_____Komponente
e_AB___________Tedit
e_AC___________Tedit
p_AP___________TPanel
b_Off___________TButton

Für jede Anregung bin ich dankbar!
Gruß Lingneu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 08:26
Ja, alle Komponenten kann man mit Komp.Components[] rekursiv auslesen.
Markus Kinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 08:30
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.
Edit1 -> TEdit
Button1 -> TButton
Button2 -> TButton
dbg -> TDBGrid
stb -> TStatusBar
dbn -> TDBNavigator
meListe -> TMemo
ActionList -> TActionList
acListe -> TAction
acEnde -> TAction
con -> TADOConnection
qry -> TADOQuery

Geändert von nahpets (21. Nov 2017 um 16:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 08:38
Eine sprechendere Namensgebung wäre auf jeden Fall angebracht (hatten wir schon mindestens einmal als Thema).

Ich bin ein Verfechter von
Delphi-Quellcode:
CustomerNameEdit: TEdit;
CustomerActiveCheckBox: TCheckBox;
CustomerAddressCityEdit: TEdit;
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:
Delphi-Quellcode:
// ohne Frames
CustomerAddressCityEdit.Text := '...';
// mit Frames
Customer // CustomerFrame
  .Address // AddressFrame
    .CityEdit.Text := '...';
Ein weiterer Vorteil ist bei der Codevervollständigung. Tippe ich Customer bekomme ich automatisch alles vorgeschlagen, was mit Customer beginnt. Sehr praktisch.

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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 08:44
@Sir Rufo:

Du hättest dann vermutlich lieber sowas, wie in der Anlage?

(gerade erstellt aus der laufenden Entwicklungsumgebung von Delphi 7)

Geändert von nahpets (21. Nov 2017 um 16:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 08:53
@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 CustomerAddressCityEdit brauche ich mir nur noch zu überlegen, wie ich die Daten dort rein und raus bekomme. Edit1 oder e_CAC sind da die totalen Denkbremsen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 08:57
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
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 09:05
@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 CustomerAddressCityEdit brauche ich mir nur noch zu überlegen, wie ich die Daten dort rein und raus bekomme. Edit1 oder e_CAC sind da die totalen Denkbremsen.
Sorry, aber Edit1 war in das Beispielprogrämmelchen, das ich da gerade zusammengedaddelt habe, nur einfach draufgepappt. Natürlich bekommen Komponenten bei mir sinnvolle Namen, so dass ich weiß, welchen Type sie haben und vor allem, wofür sie genutzt werden. Auch wenn es jetzt Widersprüche geben wird: Der Ansatz der ungarischen Notation ist da zuweilen schon hilfreich.

Und letztlich nutzt Du ja (ausgehend von Deiner Beschreibung) eine "prosaische" Weiterentwicklung dieses Grundgedanken.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 09:26
das mit der HTML Seite finde ich auch genial - wie macht man sowas?
Die HTML-Seite stammt aus einer Komponente, die ich im Laufe der Jahre mal entwickelt habe, um aus meinen Programmen zur Laufzeit ein Grundgerüst für die kontextsensitive Hilfe zu erstellen.

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.
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Kann man die plazierten Komponenten in einer Liste darstellen?

  Alt 9. Sep 2015, 09:51
@nahpets,
danke für die Info!
RESPEKT!
Viele Grüße LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  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 05:02 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