AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi (GLScene)zur Laufzeit erstellte FreeForm Objekte zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

(GLScene)zur Laufzeit erstellte FreeForm Objekte zugreifen

Ein Thema von terry43 · begonnen am 19. Nov 2005 · letzter Beitrag vom 9. Feb 2007
Antwort Antwort
terry43

Registriert seit: 19. Nov 2005
5 Beiträge
 
Delphi 5 Enterprise
 
#1

(GLScene)zur Laufzeit erstellte FreeForm Objekte zugreifen

  Alt 19. Nov 2005, 20:16
Hallo hier ist Terry,
wenn mir bei meinem Problem jemand helfen könnte wäre ich sehr dankbar.
Ich programmiere einen Viewer mit Glscene (OpenGL).
Mir gelingt es nicht auf zur Laufzeit erzeugte FreeForm Objekte zuzugreifen. Dies
ist erforderlich um eine Datei zu erzeugen in der diverse Scenen Informationen gespeichert werden können.

FreeForm.Parent:=Self; funktioniert nicht.
das weitere tüfteln brachte auch nichts.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
begin
  TFreeForm.Create(Self).Name := 'FreeForm';
  FreeForm:=TFreeForm(DummyCube1.AddNewChild(TFreeForm));
  FreeForm.Name := 'FreeForm';
  FreeForm.LoadFromFile('..\..\media\mushroom.3ds');
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  (FindComponent('FreeFormas TFreeForm).position.x:=2;
end;
end;
[edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Auf alle zur Laufzeit erstellten FreeForm Objekte zugrei

  Alt 19. Nov 2005, 20:21
Hallo!

Les dir mal das hier durch: http://www.dsdt.info/grundlagen/sprache/oo.php. Da sind nämlich einige Fehler drinnen.

Was ist denn TFreeForm eigentlich?
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: (GLScene)zur Laufzeit erstellte FreeForm Objekte zugreif

  Alt 19. Nov 2005, 22:37
Hi,
da sind dir wohl echt ein paar Fehler zwischen gekommen. Bei der aktuellen Version von GLScene heißt die Klasse eigentlich TGLFreeForm. Mit z.B. folgendem Code solltest du das hinbekommen

Delphi-Quellcode:
var GLFreeForm : TGLFreeForm;
begin
  GLFreeForm := TGLFreeForm.Create(self.GLScene1);
  self.GLScene1.Objects.AddChild(GLFreeForm);
  GLFreeForm.Position.X := ....
end;
Und wenn du das Objekt suchst, ist der Name sicherlich nicht das Richtige, immerhin könntest du annonym so einige GLFreeForms einfügen. Wenn du jedenfalls nach einem FreeForm suchst, solltest du lieber die GLScene bemühen, in die du das Objekt eingefügt hast. Oder in deinem Fall, wenn du eh ein DummyCube mitbenutzt und der global (also z.B. schon zur Designzeit) gespeichert ist, kannst du auch direkt seine Childs durchgehen

Also entweder

Delphi-Quellcode:
  self.GLScene1.Objects.FindChild(ChildName : String, OnlyOwnChilds : Boolean); // bzw.
  self.GLDummyCube1.Objects.FindChild(ChildName : String, OnlyOwnChilds : Boolean)

oder

  for i := 0 to self.GLDummyCube1.Count - 1 do
    if (self.GLDummyCube1.Children[i] is TGLFreeForm) then
      ....
  Mit Zitat antworten Zitat
terry43

Registriert seit: 19. Nov 2005
5 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: (GLScene)zur Laufzeit erstellte FreeForm Objekte zugreif

  Alt 19. Nov 2005, 22:59
Hallo Wissender,

bin begeistert das eine wie das andere funktioniert,

wünsche noch eine gute Nacht.

Terry aus Berlin
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#5

Re: (GLScene)zur Laufzeit erstellte FreeForm Objekte zugreif

  Alt 19. Nov 2005, 23:05
Ja, leider ist GLScene (mag es echt gerne) schlecht Dokumentiert. Aber wenn du genug damit machst, findest du dich auch irgendwann ganz gut darin zurecht.
Freut mich jedenfalls, dass ich helfen konnte (und bleibe Unwissend )

Dir auch ne gute Nacht,
Der Unwissende aus Berlin
  Mit Zitat antworten Zitat
Ironmaster

Registriert seit: 19. Mai 2006
70 Beiträge
 
Delphi 7 Personal
 
#6

Re: (GLScene)zur Laufzeit erstellte FreeForm Objekte zugreif

  Alt 9. Feb 2007, 13:52
hallo,
ich hatte das gleiche problem wie terry, welches ich nach diesen anweisungen lösen konnte. aber ein problem hab ich noch: ich möchte in die FreeForm natürlich ein Modell einfügen (.3ds) über

FreeForm.LoadFromFile('Pfad'); in anderen programmen die ich erstellt hab, funktioniert das wunderbar, aber nich wenn ich zur laufzeit die FreeForm erstelle. hab ich irgendwas vergessen?

danke schon mal
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#7

Re: (GLScene)zur Laufzeit erstellte FreeForm Objekte zugreif

  Alt 9. Feb 2007, 14:22
hier kannst du Zum Beispiel sehen wie bei GLScene Objekte erzeugt werden:
MyFreeFormReferenz:= TGLFreeForm(GLScene1.Objects.AddNewChild(TGLFreeForm));
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  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 08:35 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