AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Namensgenerierung von Subkomponenten

Ein Thema von Neutral General · begonnen am 6. Nov 2009 · letzter Beitrag vom 8. Nov 2009
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Namensgenerierung von Subkomponenten

  Alt 6. Nov 2009, 21:21
Hi,

Ein etwas komischer Titel Ich baue gerade an einer Art PageControl für Arme.
Bin allerdings kein besonders erfahrener Komponentenentwickler...
Habs aber geschafft dass meine Pages jetzt erstellt werden. Allerdings ohne Name (zur Designtime etwas nervig).

Ich hätte halt auch dass diese Namen automatisch generiert werden. So wie "Tabsheet1", "Tabsheet2" etc.
Kriege es aber nicht hin. Bzw. ich könnte selbst mitzählen, aber ich habe im Hinterkopf, dass es irgendwie automatisch geht. Weiß allerdings nicht (mehr) wie..

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Namensgenerierung von Subkomponenten

  Alt 7. Nov 2009, 12:21
Tut mir Leid dass ich jetzt schon pushe, aber wenn ichs heute Abend um halb 10 mache, dann ist wieder keiner online

Hab mal ein Bild angehangen was mein Problem "in Aktion" zeigt. Die "Pages" meines "TPanelControl"s bekommen halt keinen Namen zugewiesen wenn ich sie zur Designtime hinzufüge...
Ich will prinzipiell ja sowas ähnliches wie ein PageControl bauen. Die Tabsheets sind in der Liste aber auch irgendwie so halb transparent dargestellt... Meine Pages nicht. Weiß nicht in wie weit das jetzt mit meinem Problem zusammen hängt. Ich hab mir schon den Code vom PageControl und vom Tabsheet angeguckt, aber konnte da keine nützlichen Infos rausziehen

Hier auch ein bisschen Code von mir, der evtl relevant sein könnte:

Delphi-Quellcode:
// Im Moment noch etwas chaotisch aufgrund von "Ausprobierphase"

constructor TPanelControl.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FIndex := -1;
  FPanels := TPanelSheetList.Create(false);
end;

procedure TPanelControl.AddPage;
var tmp: TPanelSheet;
      f: TCustomForm;
begin
  f := Owner as TCustomForm;

  if csDesigning in ComponentState then
    tmp := TPanelSheet.Create(f)
  else
    tmp := TPanelSheet.Create(Self);
  tmp.Parent := Self;

  if f.Designer <> nil then
    f.Designer.Modified;

  FPanels.Add(tmp);
  FIndex := FPanels.Count-1;
end;


{ TPanelSheet }

constructor TPanelSheet.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Align := alClient;
end;
Und dann ein KomponentenEditor für TPanelControl:

Delphi-Quellcode:
unit ComponentEditors;

interface

uses DesignIntf, DesignEditors,

     PanelControl;

type
  TPanelControlEditorPopup = class(TComponentEditor)
  public
    function GetVerbCount: Integer; override;
    function GetVerb(Index: Integer): string; override;
    procedure ExecuteVerb(Index: Integer); override;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponentEditor(TPanelControl, TPanelControlEditorPopup);
end;

{ TPanelControlEditorPopup }

procedure TPanelControlEditorPopup.ExecuteVerb(Index: Integer);
begin
  TPanelControl(Component).AddPage;
end;

function TPanelControlEditorPopup.GetVerb(Index: Integer): string;
begin
  Result := '&Add Page';
end;

function TPanelControlEditorPopup.GetVerbCount: Integer;
begin
  Result := 1;
end;

end.
Sowohl TPanelControl als auch TPanelSheet sind von TCustomPanel abgeleitet.

Wäre echt froh, wenn mir jemand helfen könnte

Gruß
Neutral General
Miniaturansicht angehängter Grafiken
problem_105.png  
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#3

Re: Namensgenerierung von Subkomponenten

  Alt 7. Nov 2009, 12:43
Zitat von Neutral General:
Ich baue gerade an einer Art PageControl für Arme.
Warum, die Version von Delphi ist doch für Arme und Reiche gleichermaßen.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Namensgenerierung von Subkomponenten

  Alt 7. Nov 2009, 12:47
Zitat von Daniel G:
Zitat von Neutral General:
Ich baue gerade an einer Art PageControl für Arme.
Warum, die Version von Delphi ist doch für Arme und Reiche gleichermaßen.
Ok, dann anders gesagt: TPageControl kann etwas nicht, was ich aber brauche. Von daher versuche ich mich an einer für mich "reicheren" Komponente, die allerdings weniger kann als TPageControl
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

Re: Namensgenerierung von Subkomponenten

  Alt 7. Nov 2009, 19:06
Wenn du im DesignEditor irgendwie an die erzeugte Page herankommst (z.B. indem AddPage die erzeugte Page zurückgibt), kannst du ihm auch einen Namen geben:

Delphi-Quellcode:
procedure TPanelControlEditorPopup.ExecuteVerb(Index: Integer);
var
  newPage: TPanelSheet;
begin
  newPage := TPanelControl(Component).AddPage;
  newPage.Name := Designer.UniqueName('PanelSheet');
end;
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Namensgenerierung von Subkomponenten

  Alt 8. Nov 2009, 02:42
Zitat von Uwe Raabe:
Wenn du im DesignEditor irgendwie an die erzeugte Page herankommst (z.B. indem AddPage die erzeugte Page zurückgibt), kannst du ihm auch einen Namen geben:

Delphi-Quellcode:
procedure TPanelControlEditorPopup.ExecuteVerb(Index: Integer);
var
  newPage: TPanelSheet;
begin
  newPage := TPanelControl(Component).AddPage;
  newPage.Name := Designer.UniqueName('PanelSheet');
end;
Danke! Genau das habe ich gesucht
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  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 14:00 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