Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: VCL (C++ Builder) ::  FireMonkey 3D: Object per Mausklick identifizieren     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
~FireMonkey
Unregistrierter




Beitrag ~FireMonkey Unregistrierter 13:09:52 30.08.2012   Titel:   FireMonkey 3D: Object per Mausklick identifizieren            Zitieren

Hallo.

Ich habe ein Viewport3D mit ein paar TCube drin. Jetzt möchte ich gern ein TCube auswählen und dann über Steuerelemente bewegen. Aber wie wähle ich den TCube aus?

Der TCube selbst hat ein OnClick Ereignis, ich möchte aber viele dynamisch erstellen und dann per Viewport3D1MouseDown(..) den gewählten TCube erhalten.
Ich dachte das ginge so in der Art:

C++:
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Viewport3D1MouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, float X, float Y)
{
    IControl *object = ObjectAtPoint(ScreenToClient(PointF(X, Y)));
    if (object)
    {
        TFmxObject *element = object->GetObject();
        ShowMessage(element->Name);
    }
}


Funktioniert aber so nicht. Kann mir hier jemand weiterhelfen? ;)
Jansen
Moderator

Benutzerprofil
Anmeldungsdatum: 30.04.2001
Beiträge: 14626
Beitrag Jansen Moderator 16:45:12 30.08.2012   Titel:              Zitieren

In Sender steckt das das Ereignis auslösende Objekt, also einfach nach TViewport3D casten.

_________________
Jansen (Mod nur im BCB-Forum)
~FireMonkey
Unregistrierter




Beitrag ~FireMonkey Unregistrierter 18:00:10 30.08.2012   Titel:              Zitieren

Ich glaub nicht das dies so klappt. Das Ergebnis von diesem hier zeigt mir jedenfalls immer nur "Viewport3D1", egal wohin ich klicke. Wenn ich auf einen TCube klicke, sollte aber sowas wie "Cube13" kommen. Das meintest du doch so, oder?

C++:
void __fastcall TForm1::Viewport3D1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, float X, float Y)
{
    ShowMessage(((TViewport3D*)Sender)->Name);
    //ShowMessage(((TControl3D*)Sender)->Name);
}
~FireMonkey
Unregistrierter




Beitrag ~FireMonkey Unregistrierter 19:28:29 30.08.2012   Titel:              Zitieren

Wenn ich bei allen 3D Objekten OnClick auf "Viewport3D1Click" setze, dann kann ich in der Funktion Viewport3D1Click(TObject *Sender) den Sender abfragen, sprich die 3D Objekte wo ich OnClick gesetzt habe. Danke, das hilft so schon einmal weiter. ;)
c++.de :: VCL (C++ Builder) ::  FireMonkey 3D: Object per Mausklick identifizieren   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.