DELPHI标题栏添加菜单栏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DELPHI标题栏添加菜单栏相关的知识,希望对你有一定的参考价值。

DELPHI标题栏添加菜单栏如360浏览器菜单在标题栏上

把formborder设置成bsnone 这样就是一个无边框的窗体了 然后自己在顶部画一个标题栏出来 就可以把菜单栏画到这个标题栏上了 360就是这么干的 参考技术A 用MainMenu菜单控件 。

无论如何要在导航栏中添加相同的滚动菜单栏吗?

【中文标题】无论如何要在导航栏中添加相同的滚动菜单栏吗?【英文标题】:Is there anyway to add same scroll menubar at the navigation bar? 【发布时间】:2012-01-10 10:02:52 【问题描述】:

我已经再次发布了我的这个问题,但我没有得到完美的答案。在这里我将再次解释我的问题,这对我来说非常重要,所以我必须不惜一切代价解决它。现在我的问题是……

假设,我在 tabbarController 中有 4 个 tabbaritem 和项目 "dashboard","order","product","customer"。

这些标签栏的每一项都是相应的uiviewcontroller

dashboar 调用“DashboarViewController”;

订单调用“orderViewController”;

产品调用“ProductViewController”;

客户调用“CustomerViewController”;

现在,我必须在每个 uiviewcontroller 上设置一个滚动菜单栏,并且这个菜单栏包含 4 个按钮。这些按钮名称与标签栏项目名称“仪表板”、“订单”、“产品”、“客户”相同。

现在,当我按下菜单栏的按钮时,相应的控制器将显示与标签栏项目相同的显示。假设我正在按“订单”标签栏项目,那么它将显示“订单视图控制器”。当我看到这个视图控制器时,它还会显示视图控制器顶部的菜单栏。现在,如果我点击这个“orderviewcontroller”中的“product”按钮,那么它会发回给我“productViewcontroller”。

这意味着标签栏项目和滚动菜单栏的按钮将相同。

现在我已经完成了这些,我以前的帖子图片 How can i make same button in multiple view controller?

如果有人知道如何做到这一点,请一步一步解释。我不需要你提供任何代码。在阅读我之前的帖子后一步一步解释我该怎么做

提前致谢。

【问题讨论】:

【参考方案1】:

哈哈哈.....当我解决它时真是太有趣了。无论我以不同的方式解决了这个问题,我并没有将滚动视图按钮控制器用于控制器,在每个控制器中我都在哪里实现了功能滚动视图中的按钮创建和按钮的操作我刚刚更改了标签栏控制器的选定索引。

-(void)viewDidload我写了这段代码

     UIView *scrollViewBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 45)];
scrollViewBackgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"topmenu_bg.png"]];

menuScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(5,0,320,40)];
menuScrollView.showsHorizontalScrollIndicator = FALSE;
menuScrollView.showsVerticalScrollIndicator = FALSE;
menuScrollView.bounces = TRUE;
[scrollViewBackgroundView addSubview:menuScrollView];
[self.view addSubview:scrollViewBackgroundView];

[self createMenuWithButtonSize:CGSizeMake(92.0, 30.0) withOffset:5.0f noOfButtons:7];   

这里是按钮的创建和操作

-(void)mybuttons:(id)sender    
NSLog(@"mybuttons called");
UIButton *button=(UIButton *)sender;
NSLog(@"button clicked is : %iBut \n\n",button.tag);
int m = button.tag;
for(int j=0;j<8;j++)
    if(button.tag == m)
        self.tabBarController.selectedIndex = m;
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_hover.png"] forState:UIControlStateHighlighted]; //sets the background Image]            
    
    if(button.tag != m)
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]
    

       

 -(void)createMenuWithButtonSize:(CGSize)buttonSize withOffset:(CGFloat)offset noOfButtons:(int)totalNoOfButtons

NSLog(@"inserting into the function for menu bar button creation"); 
for (int i = 0; i < totalNoOfButtons; i++) 

    UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
    [button addTarget:self action:@selector(mybuttons:) forControlEvents:UIControlEventTouchUpInside];
    (button).titleLabel.font =  [UIFont fontWithName:@"Arial" size:12];
    if(i==0)
        [button setTitle:[NSString stringWithFormat:@"Dashboard"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_hover.png"] forState:UIControlStateNormal]; //sets the background Image]
    
    if(i==1)
        [button setTitle:[NSString stringWithFormat:@"Order"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    
    if(i==2)
        [button setTitle:[NSString stringWithFormat:@"Product"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    
    if(i==3)
        [button setTitle:[NSString stringWithFormat:@"Customers"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    
    if(i==4)
        [button setTitle:[NSString stringWithFormat:@"Content"] forState:UIControlStateNormal];//with title
    
    if(i==5)
        [button setTitle:[NSString stringWithFormat:@"Site Analysis"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    
    if(i==6)
        [button setTitle:[NSString stringWithFormat:@"Store Settings"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    
    if(i==7)
        [button setTitle:[NSString stringWithFormat:@"CMS Settings"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    
    button.frame = CGRectMake(i*(offset+buttonSize.width), 6.0, buttonSize.width, buttonSize.height);
    button.clipsToBounds = YES;
    button.showsTouchWhenHighlighted=YES;
    button.layer.cornerRadius = 5;//half of the width
    button.layer.borderColor=[UIColor clearColor].CGColor;
    button.layer.borderWidth=0.0f;
    button.tag=i;
    [menuScrollView addSubview:button];

menuScrollView.contentSize=CGSizeMake((buttonSize.width + offset) * totalNoOfButtons, buttonSize.height);
[self.view addSubview:menuScrollView];


【讨论】:

以上是关于DELPHI标题栏添加菜单栏的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Delphi 2006 应用程序的任务栏按钮上下文菜单不完整?

delphi 写个仿天正左边的菜单栏!!! 或者告诉我怎么做也行??用啥控件???

Delphi -- 创建 桌面发送到...快速启动栏开始菜单程序菜单右键菜 单

delphi编程实现为Windows窗口标题栏添加新按钮

delphi用MainMenu1做了个菜单栏,本来是一行的,但是一缩小当前窗口就成了两行了,。。。。。。

Delphi如何在Form的标题栏绘制自定义文字