| Autor |
Nachricht |
~FireMonkey
Unregistrierter
|
~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
|
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
|
~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
|
~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. |
|
|
|
 |
|
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.
|
|
|
|
|