Einzelnen Beitrag anzeigen

Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#18

AW: iCL Slide-out Sidebar Menu

  Alt 1. Dez 2013, 00:14
Und die Lösung lautet:
Delphi-Quellcode:
procedure TF_MainiOS.SelectItem(var ATableView: TTMSFMXNativeUITableView; AIndex: Integer);
var idx: FMX.TMSNativeUICore.NSIndexPath;
    vwMaster: UIView;
    s, r: Integer;
    dt, idt: TTMSFMXNativeUIBaseControl;
    rs: NSRect;
    n: Integer;
    currentView: UIView;
begin
 idx := FMX.TMSNativeUICore.TNSIndexPath.Wrap(FMX.TMSNativeUICore.TNSIndexPath.OCClass.indexPathForRow(AIndex, 0));
 ATableView.TableView.selectRowAtIndexPath(iOSApi.Foundation.NSIndexPath(idx), False, UITableViewScrollPositionTop);

 if not Assigned(ATableView) then
   Exit;

 s:= Integer(idx.section);
 r:= Integer(idx.row);

 idt:= ATableView.GetItem(s,r).SubDetailView;
 dt:= ATableView.GetItem(s,r).DetailView;

 {if Assigned(currentView) then
   currentView.removeFromSuperView;}


 vwMaster := ATableView.DetailView.GetView;
 if Assigned(vwMaster) then
 begin
  for n:= 0 to dt.ChildrenCount - 1 do
  begin
   if dt.Children[n] is TTMSFMXNativeUIBaseControl then
   begin
     (dt.Children[n] as TTMSFMXNativeUIBaseControl).Visible := True;
     (dt.Children[n] as TTMSFMXNativeUIBaseControl).Initialize;
   end;
  end;

  currentView:= dt.GetView;
  if Assigned(currentView) then
  begin
   rs.origin.x := dt.Position.X;
   rs.origin.y := dt.Position.Y;
   rs.size.width := dt.Width;
   rs.size.height := dt.Height;

   currentView.sethidden(false);
   vwMaster.addSubview(currentView);
   currentView.setFrame(rs);
  end;
 end;

 ATableView.OnItemSelect(ATableView, 0, AIndex);
end;
Es funktioniert, wenn ich diese Funktion z.B. im Event eines Buttons aufrufe.
Im OnFormCreate hat es keine Auswirkung, warum?
  Mit Zitat antworten Zitat