hey ich benutze folgenden Code (zumindest so ähnlich):
Code:
procedure TF_Main.bnAdd3DControlClick(Sender: TObject);
var
s: string;
C3D: TControl3D;
begin
if cb3DObjNames.ItemIndex <> -1 then begin
s := cb3DObjNames.Items[cb3DObjNames.ItemIndex];
if s = 'Sphere' then begin
C3D := TControl3D (TSphere.Create(Dummy1));
TSphere (C3D).SubdivisionsAxes := 50;
TSphere (C3D).SubdivisionsHeight := 50;
end;
if s = 'Cube' then begin
C3D := TControl3D (TCube.Create(Dummy1));
end;
if s = 'Cone' then begin
C3D := TControl3D (TCone.Create(Dummy1));
TCone (C3D).SubdivisionsAxes := 50;
TCone (C3D).SubdivisionsHeight := 50;
end;
C3D.Name := C3D.ClassName + Dummy1.ChildrenCount.ToString;
C3d.Parent := Dummy1;
C3D.Width := 2;
C3D.Height := 2;
C3D.Depth := 2;
C3d.Visible := True;
C3D.Position.X := -2;
// Set Eventhandlers to react on User-Actions
C3D.OnMouseDown := Control3DMouseDown;
C3D.OnMouseMove := Control3DMouseMove;
C3D.OnMouseUp := Control3DMouseUp;
// Add created 3D-Object to List, to select programaticaly at runtime or by user
cbCreated3DObjects.Items.AddObject(c3D.name, C3D);
C3d.BringToFront;
Viewport3D1.Repaint;
end;
end;
Meine Frage: ich möchte ein OnClick Ereignis haben. aber mit dem Dummy1.onclick funktioniert das nicht.. Ich möchte auf meine (z.B.) TSphere klicken können. Ideen?:/