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
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."