AGB  ·  Datenschutz  ·  Impressum  







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

Objekterstellung zur Laufzeit

Ein Thema von haentschman · begonnen am 6. Jan 2008 · letzter Beitrag vom 8. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#1

Objekterstellung zur Laufzeit

  Alt 6. Jan 2008, 22:30
...Guten Abend

ich benutze die Komponente XPMenu.
- da bekanntlicherweise D2005-D2007 einfriert, wenn man das Editorfenster schließt und man die Komponente auf der Form hat
( kein Scherz.. gibt es sogar Info hier im Forum ) muß es zur Laufzeit eingebunden werden.

...soweit auch kein Problem.
Delphi-Quellcode:
XPMenu1:= TXPMenu.Create(FMain);
XPMenu1.UseSystemColors:= False;
XPMenu1.UseDimColor:= True;
XPMenu1.IconBackColor:= clMaroon;
XPMenu1.Gradient:= True;
XPMenu1.SelectColor:= clMaroon;
XPMenu1.SelectBorderColor:= clMaroon;
XPMenu1.XPContainers:= [xccForm, xccPanel];
XPMenu1.XPControls:= [xcMainMenu,xcPopupMenu];
XPMenu1.AutoDetect:= True;
XPMenu1.Active:= True;
...allerdings nur für FMain.
...wie kann ich das auf alle Formulare erweitern ?
...oder muß ich für jede Form eine Instanz erstellen und am Ende wieder freigeben ?

PS: an die Hilfe von D2007 muß ich mich erst gewöhnen...

Danke...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Objekterstellung zur Laufzeit

  Alt 6. Jan 2008, 22:38
Zitat von haentschman:
...allerdings nur für FMain.
Kein Wunder wenn du FMain im Konstruktor angiebst.
Zitat von haentschman:
...wie kann ich das auf alle Formulare erweitern ?
Einfach die passende Formularinstanz angeben. Evtl. gleich 'ne Funktion mit übergabeparameter machen oder einen Basisklasse von TForm ableiten
Zitat von haentschman:
... und am Ende wieder freigeben ?
Das macht die realisierte Owner-Pattern von Delphi schon ganz alleine wenn du ein von TComponent abgeleitete Komponente beim Konstruktor einen Parent angiebst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#3

Re: Objekterstellung zur Laufzeit

  Alt 6. Jan 2008, 22:51
Danke für die schnelle Reaktion...

...das das mit dem FMain zusammenhängt war mir klar. Das Create verlangt AOwner: TComponent

Zitat:
passende Formularinstanz
habe schon die Klasse versucht (TForm)...

Zitat:
[DCC Fehler] Main.pas(164): E2010 Inkompatible Typen: 'TComponent' und 'Class reference'
...FMain ist das Hauptformular
...alle anderen werden von dort Modal geöffnet.

PS: die Hilfe zu Formularinstanzen bezieht sich nur auf dynamische Erzeugung von Formularen

...für Euch ist das einfach... ich habe da noch Defizite
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#4

Re: Objekterstellung zur Laufzeit

  Alt 7. Jan 2008, 18:45
... kann mich bitte jemand in die Richtung schubsen...
... das mit der Formularinstanz verstehe ich nicht
... ich steh auf dem Schlauch

Danke...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Objekterstellung zur Laufzeit

  Alt 7. Jan 2008, 18:48
XPMenu1:= TXPMenu.Create(<Formularinstanz>);
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#6

Re: Objekterstellung zur Laufzeit

  Alt 7. Jan 2008, 19:08
... ja und das verstehe ich nicht.

was ist die Formularinstanz aller Formulare ?
TForm ist ja nur die übergeordnete Klasse...

...das ist warscheinlich so einfach

gibt es überhaupt eine übrgeordnete Formularinstanz für alle ?
sollte ich für jedes FormularXPMenu1:= TXPMenu.Create(FormularName);schreiben
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Objekterstellung zur Laufzeit

  Alt 7. Jan 2008, 19:12
Grundlagen OOP:

TForm1: Klasse

Von dieser Klasse kann man mehrere Instanzen erzeugen.

Standardmässig heißt die Instanz, die automatisch vom Formulardesigner erzeugt wird wie die Klasse ohne das T; also TForm1 -> Form1

Also kann es keine Formularinstanz aller Formulare geben.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#8

Re: Objekterstellung zur Laufzeit

  Alt 7. Jan 2008, 19:18
Zitat:
Grundlagen OOP:
..ich weiß learning by doing...

...also für jedes Formular eine Intanz von XPMeu erzeugen...

Danke...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Objekterstellung zur Laufzeit

  Alt 7. Jan 2008, 19:20
Oder eine eigene Basisklasse/Class-Helper für TForm schreiben, in der die Erzeugung des Menüs erfolgt.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Objekterstellung zur Laufzeit

  Alt 8. Jan 2008, 08:41
Dumme Frage:
Warum benutzt Du das XPMenu mit D2007?

Meines Wissens nach braucht man das nicht mehr, weil D2007 Menus im XP-Style erstellt.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:56 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