런타임에 ActionBar를 재귀 적으로 생성하는 방법은 무엇입니까?

워렌 P

큰 레거시 응용 프로그램의 TMainMenu계층 구조를 TActionMainMenuBar항목에 매핑하는 클래스를 작성 중입니다 .

Steve Trevethen의 EDN CodeCentralC 기사에서 많이 차용 한 가장 중요한 방법은 다음과 같습니다. 길이에 대해 사과드립니다. 그러나 이것은 아마도이 경우에 의미있게 보여줄 수있는 코드의 가장 짧은 길이 일 것입니다.

procedure TMainMenuSkin.DoLoadMenu(
    ActionList: TCustomActionList;
    Clients: TActionClients;
    AMenu: TMenuItem;
    SetActionList: Boolean = True;
    bRecurseFlag:Boolean = False);
var
  I: Integer;
  J: Integer;
  AC: TActionClientItem;
  ca : TCustomAction;
  newAction : TSkinnedMenuAction;
  aci:TActionClientItem;
  submenuitem : TMEnuItem;

  procedure PopulateNodeFromMenuItem(menuitem:TMenuItem);
  begin
        newAction := TSkinnedMenuAction.Create(Application.MainForm);
        menuitem.FreeNotification(newAction);
        newAction.FMenuItem := menuitem;
        newAction.Name := 'action_'+newAction.FMenuItem.Name;
        FNewMenuActions.Add(newAction);
        newAction.ActionList := ActionManager;
        newAction.Tag := menuitem.Tag;
        ca := newAction;
        ca.ImageIndex  := menuitem.ImageIndex;
        ca.HelpContext := menuitem.HelpContext;
        ca.Visible     := menuitem.Visible;
        ca.Checked     := menuitem.Checked;
        ca.Caption     := menuitem.Caption;
        ca.ShortCut    := menuitem.ShortCut;
        ca.Enabled     := menuitem.Enabled;
        ca.AutoCheck   := menuitem.AutoCheck;
        ca.Checked     := menuitem.Checked;
        ca.GroupIndex  := menuitem.GroupIndex;
        AC.ImageIndex  := menuitem.ImageIndex;
        AC.ShortCut := menuitem.ShortCut;
        AC.Action := newAction;
  end;
begin
  if not Assigned(AMenu) then
      exit;
  AMenu.RethinkHotkeys;
  AMenu.RethinkLines;
  Clients.AutoHotKeys := False;
  for I := 0 to AMenu.Count - 1 do
  begin
    AC := Clients.Add;
    AC.Caption := AMenu.Items[I].Caption;
    // Assign the Tag property to the TMenuItem for reference
    AC.Tag := Integer(AMenu.Items[I]);
    AC.Action := TContainedAction(AMenu.Items[I].Action);
    AC.Visible := AMenu.Items[I].Visible;
    // original sample code only created placeholders for submenus. I want to populate 
    // fully because I need the actions and their keyboard shortcuts to exist.
    submenuitem := AMenu.Items[I];
    if submenuitem.Count > 0 then
    begin
      if not bRecurseFlag then
          AC.Items.Add  // old busted way to work
      else
      begin
          // How do I recursively populate the Action Clients menu?
         DoLoadMenu(ActionList,  AC.ActionClients, submenuitem, true);
      end;
    end
    else
      if ((AMenu.Items[I].Caption <> '') and (AMenu.Items[I].Action = nil) and
          (AMenu.Items[I].Caption <> '-')) then
      begin
          PopulateNodeFromMenuItem( AMenu.Items[I] );
      end;
    AC.Caption := AMenu.Items[I].Caption;
    AC.ImageIndex := AMenu.Items[I].ImageIndex;
    AC.HelpContext := AMenu.Items[I].HelpContext;
    AC.ShortCut := AMenu.Items[I].ShortCut;
    AC.Visible := AMenu.Items[I].Visible;
  end;
end;

위의 가장 중요한 줄은이 줄이며 또한 잘못된 줄입니다.

DoLoadMenu(ActionList,  AC.ActionClients, submenuitem, true);

코드가 이렇게 작성되면 모든 메뉴 항목이 평면화 된 형태로 표시됩니다. 그래서 나는 AC.GetMeSubItems.ActionClients위의 줄 과 같은 것이 필요 하지만 그것이 무엇인지 알 수 없습니다. AC유형 TActionClientItem이며 런타임에 생성되는 도구 모음 버튼 자체입니다.

내 인생에서 알아낼 수없는 것은 Actions 목록과 메뉴 항목을 한 번에 모두 채워야하는 경우 재귀 적으로 어떻게해야한다는 것입니다. 아마도 여기에서 시작한 샘플 코드에 의해 제 생각이 제한 될 것입니다. 이 작업을 수행하는 방법을 모르는 코드 한 줄인 것 같습니다.

나는 여기서 내가 엉망으로 만드는 다양한 클래스의 복잡한 계층 적 관계를 잘 이해하지 못하고 있다고 느낍니다.

업데이트 : 다음 SEEMS가 작동하지만 내 자신을 신뢰하지 않습니다.

  aci := AC.Items.Add;
  DoLoadMenu(ActionList,  aci.Items, submenuitem, true);

여기에 이미지 설명 입력

wp_1233996

다음은 내가 어딘가에서 작성하거나 찾은 코드이며 달성하려는 작업을 수행하는 것 같습니다. Mainmenu의 항목을 ActionMainMenubar에 복사하는 변환기 클래스입니다. 몇 가지 문제가 있지만 작동 방식을 파악할 수 있기를 바랍니다.

구성 요소는 양식에 완료된 MainMenu가 있다고 가정합니다. 또한 TActionManager와 빈 TActionMainMenubar가 필요합니다. MainForm의 OnCreate 이벤트에서 TActionbarConverter의 인스턴스를 만들고 그에 따라 다음과 같이 속성을 할당합니다.

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TActionbarConverter.Create(self) do begin
    Form := self;
    ActionManager := Actionmanager1;
    ActionMainMenubar := ActionMainmenubar1;
  end;
end;

ActionManager의 속성을 변경하거나 고유 한 ColorMap을 사용하여 모양을 수정할 수 있습니다.

여기에 거의 400 줄의 코드를 게시하여 여기에서 금지되지 않기를 바랍니다 (파일 업로드 방법을 모릅니다 ...).

unit ActnbarCnv;

interface

uses
  Classes, Menus, Forms, ComCtrls, ActnList, ActnMan, ActnMenus,
  StdStyleActnCtrls, XPStyleActnCtrls;

type
  TActionbarConverter = class(TComponent)
  private
    FForm : TCustomForm;
    FMainMenu : TMainMenu;
    FMainMenuToolbar : TToolbar;
    FActionManager : TActionManager;
    FActionMainMenubar : TActionMainMenubar;
    FNewMenuActions : TList;
    procedure ActionMainMenuBar_ExitMenuLoop(Sender:TCustomActionMenuBar;
      Cancelled: Boolean);
    procedure ActionMainMenubar_Popup(Sender:TObject; Item:TCustomActionControl);
    procedure SetActionMainMenubar(Value:TActionMainMenubar);
    procedure SetActionManager(Value:TActionManager);
    procedure SetForm(Value:TCustomForm);
  protected
    procedure AnalyzeForm;
    procedure Loaded; override;
    procedure LoadMenu(ActionList: TCustomActionList; Clients: TActionClients;
      AMenu: TMenuItem; SetActionList: Boolean = True);
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure ProcessMenu;
    procedure UpdateActionMainMenuBar(Menu: TMenu);
  public
    constructor Create(AOwner:TComponent); override;
    destructor Destroy; override;
    procedure Update;
  published
    property Form : TCustomForm read FForm write SetForm;
    property ActionManager : TActionManager read FActionManager write SetActionManager;
    property ActionMainMenubar : TActionMainMenubar read FActionMainMenubar write SetActionMainMenubar;
  end;

//==============================================================================
                                implementation
//==============================================================================

uses
  SysUtils;

//==============================================================================

{ TABMenuAction -
  This class is a special ActionBand menu action that stores the TMenuItem
  that it is associated with so that if it is executed it can actually call the
  TMenuItem.Click method simulating an actual click on the TMenuItem itself. }
type
  TABMenuAction = class(TCustomAction)
  private
    FMenuItem: TMenuItem;
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  public
    destructor Destroy; override;
    procedure ExecuteTarget(Target: TObject); override;
    function HandlesTarget(Target: TObject): Boolean; override;
  end;

//------------------------------------------------------------------------------

destructor TABMenuAction.Destroy;
begin
  if Assigned(FMenuItem) then FMenuItem.RemoveFreeNotification(Self);
  inherited;
end;

//------------------------------------------------------------------------------

procedure TABMenuAction.ExecuteTarget(Target: TObject);
begin
  if Assigned(FMenuItem) then FMenuItem.Click;
end;

//------------------------------------------------------------------------------

function TABMenuAction.HandlesTarget(Target: TObject): Boolean;
begin
  Result := True;
end;

//------------------------------------------------------------------------------

procedure TABMenuAction.Notification(AComponent: TComponent; Operation: TOperation);
begin
  if (Operation = opRemove) and (AComponent = FMenuItem)
    then FMenuItem := nil;
end;



//------------------------------------------------------------------------------
//   TActionbarConverter
//------------------------------------------------------------------------------

constructor TActionbarConverter.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
  FNewMenuActions := TList.Create;
  if (AOwner is TCustomForm) then SetForm(TCustomForm(AOwner));
end;

//------------------------------------------------------------------------------

destructor TActionbarConverter.Destroy;
begin
  FNewMenuActions.Free;
  inherited Destroy;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.ActionMainMenuBar_ExitMenuLoop(Sender:TCustomActionMenuBar;
  Cancelled: Boolean);
var
  I: Integer;
  AnAction: TObject;
begin
  // Clear the top level menu sub item and add a single dummy item which
  // will cause them to be regenerated on the next menu loop.  This is done
  // because the IDE's menus can be very dynamic and this ensures that the
  // menus will always be up-to-date.
  for I := 0 to FActionManager.ActionBars[0].Items.Count - 1 do begin
    FActionManager.ActionBars[0].Items[I].Items.Clear;
    FActionManager.ActionBars[0].Items[I].Items.Add;
  end;
  // Any menuitems not linked to an action had one dynamically created for them
  // during the menu loop so now we need to destroy them
  while FNewMenuActions.Count > 0 do begin
    AnAction := TObject(FNewMenuActions.Items[0]);
    AnAction.Free;
    FNewMenuActions.Delete(0);
  end;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.ActionMainMenubar_Popup(Sender:TObject;
  Item: TCustomActionControl);
begin
  // If the tag is not zero then we've already populated this submenu...
  if Item.ActionClient.Items[0].Tag <> 0 then exit;
  // ...otherwise this is the first visit to this submenu and we need to
  // populate the actual ActionClients collection.
  if Assigned(TMenuItem(Item.ActionClient.Tag).OnClick) then
    TMenuItem(Item.ActionClient.Tag).OnClick(TMenuItem(Item.ActionClient.Tag));
  Item.ActionClient.Items.Clear;
  TMenuItem(Item.ActionClient.Tag).RethinkHotkeys;
  LoadMenu(FActionManager, Item.ActionClient.Items, TMenuItem(Item.ActionClient.Tag), False);
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.AnalyzeForm;
var
  i : integer;
begin
  FMainMenu := nil;
  FMainMenuToolbar := nil;
  if Assigned(FForm) then begin
    for i:=0 to FForm.ComponentCount-1 do
      if (FForm.Components[i] is TMainMenu) then begin
        FMainMenu := FForm.Components[i] as TMainMenu;
        break;
      end;
    for i:=0 to FForm.ComponentCount-1 do
      if (FForm.Components[i] is TToolbar) then begin
        FMainMenuToolbar := FForm.Components[i] as TToolbar;
        if FMainMenuToolbar.Menu = FMainMenu
          then break
          else FMainMenuToolbar := nil;
      end;
  end;
  ProcessMenu;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.Loaded;
begin
  AnalyzeForm;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.LoadMenu(ActionList: TCustomActionList;
  Clients: TActionClients; AMenu: TMenuItem; SetActionList: Boolean = True);
{ This method dynamically builds the ActionBand menu from an existing
  TMenuItem. }
var
  I: Integer;
  AC: TActionClientItem;
begin
  AMenu.RethinkHotkeys;
  AMenu.RethinkLines;
  // Use the existing hotkeys from the TMenuItem
  Clients.AutoHotKeys := False;
  for I := 0 to AMenu.Count - 1 do begin
    AC := Clients.Add;
    AC.Caption := AMenu.Items[I].Caption;
    // Assign the Tag property to the TMenuItem for reference
    AC.Tag := Integer(AMenu.Items[I]);
    AC.Action := TContainedAction(AMenu.Items[I].Action);
    AC.Visible := AMenu.Items[I].Visible;
    // If the TMenuItem has subitems add an ActionClient placeholder.
    // Submenus are only populated when the user selects the parent item of the
    // submenu.
    if AMenu.Items[I].Count > 0 then
      AC.Items.Add  // Add a dummy indicating this item can/should be dynamically built
    else
      if (AMenu.Items[I].Caption <> '')
        and (AMenu.Items[I].Action = nil)
        and (AMenu.Items[I].Caption <> '-')
      then begin
        // The TMenuItem is not connected to an action so dynamically create
        // an action.
        AC.Action := TABMenuAction.Create(self); //Application.MainForm);
        AMenu.Items[I].FreeNotification(AC.Action);
        TABMenuAction(AC.Action).FMenuItem := AMenu.Items[I];
        FNewMenuActions.Add(AC.Action);
        AC.Action.ActionList := FActionManager;
        AC.Action.Tag := AMenu.Items[I].Tag;
        TCustomAction(AC.Action).ImageIndex := AMenu.Items[I].ImageIndex;
        TCustomAction(AC.Action).HelpContext := AMenu.Items[I].HelpContext;
        TCustomAction(AC.Action).Visible := AMenu.Items[I].Visible;
        TCustomAction(AC.Action).Checked := AMenu.Items[I].Checked;
        TCustomAction(AC.Action).Caption := AMenu.Items[I].Caption;
        TCustomAction(AC.Action).ShortCut := AMenu.Items[I].ShortCut;
        TCustomAction(AC.Action).Enabled := AMenu.Items[I].Enabled;
        TCustomAction(AC.Action).AutoCheck := AMenu.Items[I].AutoCheck;
        TCustomAction(AC.Action).Checked := AMenu.Items[I].Checked;
        TCustomAction(AC.Action).GroupIndex := AMenu.Items[I].GroupIndex;
        AC.ImageIndex := AMenu.Items[I].ImageIndex;
        AC.ShortCut := AMenu.Items[I].ShortCut;
      end;
    AC.Caption := AMenu.Items[I].Caption;
    AC.ImageIndex := AMenu.Items[I].ImageIndex;
    AC.HelpContext := AMenu.Items[I].HelpContext;
    AC.ShortCut := AMenu.Items[I].ShortCut;
    AC.Visible := AMenu.Items[I].Visible;
  end;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited;
  if (Operation = opRemove) then
    if (AComponent=FForm) then SetForm(nil);
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.ProcessMenu;
begin
  if FMainMenu <> nil then begin
    if FMainMenutoolbar <> nil then begin
      FMainMenutoolbar.Menu := nil;
      FMainMenutoolbar.Visible := false;
    end;
    FForm.Menu := nil;

    if FActionManager=nil then begin
      FActionManager := TActionManager.Create(self);
//      FActionManager.Style := XPStyle;
    end else
      FActionManager.Actionbars.Clear;

    FActionManager.Images := FMainMenu.Images;
    FActionManager.Actionbars.Add;

    if FActionMainMenubar=nil then begin
      FActionMainMenubar := TActionMainMenubar.Create(self);
      if (FMainMenuToolbar <> nil)
        then FActionMainMenubar.Parent := FMainMenuToolbar.Parent
        else FActionMainMenubar.Parent := FForm;
    end;
    FActionMainMenubar.ActionManager := FActionManager;
    FActionMainMenubar.OnPopup := ActionMainMenubar_Popup;
    FActionMainMenubar.OnExitMenuLoop := ActionMainMenubar_ExitMenuLoop;

    UpdateActionMainMenubar(FMainMenu);
  end;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.SetActionMainmenubar(Value:TActionMainMenubar);
begin
  if Value=nil then begin
    FActionMainMenubar := TActionMainMenubar.Create(self);
    if FMainmenuToolbar <> nil
      then FActionMainMenubar.Parent := FMainMenuToolbar.Parent
      else FActionMainMenubar.Parent := FForm;
  end else begin
    FActionMainMenubar.Free;
    FActionMainMenubar := value;
  end;
  Update;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.SetActionManager(value:TActionManager);
begin
  if Value = nil then begin
    FActionManager := TActionManager.Create(self);
    FActionManager.Style := XPStyle;
  end else begin
    FActionManager := value;
//    if FMainMenu <> nil then FActionManager.Images := FMainMenu.Images;
  end;
  Update;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.SetForm(value:TCustomForm);
begin
  if FForm <> Value then begin
    FForm := Value;
    AnalyzeForm;
  end;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.Update;
begin
  AnalyzeForm;
end;

//------------------------------------------------------------------------------

procedure TActionbarConverter.UpdateActionMainMenuBar(Menu: TMenu);
{ This routine should probably also check for Enabled state although it would
  be very wierd to have a top level menu disabled. }

  function RefreshItems: Boolean;
  var
    I: Integer;
  begin
    Result := FMainMenu.Items.Count <> FActionManager.ActionBars[0].Items.Count;
    if not Result then
      for I := 0 to FMainMenu.Items.Count - 1 do
        if AnsiCompareText(
          FMainMenu.Items[I].Caption,
          FActionManager.ActionBars[0].Items[I].Caption ) <> 0
        then  begin
          Result := True;
          break;
        end;
  end;

begin
  if not (csLoading in FActionManager.ComponentState) and RefreshItems
  then begin
    // Clear any existing items and repopulate the TActionMainMenuBar
    FActionManager.ActionBars[0].Items.Clear;
    FActionManager.ActionBars[0].ActionBar := nil;
    LoadMenu(FActionManager, FActionManager.ActionBars[0].Items, FMainMenu.Items);
    FActionManager.ActionBars[0].ActionBar := FActionMainMenuBar;
    // Update the size of the main menu
    with FActionMainMenuBar do
      SetBounds(
        0,
        0,
        Controls[ControlCount-1].BoundsRect.Right + 2 + FActionMainMenuBar.HorzMargin,
        Height
      );
  end;
end;

end.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

NodeList에서 JSON 계층 구조를 재귀 적으로 구성하는 방법은 무엇입니까?

분류에서Dev

재귀 Racket 함수에서 런타임을 최적화하여 목록의 최대 요소를 결정하는 방법은 무엇입니까?

분류에서Dev

C ++에서 재귀 적으로 역순으로 세트를 인쇄하는 방법은 무엇입니까?

분류에서Dev

PHP를 사용하여 FTP 서버에 생성 된 새 폴더에 모든 권한을 재귀 적으로 설정하는 방법은 무엇입니까?

분류에서Dev

컨트롤러 외부에서 ActiveModel :: Serializers를 재귀 적으로 사용하는 방법은 무엇입니까?

분류에서Dev

SQL에서 연간 롤오버를 재귀 적으로 계산하는 방법은 무엇입니까?

분류에서Dev

객체에서 재귀 적으로 자식 객체를 제거하는 방법은 무엇입니까?

분류에서Dev

한 번에 여러 디렉토리를 재귀 적으로 grep하는 방법은 무엇입니까?

분류에서Dev

elisp에서 함수를 재귀 적으로 전달하는 방법은 무엇입니까?

분류에서Dev

lxml에서 특정 요소와 하위 요소를 재귀 적으로 얻는 방법은 무엇입니까?

분류에서Dev

미로에서 그리드를 재귀 적으로 나누는 방법은 무엇입니까?

분류에서Dev

런타임에서 OmniAuth 범위를 동적으로 설정하는 방법은 무엇입니까?

분류에서Dev

런타임에 사용자에게 정수를 요청하고 정수를 얻지 못한 경우 재귀 적으로 다시 묻는 방법은 무엇입니까?

분류에서Dev

파이썬에서 재귀 적으로 빈 디렉토리를 찾는 방법은 무엇입니까?

분류에서Dev

Laravel에서 재귀 적으로 레코드를 얻는 방법은 무엇입니까?

분류에서Dev

재귀 쿼리를 동적으로 만드는 방법은 무엇입니까?

분류에서Dev

런타임 중에 구조 객체의 크기를 동적으로 늘리는 방법은 무엇입니까?

분류에서Dev

Haskell 목록에서 요소의 발생을 재귀 적으로 계산하는 방법은 무엇입니까?

분류에서Dev

이 반복 함수를 재귀 적으로 작성하는 방법은 무엇입니까?

분류에서Dev

동적 중첩 for 루프를 생성하기 위해 R에서 재귀 함수를 작성하는 방법은 무엇입니까?

분류에서Dev

bqplot에서 대화 형 플롯으로 재귀를 방지하는 방법은 무엇입니까?

분류에서Dev

폴더의 모든 파일에서 재귀 적으로 타사 유틸리티를 실행하는 방법은 무엇입니까?

분류에서Dev

Angular에서 런타임 템플릿으로 구성 요소를 만드는 방법은 무엇입니까?

분류에서Dev

EXT JS : 런타임에 MaxLength를 false로 적용하는 방법은 무엇입니까?

분류에서Dev

일반적으로 Erlang과 재귀 학습. 카운터 또는 누적기를 에뮬레이트하는 방법은 무엇입니까?

분류에서Dev

Windows에서 폴더를 재귀 적으로 압축하지만 선택적 파일 만 압축하는 방법은 무엇입니까?

분류에서Dev

mongocxx C ++ 드라이버를 사용하여 Mongodb 문서를 재귀 적으로 생성하는 방법은 무엇입니까?

분류에서Dev

dos2unix를 폴더의 모든 내용에 재귀 적으로 적용하는 방법은 무엇입니까?

분류에서Dev

R의 벡터에 이진 함수 (비트 XOR)를 재귀 / 반복적으로 적용하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    NodeList에서 JSON 계층 구조를 재귀 적으로 구성하는 방법은 무엇입니까?

  2. 2

    재귀 Racket 함수에서 런타임을 최적화하여 목록의 최대 요소를 결정하는 방법은 무엇입니까?

  3. 3

    C ++에서 재귀 적으로 역순으로 세트를 인쇄하는 방법은 무엇입니까?

  4. 4

    PHP를 사용하여 FTP 서버에 생성 된 새 폴더에 모든 권한을 재귀 적으로 설정하는 방법은 무엇입니까?

  5. 5

    컨트롤러 외부에서 ActiveModel :: Serializers를 재귀 적으로 사용하는 방법은 무엇입니까?

  6. 6

    SQL에서 연간 롤오버를 재귀 적으로 계산하는 방법은 무엇입니까?

  7. 7

    객체에서 재귀 적으로 자식 객체를 제거하는 방법은 무엇입니까?

  8. 8

    한 번에 여러 디렉토리를 재귀 적으로 grep하는 방법은 무엇입니까?

  9. 9

    elisp에서 함수를 재귀 적으로 전달하는 방법은 무엇입니까?

  10. 10

    lxml에서 특정 요소와 하위 요소를 재귀 적으로 얻는 방법은 무엇입니까?

  11. 11

    미로에서 그리드를 재귀 적으로 나누는 방법은 무엇입니까?

  12. 12

    런타임에서 OmniAuth 범위를 동적으로 설정하는 방법은 무엇입니까?

  13. 13

    런타임에 사용자에게 정수를 요청하고 정수를 얻지 못한 경우 재귀 적으로 다시 묻는 방법은 무엇입니까?

  14. 14

    파이썬에서 재귀 적으로 빈 디렉토리를 찾는 방법은 무엇입니까?

  15. 15

    Laravel에서 재귀 적으로 레코드를 얻는 방법은 무엇입니까?

  16. 16

    재귀 쿼리를 동적으로 만드는 방법은 무엇입니까?

  17. 17

    런타임 중에 구조 객체의 크기를 동적으로 늘리는 방법은 무엇입니까?

  18. 18

    Haskell 목록에서 요소의 발생을 재귀 적으로 계산하는 방법은 무엇입니까?

  19. 19

    이 반복 함수를 재귀 적으로 작성하는 방법은 무엇입니까?

  20. 20

    동적 중첩 for 루프를 생성하기 위해 R에서 재귀 함수를 작성하는 방법은 무엇입니까?

  21. 21

    bqplot에서 대화 형 플롯으로 재귀를 방지하는 방법은 무엇입니까?

  22. 22

    폴더의 모든 파일에서 재귀 적으로 타사 유틸리티를 실행하는 방법은 무엇입니까?

  23. 23

    Angular에서 런타임 템플릿으로 구성 요소를 만드는 방법은 무엇입니까?

  24. 24

    EXT JS : 런타임에 MaxLength를 false로 적용하는 방법은 무엇입니까?

  25. 25

    일반적으로 Erlang과 재귀 학습. 카운터 또는 누적기를 에뮬레이트하는 방법은 무엇입니까?

  26. 26

    Windows에서 폴더를 재귀 적으로 압축하지만 선택적 파일 만 압축하는 방법은 무엇입니까?

  27. 27

    mongocxx C ++ 드라이버를 사용하여 Mongodb 문서를 재귀 적으로 생성하는 방법은 무엇입니까?

  28. 28

    dos2unix를 폴더의 모든 내용에 재귀 적으로 적용하는 방법은 무엇입니까?

  29. 29

    R의 벡터에 이진 함수 (비트 XOR)를 재귀 / 반복적으로 적용하는 방법은 무엇입니까?

뜨겁다태그

보관