鸿蒙Ability(一):Feature Ability的Page Ability模板

导语

在鸿蒙应用中在创建一个Page Ability(Feature Ability)时(Page Ability可以理解为安卓的Acitvity),会生成两个类:“XxxAbility”和“XxxAbilitySlice”,和一个布局文件“ability_Xxx.xml”。
在这里插入图片描述
在这里插入图片描述
为什么创建Ability的时候,会有三个选项呢?还会自动生成AbilitySlice呢?
这就涉及到鸿蒙中一个很重要的概念——Ability

Ability概念

Ability是应用的重要组成部分,是应用所具备能力的抽象。一个应用可以具备多种能力(即可以包含多个Ability)。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型。
①Feature Ability
FA代表有界面的Ability,支持Page Ability模板(是FA唯一支持的模板),用于提供与用户交互的能力。
②Particle Ability
PA代表无界面的Ability,支持Service Ability和Data Ability模板。
Service模板用于提供后台运行任务的能力,
Data模板用于对外部提供统一的数据访问抽象。
在配置文件config.json中注册Ability时,可以通过配置Ability元素中的“type”属性来指定Ability模板类型。
“type”的取值可以为“page”(代表Page模板)、“service”(代表Service模板)或“data”(代表Data模板)。
在这里插入图片描述

Feature Ability

Page与AbilitySlice

Page模板是Feature Ability唯一支持的模板。一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。
在Feature Ability中,有一个很重要的概念就是AbilitySlice,一个Feature Ability可以由一个或多个AbilitySlice构成。
AbilitySlice是Feature Ability的组成单元,是指应用的单个可视化界面及其交互逻辑的总和。一个Feature Ability可以包含一组业务关系密切的可视化界面,每一个可视化界面对应一个AbilitySlice。
可以这么说:Feature Ability本质上就是一个页面,可以称为Page Ability(后文将称Feature Ability为Page Ability),这里的Page可以理解为Android中的Activity,Abilityslice可以理解为Android中的Layout。
Ability可以有界面(如Feature Ability),也可以没有界面(如Particle Ability)
有界面要显示时,在Ability中,通过setMainRoute关联要显示的AbilitySlice(XxxAbility通过SetMainRoute关联XxxAbilitySlice
设置布局文件、处理业务逻辑的代码写在AbilitySlice中(和布局文件ability_xxx.xml关联的是XxxAbilitySlice

在Page Ability中用代码编写界面

public class CodeWritePageAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        //super.setUIContent(ResourceTable.Layout_ability_code_write_page);

        // 使用代码生成 UI 布局与组件

        // 声明布局 创建相对布局, 传入当前界面 Ability 对象
        DirectionalLayout directionalLayout = new DirectionalLayout(this);
        // 设置布局大小
        directionalLayout.setWidth(MATCH_PARENT);
        directionalLayout.setHeight(MATCH_PARENT);
//        // 创建布局配置对象DirectionalLayout.LayoutConfig
//        // 构造函数中传入宽高设置
//        DirectionalLayout.LayoutConfig layoutConfig = new DirectionalLayout.LayoutConfig(
//                DirectionalLayout.LayoutConfig.MATCH_PARENT,
//                DirectionalLayout.LayoutConfig.MATCH_PARENT);
//        // 将布局配置对象设置给布局对象
//        directionalLayout.setLayoutConfig(layoutConfig);
        // 设置水平方向
        directionalLayout.setOrientation(Component.HORIZONTAL);

        // 设置布局背景为淡蓝色
        // 创建背景元素
        ShapeElement shapeElement = new ShapeElement();
        // 设置淡蓝色
        shapeElement.setRgbColor(new RgbColor(187, 255, 255));
        // 设置页面背景颜色(将背景设置给布局)
        directionalLayout.setBackground(shapeElement);

        // 创建一个Text文本组件
        Text text = new Text(this);
        // 设置文本的布局
        // 创建布局配置对象DependentLayout.LayoutConfig
        // 在构造函数中传入宽高设置,这里设置成宽800、高自适应
        DependentLayout.LayoutConfig textLayoutConfig = new DependentLayout.LayoutConfig(
                800,  DependentLayout.LayoutConfig.MATCH_CONTENT);
        //设置margin
        textLayoutConfig.setMargins(100, 100, 100, 100);
        // 将布局配置对象设置给布局对象(为组件添加对应布局的布局属性)
        text.setLayoutConfig(textLayoutConfig);

        // 设置text布局背景为淡紫色
        // 创建背景元素
        ShapeElement shapeElementText = new ShapeElement();
        // 设置淡紫色
        shapeElementText.setRgbColor(new RgbColor(230, 230, 250));
        // 将背景设置给布局 设置页面背景颜色
        text.setBackground(shapeElementText);

        // 设置显示的文本
        text.setText("Hi there");
        // 设置文字颜色
        text.setTextColor(Color.BLACK);
        //text.setTextColor(new Color(0xFF258293));
        // 设置文字大小
        text.setTextSize(100);
        // 设置对齐方式 , 居中
        text.setTextAlignment(TextAlignment.CENTER);
        // 将组件添加到布局中
        directionalLayout.addComponent(text);
        
        //将布局作为根布局添加到视图树中
        super.setUIContent(directionalLayout);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

在这里插入图片描述

生命周期

Page Ability生命周期

官方文档:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-page-lifecycle-0000000000029840#ZH-CN_TOPIC_0000001083455837__fig3655123011010
在这里插入图片描述

public class LifeCycleAbility extends Ability {

    private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "resultValue");

    @Override
    public void onStart(Intent intent) {
        //当系统首次创建Page实例时,触发该回调,该回调在其生命周期过程中仅触发一次。
        //Page在该逻辑后将进入INACTIVE(非激活状态)状态。
        //开发者必须重写该方法,并在此使用setMainRoute配置默认展示的AbilitySlice。
        super.onStart(intent);
        super.setMainRoute(LifeCycleAbilitySlice.class.getName());
        HiLog.info(LABEL, "LifeCycleAbility.onStart");
    }


    @Override
    protected void onActive() {
        //该状态是应用与用户交互的状态
        // (进入前台时触发)
        super.onActive();
        HiLog.info(LABEL, "LifeCycleAbility.onActive");
    }

    @Override
    protected void onInactive() {
        //开发者应该在此回调中实现Page失去焦点时应表现的恰当行为,如释放资源
        //(失去焦点时触发)
        super.onInactive();
        HiLog.info(LABEL, "LifeCycleAbility.onInactive");
    }

    @Override
    protected void onBackground() {
        //开发者应该在此回调中释放Page不可见时无用的资源
        //或在此回调中执行较为耗时的状态保存操作
        //(不可见时触发)
        super.onBackground();
        HiLog.info(LABEL, "LifeCycleAbility.onBackground");
    }

    @Override
    protected void onForeground(Intent intent) {
        //开发者应当在此回调中重新申请在onBackground()中释放的资源
        //(重新进入可见状态时触发)
        super.onForeground(intent);
        HiLog.info(LABEL, "LifeCycleAbility.onForeground");
    }

    @Override
    protected void onStop() {
        //系统将要销毁Page时,将会触发此回调函数,通知用户进行系统资源的释放
        //(销毁Ability时触发)
        super.onStop();
        HiLog.info(LABEL, "LifeCycleAbility.onStop");
    }
}

注意
onStart()在整个生命周期过程中仅触发一次,而onActive()在每一次从后台回到前台的时候都会被调用,所以在开发中,把只需要加载一次的资源放在onStart()中,把要实时变更的资源放在onActive()中。
开发者通常需要成对实现onActive()和onInactive(),在onActive()中获取在onInactive()中被释放的资源。

AbilitySlice生命周期

AbilitySlice作为Page Ability的组成单元,其生命周期是依托于其所属Page Ability生命周期的。
AbilitySlice和Page Ability具有相同的生命周期状态和同名的回调,当Page Ability生命周期发生变化时,它的AbilitySlice也会发生相同的生命周期变化。
此外,AbilitySlice还具有独立于Page Ability的生命周期变化,这发生在同一Page Ability中的AbilitySlice之间导航时,此时Page Ability的生命周期状态不会改变,AbilitySlice生命周期回调与Page Ability的相应回调类似。当Page Ability被系统销毁时,其所有已实例化的AbilitySlice将联动销毁,而不仅是处于前台的AbilitySlice。

public class LifeCycleAbilitySlice extends AbilitySlice {

    private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "resultValue");

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        //由于AbilitySlice承载具体的页面,开发者必须重写AbilitySlice的onStart()回调,并在此方法中通过setUIContent()方法设置页面
        super.setUIContent(ResourceTable.Layout_ability_life_cycle);
        HiLog.info(LABEL, "LifeCycleAbilitySlice.onStart");
    }

    @Override
    public void onActive() {
        super.onActive();
        HiLog.info(LABEL, "LifeCycleAbilitySlice.onActive");
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
        HiLog.info(LABEL, "LifeCycleAbilitySlice.onForeground");
    }

    @Override
    protected void onBackground() {
        super.onBackground();
        HiLog.info(LABEL, "LifeCycleAbilitySlice.onBackground");
    }

    @Override
    protected void onInactive() {
        super.onInactive();
        HiLog.info(LABEL, "LifeCycleAbilitySlice.onInactive");
    }

    @Override
    protected void onStop() {
        super.onStop();
        HiLog.info(LABEL, "LifeCycleAbilitySlice.onStop");
    }
}

生命周期示例

生命周期示例之同一Page跳转

在LifeCycleAbilitySlice的onStart()中增加按钮跳转到LifeCycleSecondAbilitySlice

		//生命周期示例之同一Page跳转
        Button button = (Button) findComponentById(ResourceTable.Id_button);
        // 为按钮设置点击回调
        button.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                present(new LifeCycleSecondAbilitySlice(), new Intent());
            }
        });

LifeCycleSecondAbilitySlice.java的代码如下:

/**
 * 生命周期测试AbilitySlice
 *
 * @author 舒小羽
 * @date 2021/4/15 0015
 */
public class LifeCycleSecondAbilitySlice extends AbilitySlice {

    private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "resultValue");

    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        HiLog.info(LABEL, "LifeCycleSecondAbilitySlice.onStart");

        // 声明布局 创建相对布局, 传入当前界面 Ability 对象
        DependentLayout dependentLayout = new DependentLayout(this);
        // 创建布局配置对象DependentLayout.LayoutConfig
        // 构造函数中传入宽高设置
        DependentLayout.LayoutConfig layoutConfig = new DependentLayout.LayoutConfig(
                DependentLayout.LayoutConfig.MATCH_PARENT,
                DependentLayout.LayoutConfig.MATCH_PARENT);
        // 将布局配置对象设置给布局对象
        dependentLayout.setLayoutConfig(layoutConfig);

        // 设置布局背景为粉红色
        // 创建背景元素
        ShapeElement shapeElement = new ShapeElement();
        // 设置粉红色
        shapeElement.setRgbColor(new RgbColor(255, 130, 171));
        // 设置页面背景颜色(将背景设置给布局)
        dependentLayout.setBackground(shapeElement);

        // 创建一个Text文本组件
        Text text = new Text(this);
        // 设置文本的布局
        text.setWidth(MATCH_CONTENT);
        // 设置显示的文本
        text.setText("同一个Page的跳转");
        // 设置文字颜色
        text.setTextColor(Color.BLACK);
        // 设置文字大小
        text.setTextSize(100);
        // 将组件添加到布局中
        dependentLayout.addComponent(text);

        //将布局作为根布局添加到视图树中
        super.setUIContent(dependentLayout);
    }

    @Override
    public void onActive() {
        super.onActive();
        HiLog.info(LABEL, "LifeCycleSecondAbilitySlice.onActive");
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
        HiLog.info(LABEL, "LifeCycleSecondAbilitySlice.onForeground");
    }

    @Override
    protected void onBackground() {
        super.onBackground();
        HiLog.info(LABEL, "LifeCycleSecondAbilitySlice.onBackground");
    }

    @Override
    protected void onInactive() {
        super.onInactive();
        HiLog.info(LABEL, "LifeCycleSecondAbilitySlice.onInactive");
    }

    @Override
    protected void onStop() {
        super.onStop();
        HiLog.info(LABEL, "LifeCycleSecondAbilitySlice.onStop");
    }
}

运行代码。。。。。。。。。。。。。。。。。。。。。。。。。
首先启动LifeCycleAbility的是LifeCycleAbilitySlice,生命周期的调用顺序为:
LifeCycleAbility.onStart–>LifeCycleAbilitySlice.onStart–>LifeCycleAbility.onActive–>LifeCycleAbilitySlice.onActive
可以看出AbilitySlice作为Page Ability的组成单元,其生命周期是依托于其所属Page Ability生命周期的。 AbilitySlice和Page Ability具有相同的生命周期状态和同名的回调,当Page Ability生命周期发生变化时,它的AbilitySlice也会发生相同的生命周期变化。
在这里插入图片描述

resultValue: LifeCycleAbility.onStart
resultValue: LifeCycleAbilitySlice.onStart
resultValue: LifeCycleAbility.onActive
resultValue: LifeCycleAbilitySlice.onActive

当点击LifeCycleAbilitySlice中的按钮跳转到LifeCycleAbility的LifeCycleSecondAbilitySlice,生命周期的调用顺序为:
LifeCycleAbilitySlice.onInactive–>LifeCycleSecondAbilitySlice.onStart–>LifeCycleSecondAbilitySlice.onActive–>LifeCycleAbilitySlice.onBackground
在这里插入图片描述

resultValue: LifeCycleAbilitySlice.onInactive
resultValue: LifeCycleSecondAbilitySlice.onStart
resultValue: LifeCycleSecondAbilitySlice.onActive
resultValue: LifeCycleAbilitySlice.onBackground

当点击返回按钮,从LifeCycleSecondAbilitySlice返回到LifeCycleAbilitySlice,生命周期的调用顺序为:
LifeCycleSecondAbilitySlice.onInactive–>LifeCycleAbilitySlice.onForeground–>LifeCycleAbilitySlice.onActive–>LifeCycleSecondAbilitySlice.onBackground–>LifeCycleSecondAbilitySlice.onStop
在这里插入图片描述

resultValue: LifeCycleSecondAbilitySlice.onInactive
resultValue: LifeCycleAbilitySlice.onForeground
resultValue: LifeCycleAbilitySlice.onActive
resultValue: LifeCycleSecondAbilitySlice.onBackground
resultValue: LifeCycleSecondAbilitySlice.onStop

同一Page中的AbilitySlice之间导航,Page的生命周期状态不会改变。在这个流程中,MainAbility始终处于活跃状态。
当点击手机Home键的时候,生命周期的调用顺序为:
LifeCycleAbility.onInactive–>LifeCycleAbilitySlice.onInactive–>LifeCycleAbility.onBackground–>LifeCycleAbilitySlice.onBackground
在这里插入图片描述

resultValue: LifeCycleAbility.onInactive
resultValue: LifeCycleAbilitySlice.onInactive
resultValue: LifeCycleAbility.onBackground
resultValue: LifeCycleAbilitySlice.onBackground
生命周期示例之不同Page跳转

在LifeCycleAbilitySlice的onStart()中增加按钮跳转到LifeCycleDifferentPageAbility

 //生命周期示例之不同Page跳转
 Button button1 = (Button) findComponentById(ResourceTable.Id_button1);
        // 为按钮设置点击回调
        button1.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                Intent intent = new Intent();
                Operation operation = new Intent.OperationBuilder()
                        .withDeviceId("")
                        .withBundleName("org.example.harmonypageabilitydemo")
                        .withAbilityName(".LifeCycleDifferentPageAbility")
                        .build();
                intent.setOperation(operation);
                startAbility(intent);
            }
        });

LifeCycleDifferentPageAbility.java的代码如下:

public class LifeCycleDifferentPageAbility extends Ability {

    private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "resultValue");

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setMainRoute(LifeCycleDifferentPageAbilitySlice.class.getName());
        HiLog.info(LABEL, "LifeCycleDifferentPageAbility.onStart");
    }

    @Override
    protected void onActive() {
        super.onActive();
        HiLog.info(LABEL, "LifeCycleDifferentPageAbility.onActive");
    }

    @Override
    protected void onInactive() {
        super.onInactive();
        HiLog.info(LABEL, "LifeCycleDifferentPageAbility.onInactive");
    }

    @Override
    protected void onBackground() {
        super.onBackground();
        HiLog.info(LABEL, "LifeCycleDifferentPageAbility.onBackground");
    }

    @Override
    protected void onForeground(Intent intent) {
        super.onForeground(intent);
        HiLog.info(LABEL, "LifeCycleDifferentPageAbility.onForeground");
    }

    @Override
    protected void onStop() {
        super.onStop();
        HiLog.info(LABEL, "LifeCycleDifferentPageAbility.onStop");
    }
}

LifeCycleDifferentPageAbilitySlice.java的代码如下:

public class LifeCycleDifferentPageAbilitySlice extends AbilitySlice {

    private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "resultValue");

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_life_cycle_different_page);
        HiLog.info(LABEL, "LifeCycleDifferentPageAbilitySlice.onStart");
    }

    @Override
    public void onActive() {
        super.onActive();
        HiLog.info(LABEL, "LifeCycleDifferentPageAbilitySlice.onActive");
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
        HiLog.info(LABEL, "LifeCycleDifferentPageAbilitySlice.onForeground");
    }

    @Override
    protected void onBackground() {
        super.onBackground();
        HiLog.info(LABEL, "LifeCycleDifferentPageAbilitySlice.onBackground");
    }

    @Override
    protected void onInactive() {
        super.onInactive();
        HiLog.info(LABEL, "LifeCycleDifferentPageAbilitySlice.onInactive");
    }

    @Override
    protected void onStop() {
        super.onStop();
        HiLog.info(LABEL, "LifeCycleDifferentPageAbilitySlice.onStop");
    }
}

运行代码。。。。。。。。。。。。。。。。。。。。。。。。。
可以看见,从LifeCycleAbility跳转到LifeCycleDifferentPageAbility,
LifeCycleAbility和LifeCycleAbilitySlice首先都失去焦点,调用了onInactive,接着,LifeCycleDifferentPageAbility与LifeCycleDifferentPageAbilitySlice启动,调用了onStart,然后一起进入了前台,调用了onActive,最后,LifeCycleAbility与LifeCycleAbilitySlice都不可见了,调用了onBackground。
在这里插入图片描述

resultValue: LifeCycleAbility.onInactive
resultValue: LifeCycleAbilitySlice.onInactive
resultValue: LifeCycleDifferentPageAbility.onStart
resultValue: LifeCycleDifferentPageAbilitySlice.onStart
resultValue: LifeCycleDifferentPageAbility.onActive
resultValue: LifeCycleDifferentPageAbilitySlice.onActive
resultValue: LifeCycleAbility.onBackground
resultValue: LifeCycleAbilitySlice.onBackground

当点击了返回按钮后
从LifeCycleDifferentPageAbility回到LifeCycleAbility
先是LifeCycleDifferentPageAbility与LifeCycleDifferentPageAbilitySlice失去焦点触发onInactive,其次是LifeCycleAbility与LifeCycleAbilitySlice重新进入可见触发onForeground,再是LifeCycleAbility与LifeCycleAbilitySlice进入前台触发onActive,然后是LifeCycleDifferentPageAbility与LifeCycleDifferentPageAbilitySlice不可见触发onBackground,最后LifeCycleDifferentPageAbility与LifeCycleDifferentPageAbilitySlice销毁触发onStop。
在这里插入图片描述

resultValue: LifeCycleDifferentPageAbility.onInactive
resultValue: LifeCycleDifferentPageAbilitySlice.onInactive
resultValue: LifeCycleAbility.onForeground
resultValue: LifeCycleAbilitySlice.onForeground
resultValue: LifeCycleAbility.onActive
resultValue: LifeCycleAbilitySlice.onActive
resultValue: LifeCycleDifferentPageAbility.onBackground
resultValue: LifeCycleDifferentPageAbilitySlice.onBackground
resultValue: LifeCycleDifferentPageAbility.onStop
resultValue: LifeCycleDifferentPageAbilitySlice.onStop

AbilitySlice间的导航

同一Page内导航(同一Page页面的AbilitySlice间的导航)
不同Page间导航(不同Page页面的AbilitySlice间的导航(跨Pgae页面))

AbilitySlice路由配置

虽然一个Page Ability可以由一个或多个AbilitySlice构成,但是Page进入前台时界面默认只展示一个AbilitySlice。默认展示的AbilitySlice是通过setMainRoute()方法来指定的。
如果需要更改默认展示的AbilitySlice,可以通过
addActionRoute()
方法为此AbilitySlice配置一条路由规则,当其他Page实例期望导航到此AbilitySlice时,可以在Intent中指定Action。配置了新的路由规则后,需要在配置文件中将其声明,否则会找不到。
setMainRoute()方法与addActionRoute()方法使用示例如下:

public class MainAbility extends Ability {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        //设置默认展示的AbilitySlice
        super.setMainRoute(MainAbilitySlice.class.getName());
        
        //set the action route
        //设置路由规则,应用于不同page的导航
        addActionRoute("action.second", SecondAbilitySlice.class.getName());
    }
}

就是说,"action.second"这个action值匹配的是SecondAbilitySlice这个slice,当需要跳转到SecondAbilitySlice这个slice的时候,通过指定"action.second"这个action值跳转到slice。
在配置文件中声明配置的新的路由规则示例如下:
在这里插入图片描述

同一Page内导航

跳转不携带数据
		Button button = (Button) findComponentById(ResourceTable.Id_button);
        // 为按钮设置点击回调
        button.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                //第一种导航方式,跳转到同一page内不携带数据
                //参数1:需要导航去的页面,参数2:Intent对象
                present(new SamePageSlice(), new Intent());
            }
        });
跳转并携带数据
 		Button button2 = (Button) findComponentById(ResourceTable.Id_button2);
        // 为按钮设置点击回调
        button2.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                //第二种导航方式,跳转到同一page内并携带数据
                Intent intent1 = new Intent();
                intent1.setParam("name", "yu");
                present(new SamePageSlice(), intent1);
            }
        });

接收携带的数据(如果携带了参数跳转,如何获取到传递的参数呢?)
Intent作为处理请求的对象,会在相应的回调方法中接收请求方传递的Intent对象,导航的目标可以在其onStart()回调的参数中获得Intent对象。
需要跳转过去的Slice的onStart()方法的参数就是一个Intent,因此可以直接通过此Intent去获取传递过去的参数。
在这里插入图片描述

		//第二种导航方式,跳转到同一page内并携带数据
        //接收携带的数据
        Text text = (Text) findComponentById(ResourceTable.Id_text);
        if (intent != null) {
            text.setText("接收到的数据name=" + intent.getStringParam("name"));
        }
跳转并返回数据

如果开发者希望在用户从导航目标AbilitySlice返回时,能够获得其返回结果,则应当使用presentForResult()实现导航。用户从导航目标AbilitySlice返回时,系统将回调onResult()来接收和处理返回结果,开发者需要重写该方法。

 		text = (Text) findComponentById(ResourceTable.Id_text);
        Button button3 = (Button) findComponentById(ResourceTable.Id_button3);
        // 为按钮设置点击回调
        button3.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                //第三种导航方式,跳转到同一page内并返回数据
                //参数1:需要导航去的页面,参数2:Intent对象,参数3:请求码
                presentForResult(new SamePageSlice(), new Intent(), 0);
            }
        });

    //第三种导航方式,跳转到同一page内并返回数据
    //接收返回的数据
    @Override
    protected void onResult(int requestCode, Intent resultIntent) {
        super.onResult(requestCode, resultIntent);
        //接收requestCode == 0的返回的数据
        if (requestCode == 0) {
            int id = resultIntent.getIntParam("ID", -1);//-1为默认值,如果没有传回id的话
            text.setText("回传的数据 id=" + id);
        }
    }

返回数据

		//第三种导航方式,跳转到同一page内并返回数据
        //返回数据(按返回键时有效)
        Intent intent1 = new Intent();
        intent1.setParam("ID", 123);
        setResult(intent1);
        //自动返回上一页
        //terminate();

注:
第二种和第三种导航方式可以结合成跳转到同一page内携带数据并返回数据

不同Page间导航

不同Page中的AbilitySlice相互不可见,所以不能通过present()和presentForResult()方法直接导航。AbilitySlice作为Page的内部单元,以Action的形式向外暴露,因此可以通过配置Intent的Action导航到目标AbilitySlice。
Page间的导航可以使用startAbility()或startAbilityForResult()方法,获得返回结果的回调为onAbilityResult()。在Ability中调用setResult()可以设置返回结果。

根据Ability的全称启动应用
		Button button5 = (Button) findComponentById(ResourceTable.Id_button5);
        button5.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                //根据Ability的全称启动应用,通过Intent来跳转
                Intent intent1 = new Intent();
                //指定待启动FA的bundleName和abilityName
                //通过Intent中的OperationBuilder类构造operation对象
                //指定设备标识(空串表示当前设备)、应用包名、Ability名称
                Operation operation = new Intent.OperationBuilder()
                        //设备id(空串表示当前设备)
                        .withDeviceId("")
                        //应用的包名 表示包描述。
                        //如果在Intent中同时指定了BundleName和AbilityName,则Intent可以直接匹配到指定的Ability。
                        //如果未同时指定BundleName和AbilityName,则根据Operation中的其他属性来启动应用。
                        .withBundleName("org.example.harmonypageabilitydemo")
                        //跳转目标的路径名 通常是包名+类名 或者 .+类名
                        //表示待启动的Ability名称。
                        .withAbilityName("org.example.harmonypageabilitydemo.SecondAbility")
                        //.withAbilityName(".SecondAbility")
                        .build();
                //设置操作方式 把operation设置到intent中
                intent1.setOperation(operation);
                //通过AbilitySlice的startAbility接口实现启动另一个页面
                startAbility(intent1);
                //导航的目标Ability可以在其onStart()回调的参数中获得Intent对象
            }
        });
根据Operation的其他属性启动应用

也就是指定另一个page中的AbilitySlice的action值
withAction的值"action.second"已经在前节的AbilitySlice路由配置用配置过了。

Button button4 = (Button) findComponentById(ResourceTable.Id_button4);
        button4.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                Intent intent1 = new Intent();
                Operation operation = new Intent.OperationBuilder()
                        //指定另一个page中的AbilitySlice的action值
                        .withAction("action.second")
                        .build();
                intent1.setOperation(operation);
                startAbility(intent1);
            }
        });

Intent

提到页面跳转,就不得不提Intent
官方文档:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-intent-0000000000038799
Intent是对象之间传递信息的载体。例如,当一个Ability需要启动另一个Ability时,或者一个AbilitySlice需要导航到另一个AbilitySlice时,可以通过Intent指定启动的目标同时携带相关数据。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EurekaLog 7.5 (18-August-2016) 1)..Important: Installation layout was changed. All packages now have version suffix (e.g. EurekaLogCore240.bpl). No files are copied to \bin folder of IDE. Run-time package (EurekaLogCore) is copied to Windows\System32 folder. Refer to help for more info. 2)....Added: RAD Studio 10.1 Berlin support 3)....Added: IDE F1 help integration (on CHM-based IDEs only, i.e. XE8+) 4)....Added "--el_injectjcl", "--el_createjcl", and "--el_createdbg" command-line options for ecc32/emake to inject JEDI/JCL debug info, create .jdbg file, and create .dbg file (Microsoft debug format). Later is supported when map2dbg.exe tool is placed in \Bin folder of EurekaLog installation (separate download is required) 5)....Added: Exception2HRESULT in EAppDLL to simplify developing DLLs with "DLL" profile 6)....Added: Use ShellExecute option for mailto send method 7)....Added: "Mandatory e-mail only when sending" option 8)....Added: Exception line highlighting in disassember view in EurekaLog exception dialog and Viewer 9)....Added: Detection/logging Delphi objects in disassembly view 10)..Added: Support for multi-monitor info 11)..Added: Support for detection of Windows 10 updates 12)..Added: OS edition detection 13)..Added: "User" and "Session" columns to processes list, processes list is also sorted by session first 14)..Added: Support for showing current user processes only 15)..Added: Expanding environment variables for "Support URL" 16)..Fixed: Range-check error on systems with MBCS ACP 17)..Fixed: 64-bit shared memory manager may not work 18)..Fixed: Possible "Unit XYZ was compiled with a different version of ABC" when using packages 19)..Fixed: FastMM shared MM compatibility 20)..Fixed: Minor bugs in stack tracing (which usually affected stacks for leaks) 21)..Fixed: Rare deadlocks in multi-threaded applications 22)..Fixed: Taking screenshot of minimized window 23)..Fixed: NT service may not log all exceptions 24)..Fixed: SSL port number for Bugzilla 25)..Fixed: Disabling "Activate Exception Filters" option was ignored 26)..Fixed: Missing FTP proxy settings 27)..Fixed: IntraWeb support is updated up to 14.0.64 28)..Fixed: Retrieving some process paths in processes list 29)..Fixed: CPU view rendering in EurekaLog exception dialog and Viewer 30)..Fixed: Some issues in naming threads 31)..Fixed: Removed exported helper _462EE689226340EAA982C5E8307B3F9E function (replaced with mapped file) 32)..Changed: Descriptions of EurekaLog project options now list corresponding property names of TEurekaModuleOptions class. 33)..Changed: Default template of HTML/web dialog now includes call stack by default 34)..Changed: EurekaLog 7 now can be installed over EurekaLog 6 automatically, with no additional actions/tools EurekaLog 7.4 (7.4.0.0), 26-January-2016 1)....Fixed: Performance issue in DLL exports debug information provider 2)....Fixed: Range-check error in Send dialog 3)....Fixed: Possible FPU control word unexpected change 4)....Fixed: JIRA sending to project with no version info 5)....Fixed: Viewer sorting affected by local region settings 6)....Fixed: Exception filters ignore settings for restart/terminate EurekaLog 7.3 Hotfix 2 (7.3.2.0), 20-October-2015 1)....Fixed: Added workaround for codegen bug in Delphi 7 (possibly - other), bug manifests itself as wrong date-time in reports or integer overflows 2)....Fixed: Some MAPI DLLs may not be loaded correctly 3)....Fixed: Handling SEC_I_INCOMPLETE_CREDENTIALS in SSPI code (added searching client certificate) 4)....Fixed: Range-check error when closing WinAPI dialog EurekaLog 7.3 Hotfix 1 (7.3.1.0), 2-October-2015 1)....Fixed: Long startup time on terminal services servers EurekaLog 7.3 (7.3.0.0), 24-September-2015 1)....Added: RAD Studio 10 Seattle support 2)....Added: Performance counters for run-time (internal logging with --el_debug) 3)....Fixed: spawned by ecc32/emake processes now start with the same priority 4)....Fixed: ThreadID = 0 in StandardEurekaNotify 5)....Fixed: Dialog auto-close timer may reset without user input 6)....Fixed: Possible hang when quickly loading/unloading EurekaLog-enabled DLL 7)....Fixed: Possible hang in COM DLLs 8)....Fixed: Removed some unnecessary file system access on startup 9)....Fixed: Possible wrong font size in EurekaLog tools 10)..Fixed: Ignore timeouts from Shell_NotifyIcon 11)..Fixed: Possible failure to handle/process stack overflow exceptions 12)..Changed: VCL/CLX/FMX now will assign Application.OnException handler when low-level hooks are disabled EurekaLog 7.2 Hotfix 6 (7.2.6.0), 14-July-2015 1)....Added: csoCaptureDelphiExceptions option 2)....Fixed: Handling of SECBUFFER_EXTRA in SSPI code 3)....Fixed: Several crashes in sending code for very old Delphi versions 4)....Fixed: Regression (from hotfix 5) crash in some IDEs EurekaLog 7.2 Hotfix 5 (7.2.5.0), 1-July-2015 1)....Added: HKCU\Software\EurekaLab\Viewer\4.0\UI\Statuses registry key to allow status customizations in Viewer 2)....Added: "Disable hang detection under debugger" option 3)....Fixed: Wrong button caption in standalone "Steps to reproduce" dialog 4)....Fixed: Wrong passing of Boolean parameters in JSON (affects JIRA) 5)....Fixed: Wrong sorting of BugID, Count and DateTime columns in Viewer 6)....Fixed: Empty "Count" field/column is now displayed as "1" in Viewer 7)....Fixed: Generic names with "," could not be decoded in Viewer 8)....Fixed: Updated Windows 10 detection for latest builds of Windows 10 9)....Fixed: Sleep and hybernation no longer trigger false-positive "application freeze" 10)..Fixed: Wrong function codes for hooking (affects ISAPI application type) 11)..Fixed: Wrong button caption in "Steps to Reproduce" dialog 12)..Fixed: Crash when taking snapshot of some proccesses by Threads Snapshot tool 13)..Fixed: Minor improvements in leak detection EurekaLog 7.2 Hotfix 4 (7.2.4.0), 10-June-2015 1)....Added "ECC32TradeSpeedForMemory" option - defaults to 0/False, could be changed to 1 via Custom/Manual tab. This option will switch from fast-methods to slower methods, but which take less memory. Use 0 (default) for small projects, use 1 for large projects (if ecc32 runs out of memory). 2)....Added: --el_DisableDebuggerPresent command-line option for compatibility with 3rd party debuggers (AQTime, etc.) 3)....Added: AQTime auto-detect 4)....Fixed: Performance optimizations 5)....Fixed: Windows 8+ App Menu shortcuts 6)....Fixed: Unmangling on x64 EurekaLog 7.2 Hotfix 3 (7.2.3.0), 20-May-2015 1)....Added: Support for token auth in Bugzilla (latest 4.x builds) 2)....Added: Support for API key auth in Bugzilla (5.x) 3)....Added: Support for /EL_DisableMemoryFilter command-line option 4)....Added: Asking e-mail when user switches to "details" from MS Classic without entering e-mail 5)....Fixed: Compatibility issues with older Bugzilla versions (3.x) 6)....Fixed: Passing settings between dialogs 7)....Fixed: "Ask for steps to reproduce" dialog is now DPI-aware 8)....Fixed: Silently ignore and fix invalid values in project options EurekaLog 7.2 Hotfix 2 (7.2.2.0), 30-April-2015 1)....Fixed: Confusing message in Manage tool when using with Trial/Pro 2)....Fixed: Range check error in processes information for x64 machines (affects startup of any EurekaLog-enabled module) 3)....Fixed: Auto-detect personality by project extension if --el_mode switch is missing 4)....Fixed: More details for diagnostic sending 5)....Fixed: Wrong settings for MAP files in C++ Builder 6)....Fixed: Wrong code page was used to decode ANSI bug reports 7)....Fixed: Attaching .PAS files instead of .OBJ in C++ Builder 2006+ Pro/Trial EurekaLog 7.2 Hotfix 1 (7.2.1.0), 3-April-2015 1)....Fixed: Wrong float-str convertion when ThousandSeparator is '.' EurekaLog 7.2 (7.2.0.0), 1-April-2015 1)....Important: TEurekaLogV7 component was renamed to TEurekaLogEvents. Please, update your projects by renaming or recreating the component 2)....Important: File layout was changed for BDS 2006+. Delphi and C++ Builder files are now located in StudioNum folders instead of old DelphiNum and CBuilderNum folders. Update your search paths if needed 3)....Added: Major improvements in DumpAllocationsToFile function (EMemLeaks unit) 4)....Added: MemLeaksSetParentBlock, MemLeaksOwn, EurekaTryGetMem functions (EMemLeaks unit) 5)....Added: Improvements for call stack of dynarrays/strings allocations (leaks) 6)....Added: "Elem size" when reporting leaks in dynarrays 7)....Added: Streaming unpacked debug info into temporal files instead of memory - this greatly reduces run-time application memory usage at cost of slightly slower exception processing. This also reduces memory footprint for ecc32/emake 8)....Added: Showing call stacks for 2 new types of fatal memory errors 9)....Added: EMemLeaks._ReserveOutOfMemory to control reserve size of out of memory errors (default is 50 Mb) 10)..Added: "MinLeaksLimitObjs" option (EMemLeaks unit) 11)..Added: Fatal memory problem now pauses all threads in application 12)..Added: Fatal memory problem now change thread name (to simplify debugging) 13)..Added: boPauseELThreads and boDoNotPauseELServiceThread options (currently not visible in UI) 14)..Added: Support for texts collections out of default path 15)..Added: Support for relative file paths to text collections and external settings 16)..Added: Support for environment variables in project option's paths 17)..Added: Support for relative file paths and environment variables for events and various module paths 18)..Added: Logging in Manage tool 19)..Added: Windows 10 version detection 20)..Added: Stack overflow tracing 21)..Added: Major improvements in removal of recursive areas from call stack 22)..Added: Statistics collection 23)..Added: Support for uploading multiple files in JIRA 24)..Added: EResLeaks improvements (new funcs: ResourceAdd, ResourceDelete, ResourceName; support for realloc-like functions) 25)..Fixed: Added workaround for bug in JIRA 5.x 26)..Fixed: Rare EurekaLog internal error 27)..Fixed: Ignored unhandled thread exceptions (when EurekaLog is disabled) now triggers default OS processing (WER) 28)..Fixed: Irnored exceptions (via per-exception/events) now bring up default RTL handler 29)..Fixed: Format error in Viewer 30)..Fixed: Leak of EurekaLog exception information object 31)..Fixed: Wrong chaining exceptions inside GetMem/FreeMem 32)..Fixed: Memory leak after low-level unhook of function 33)..Fixed: Re-parenting after ReallocMem 34)..Fixed: Editing SMTP server options 35)..Fixed: SMTP server not using real user e-mail in FROM field 36)..Fixed: Some multi-threading crashes 37)..Fixed: Fixed crashes in Manage tool 38)..Fixed: Range-check error in Viewer 39)..Fixed: EurekaLog error dialog appearing under other windows 40)..Fixed: AV when parsing TDS (emake/C++ Builder specific) 41)..Fixed: Unable to build call stacks for other threads due to insufficient rights 42)..Fixed: Version checks for BugZilla and JIRA 43)..Fixed: Not catching out-of-module AVs when "Capture exceptions only from current module" option is checked 44)..Fixed: Checking for remaining exceptions at shutdown (C++ Builder specific, AcquireExceptionObject returns wrong info) 45)..Fixed: "get call stack of ... threads" / "suspend ... threads" options (avoid rare multithreading race conditions) 46)..Fixed: Crash when naming thread without EurekaLog thread info 47)..Fixed: Detection of immediate caller for memory funcs 48)..Fixed: Non-working Assign for options 49)..Fixed: Handling of explicitly chained exceptions 50)..Fixed: Various exception/threading fixes for MS debug provider 51)..Fixed: Processing hardware unhandled exceptions (QC #55007) 52)..Fixed: Unchecking dialog options when export/import 53)..Fixed: BSTR leak 54)..Fixed: JIRA decimal separator bug 55)..Changed: Now unhandled exceptions will be handled by EurekaLog even if EurekaLog is disabled in the thread - only global EurekaLog-enabled status is respected 56)..Changed: Viewer version now matches version of EurekaLog 57)..Changed: DeleteServiceFilesOption now always False by default 58)..Changed: Speed improvements for known memory leaks (reserved leaks) 59)..Changed: Improved logging for sending 60)..Changed: Switching to detailed mode without entering (mandatory) e-mail: now EL will not block this 61)..Changed: .ToString for exception info now uses compact stack formatter 62)..Removed: Custom field editor (replaced it with link to "Custom" page) 63)..Removed: EurekaLog 7 no longer could be installed over EurekaLog 6. Manage tool from EurekaLog 7 will no longer work with EurekaLog 6. EurekaLog 7.1 update 1 (7.1.1.0), 19-October-2014 1)....Added: "Send in separated thread" option 2)....Added: Hang detection will now use Wait Chain Traversal (WCT) on Vista+ systems to detect deadlocks in any EurekaLog-enabled threads 3)....Added: OS install language and UI language fields in bug report 4)....Fixed: Viewer is not able to decrypt reports with generics 5)....Fixed: EVariantTypeCastError in Viewer when changing status of some bug reports 6)....Fixed: EcxInvalidDataControllerOperation in Viewer 7)....Fixed: Stack overflow at run-time for certain combination of project options 8)....Fixed: BMP re-draw bug in UI dialogs 9)....Fixed: Rogue "corrupted" error message for valid ZIPs of certain structure 10)..Fixed: Various range check errors in Viewer 11)..Fixed: Possible encoding errors for non-ASCII reports in Viewer on certain environments 12)..Fixed: Wrong count in Viewer when importing reports without proper "count" field 13)..Fixed: Duplicate reports may appear in bug report file when "Do not save duplicate errors" option is checked 14)..Fixed: False-positive detection of some virtual machines 15)..Fixed: Processing of exceptions from message handlers during message pumping cycle inside exception dialogs 16)..Fixed: Access Violation if exception dialog was terminated by exception 17)..Fixed: Hardware exceptions from unit's initialization/finalization may be unprocessed 18)..Changed: "VIEW" action for Viewer now will open ALL bug reports inside bug report file; reports will not be merged by BugID. "IMPORT" action remains the same: duplicate reports are merged, "count" is increased 19)..Changed: Charset field in bug report now shows both charset and code page EurekaLog 7.1 (7.1.0.00), 23-September-2014 1)....Added: XE7 support 2)....Added: XE6 support 3)....Added: New DLL demo 4)....Added: Custom profiles are now shown in "Application type" combo-box 5)....Added: Non-empty "steps to reproduce" will be added to existing bug tracker issues with empty "steps to reproduce" 6)....Added: Support for custom fields in FogBugz (API version 8 and above) 7)....Added: Support for unsequenced line numbers in PDB/DBG files (--el_source switch) 8)....Fixed: XML bug report were generated wrong 9)....Fixed: Strip relocations code for Win64 10)..Fixed: EurekaLog conditional symbols removed improperly when deactivating EurekaLog 11)..Fixed: Sending reports to non-default port numbers (affects web-based methods) 12)..Fixed: SSL validation check may reject valid SSL certificate (SMTP Client/Server) 13)..Fixed: SSL errors may be not reported 14)..Fixed: Viewer did not consider empty bug reports as corrupted 15)..Fixed: "DLL" profile now can be used with packages properly 16)..Fixed: Few rare memory leaks 17)..Fixed: Possible deadlock when using MS debug info provider 18)..Fixed: C++ Builder project files was saved incorrectly (RAD Studio 2007+) 19)..Fixed: "Show restart checkbox after N errors" counts handled exceptions 20)..Fixed: IDE expert's DPR parser (added support for multi-part idents) 21)..Fixed: Rare access violation in hook code 22)..Fixed: Thread handle leaks (added _NotifyThreadGone/_CleanupFinishedThreads functions to be called manually - only when low-level hooks are not installed) 23)..Fixed: EurekaLog's installer hang 24)..Fixed: Bug in object/class validation 25)..Fixed: Bug when using TThreadEx without EurekaLog 26)..Fixed: Leaks detection may not work with certain combination of options 27)..Fixed: Deadlock in some cases when using EurekaLog threading option set to "enabled in RTL threads, disabled in Windows threads". 28)..Changed: TEurekaExceptionInfo.CallStack will be nil until exception is actually raised 29)..Changed: FogBugz and BugZilla: changed bugs identification within project (to allow two bugs exists with same BugID in different projects) 30)..Changed: Blocked manual creation/destruction of ExceptionManager class and EurekaExceptionInfo 31)..Changed: ECC32/EMAKE runs from IDE without changing priority, added ECC32PriorityClass option 32)..Improved: Minor help and text improvements EurekaLog 7.0.07 Hotfix 2 (7.0.7.2), 11-December-2013 1)....Fixed: Delphi compiler code generation bug (Delphi 2007 and below) 2)....Fixed: Code hooks may rarely be set incorrectly (code stub relocation fails) 3)....Fixed: Win64 call stacks functions now work more similar to 32 bit call stacks EurekaLog 7.0.07 Hotfix 1 (7.0.7.1), 2-December-2013 1)....Added: Alternative caption for e-mail input control when e-mail is mandatory 2)....Fixed: Rare range check error in WinAPI visual dialogs 3)....Fixed: Wrong error detection for OnExceptionError event 4)....Fixed: Wrong TResponce processing 5)....Fixed: Problems with encrypted call stack decoding 6)....Fixed: OnPasswordRequest event may have no effect EurekaLog 7.0.07 (7.0.7.0), 25-November-2013 1)....Added: Ability to use Assign between call stack and TStrings 2)....Added: 64-bit disassembler 3)....Added: Support for variables and relative file paths in "Additional Files" send option 4)....Added: --el_source switch for ecc32/emake compilers 5)....Added: support for post-processing non-Embarcadero executables 6)....Added: EOTL.pas unit for better OmniThreadLibrary integration 7)....Added: RAD Studio XE5 support 8)....Added: New "Capture call stacks of EurekaLog-enabled threads" option 9)....Added: "Deferred call stacks" option for 64-bit 10)..Added: Copy report to clipboard now copies both report text and report file 11)..Added: "AttachBothXMLAndELReports" option to include both .elx and .el files into bug report 12)..Added: EMemLeaks.MemLeaksErrorsToIgnore option to exclude certain memory errors from being considered as fatal 13)..Added: Call stack with any encrypted entry will be fully encrypted now 14)..Added: Option to exclude certain memory errors from being considered as fatal (EMemLeaks.MemLeaksErrorsToIgnore) 15)..Added: New "HTTP Error Code" option for all web-based dialogs (CGI, ISAPI, etc.) 16)..Added: Support for Unicode in Simple MAPI send method (requires Windows 8 or latest Microsoft Office) 17)..Added: New value for call stack detalization option (show any addresses, including those not belonging to any executable module) 18)..Fixed: Wrong JSON escaping for strings (affects JIRA send method) 19)..Fixed: Range-check error in Viewer when viewing bug reports with high addresses 20)..Fixed: Selecting Win32 service application type is no longer resets to custom/unsupported 21)..Fixed: Possible hang when testing dialogs from EurekaLog project options dialog 22)..Fixed: Rare resetting of some options when saving .eof file 23)..Fixed: Exception pointer could be removed from call stack due to debug details filtering 24)..Fixed: Rare case when LastThreadException returned nil while there was active thread exception 25)..Fixed: Rare case when ShowLastThreadException do nothing 26)..Fixed: Improved compatibility for OmniThreadLibrary and AsyncCalls 27)..Fixed: Included fix for QC #72147 28)..Fixed: 64-bit MS Debug Info Provider (please, re-setup cache options using configuration dialog) 29)..Fixed: "Deferred call stacks" option failed to capture call stack when exception is re-raised between threads 30)..Fixed: "Deferred call stacks" option may produce cutted call stack in rare cases 31)..Fixed: Several minor call stacks improvements and optimizations 32)..Fixed: Several 64-bit Pointer Integer convertion issues 33)..Fixed: Multi-threading deadlock issue 34)..Fixed: Black screenshots in 64 bit applications 35)..Fixed: Copying to clipboard hot-key was registered globally 36)..Fixed: Shell (mailto) send method may fail (64 bit) 37)..Fixed: Possible wrong file paths for attaches in (S)MAPI send methods 38)..Fixed: Environment variables were not expanded in MAPI send method 39)..Fixed: (non-Unicode IDE) EurekaLog is not activated when application started from folder with Unicode characters 40)..Fixed: Encrypted call stacks may be encrypted partially by EurekaLog Viewer in rare cases 41)..Fixed: Crash when sending leak report with visual progress dialog (only some IDEs are affected) 42)..Fixed: ecc32/emake could not see external configuration file with the same name as project (e.g. Project1.eof for Project1.dpr) 43)..Fixed: Added missed RTL implementation for ExternalProps in Delphi 6 (affects Mantis sending) 44)..Fixed: IDE crash when switching to threads window 45)..Changed: Removed temporal solution which was used before option to defer call stack creation was introduced 46)..Changed: "Default EurekaLog state in new threads" option is changed from Boolean flag into enum. You need to re-setup this option 47)..Changed: Disable EurekaLog for thread when creating call stack or handle exception - this increases stability and performance 48)..Changed: LastException property is remove from exception manager as not thread safe. Use LastThreadException property instead 49)..Changed: Lock/Unlock from thread manager and exception manager are removed to avoid deadlocks 50)..Changed: ThreadsSnapshot tool now tries to capture call stack without injecting DLL 51)..Changed: Build events now runs with CREATE_NO_WINDOW flag (console window is hidden) 52)..Improved: More articles in help EurekaLog 7.0.06 (7.0.6.0), 1-June-2013 1)....Added: Experimental 64 bit C++ Builder support 2)....Added: New tab in EurekaLog project options: "External tools" 3)....Added: Option to catch all IDE errors (to debug your own IDE packages) 4)....Added: Option to catch only exceptions from current module 5)....Added: Option to defer building call stack 6)....Added: RAD Studio XE4 support 7)....Added: Support for AppWave 8)....Fixed: Fixed event handlers declarations for the EurekaLog component 9)....Fixed: Infinite recursive calls when using ToString from EndReport event handler 10)..Fixed: UPX compatibility issue 11)..Fixed: Range check errors for system error codes 12)..Fixed: Rare IDE stack overflow 13)..Fixed: JIRA unit was not added automatically 14)..Fixed: EurekaLog no longer tries to check for leaks when memory manager filter is disabled 15)..Fixed: Possible deadlock on shutdown with freeze checks active 16)..Fixed: Issues with settings dialog and Win32 Service application type 17)..Fixed: ThreadSnapshot tool was not able to take snapshots of Win64 processes 18)..Fixed: WCT is disabled for leaks 19)..Fixed: TContext declarations for Win64 20)..Fixed: Check for updates now correctly sets time of last check 21)..Fixed: (Win64) Several Pointer Integer convertion errors 22)..Fixed: Internal error when exception info object was deleted while it was still used by SysUtils exception object 23)..Fixed: Semeral problems with "EurekaLog look & feel" style for EurekaLog error dialog 24)..Fixed: Using text collection resets exception filters 25)..Fixed: Rare access violation if registering event handlers is placed too early 26)..Fixed: SMTP RFC date formatting 27)..Fixed: Rare empty call stack bug 28)..Fixed: Hang detection was not working if EurekaLog was disabled in threads 29)..Fixed: AV for double-free TEncoding 30)..Changed: ecc32/emake no longer alters arguments for dcc32/make unless new options --el_add_default_options is specified 31)..Changed: Save/load options methods was moved to TEurekaModuleOptions class 32)..Changed: Saving options to EOF file now adds hidden options and removes obsolete options (only when compatibility mode is off) 33)..Changed: Compiling installed packages now silently ignores EurekaLog instead of showing "File is in use" error message 34)..Improved: More readable disk/memory sizes in bug reports 35)..Improved: More descriptive settings dialog when using external configuration 36)..Improved: ThreadSnapshot tool now aquired DEBUG priviledge for taking snapshot. This allows it to bypass security access checks when opening target process. 37)..Improved: Changed BugID default generation to include error code for OS errors and error message for DB errors 38)..Improved: Mantis API (WSDL) was updated to the latest version (1.2.14) 39)..Improved: IntraWeb compatibility (old and new versions) 40)..Improved: COM applications compatibility 41)..Improved: Build events now accept shell commands 42)..Improved: More articles in help EurekaLog 7.0.05 (7.0.5.0), 7-February-2013 1)....Added: JIRA support 2)....Added: Virtual machine detection (new field in bug reports) 3)....Fixed: "Use Main Module options" option was loading empty options for some cases 4)....Fixed: Wrong record declarations for Simple MAPI on Win64 5)....Fixed: Performance issues with batch module options updating 6)....Fixed: Wrong leaks report with both MemLeaks/ResLeaks options active 7)....Fixed: Wrong info for nested exceptions in some cases 8)....Fixed: AV under debugger for Win64 (added support for _TExitDllException) 9)....Fixed: Wrong record declarations for process/thread info on Win64 10)..Fixed: Support for FinalBuilder on XE2/XE3 with spaces in file paths 11)..Fixed: Rare double-free of module information (ModuleInfoList) 12)..Fixed: Rare External Exception C000071C on shutdown (only under debuggger) 13)..Fixed: Added large addresses support in Viewer 14)..Fixed: Counter options in memory leaks category is now working properly 15)..Fixed: Rare range-check error in TEurekaModulesList.AddModuleFromFileName 16)..Fixed: FTP force directories dead lock 17)..Fixed: Fixed wrong index being used when clearing compatibility mode (EurekaLog project options dialog) 18)..Fixed: Default thread state do not affect main thread now 19)..Fixed: Sometimes wrong thread may be used when altering EurekaLog active state for external thread 20)..Fixed: Wrong DNS lookup on ANSI 21)..Fixed: Problems with IDE expert and projects on network paths 22)..Fixed: Added support for arguments in URLs (HTTP sending) 23)..Fixed: Possible deadlock in multithreaded applications 24)..Fixed: Problems with unicode characters in project files on non-Unicode IDEs 25)..Fixed: Infinite recursive calls when using ToString from EndReport event handler 26)..Fixed: Win64 GetCaller now returns pointer to call instruction, not return address 27)..Improved: Standalone Editor do not force save/load folder by default 28)..Improved: DLL profile now can use additional application type hooks automatically 29)..Improved: EurekaLog now able to work with read-only projects (see help for more info) EurekaLog 7.0.04 (7.0.4.0), 2-December-2012 1)....Added: Support for nested exceptions in DLLs 2)....Fixed: Options bug in EurekaLogSendEmail function 3)....Fixed: Weird behaviour for steps to reproduce and custom fields 4)....Fixed: Installation for single personality (BDS) 5)....Fixed: Range check error in EModules 6)....Fixed: Bug in exception destroy hook 7)....Fixed: OnExceptionNotify event is no longer called for handled exceptions without option checked 8)....Fixed: DEP checks on startup no longer cause exception 9)....Fixed: Invalid declaration for MS Debug API 10)..Fixed: OLE mode change error for "Test" send button 11)..Fixed: Fixes for multiply loading of the same DLL 12)..Fixed: Removed PNG compression from icons (tools) 13)..Fixed: Range-check error in dialogs with EurekaLog style enabled 14)..Fixed: Send progress dialog may keep busy forever processing window messages (message flood from rapid application GUI updates) 15)..Fixed: Thread pausing options now work correctly 16)..Improved: New features in exception filters - marking exceptions as "expected", filtering by properties (RTTI) 17)..Improved: Recovery from memory errors without debugging memory manager 18)..Improved: Viewer's password edit now hides password with asterisks 19)..Updated: Changed names of .inc files to avoid name conflicts with other libraries 20)..Updated: Help EurekaLog 7.0.03 (7.0.3.0), 6-October-2012 1)....Fixed: Removed some consts keywords for event handlers, so now C++ Builder can alter arguments (this change may require you to adjust your custom code) 2)....Fixed: Fallback code for false-positive results on memory probing 3)....Fixed: Range check errors in SSL/TLS implementation 4)....Fixed: "EurekaLog is not active" error message during send testing 5)....Fixed: Incorrect memory probing when DEP is off (old systems) 6)....Fixed: Installation of 64-bit BPLs 7)....Fixed: Dialog preview 8)....Fixed: Win64 fixes for XE3 9)....Fixed: Support for project groups (mixed project types) 10)..Fixed: Windows 2000 hooks compatibility 11)..Fixed: mailto double quotes escaping 12)..Fixed: Simple MAPI WOW compatibility 13)..Fixed: Simple MAPI modal issues 14)..Fixed: Various range check errors 15)..Changed: Removed minor version number from program group name 16)..Updated: Help EurekaLog 7.0.02 hot-fix 1 (7.0.2.1), 12-September-2012 1)....Fixed: Range check error in Viewer 2)....Fixed: Bug in hooking code EurekaLog 7.0.02 (7.0.2.0), 11-September-2012 1)....Added: Improved memory problems detection 2)....Added: Minor IDE Expert usability improvements 3)....Added: Auto-size feature for detailed error dialog 4)....Added: Workaround for QC #106935 5)....Added: Workaround for bug in InvokeRegistry (SOAP/Mantis) 6)....Fixed: Nested OS exceptions 7)....Fixed: Multiply Win64 fixes 8)....Fixed: Compatibility mode fixes 9)....Fixed: Altered behaviour of "Add BugID/Date/ComputerName" options 10)..Fixed: Blank screenshots 11)..Fixed: Check file for corruptions 12)..Fixed: Viewer is unable to decrypt certain bug reports 13)..Fixed: Internal DoNoTouch option now works for post-processing and condtionals 14)..Fixed: Possible out of memory error for "Do not store class/procedure names" option 15)..Fixed: EurekaLog did not properly install itself when there is only Delphi installed, but no C++ Builder of the same version (or visa versa) 16)..Fixed: Wrong argument for OnRaise event 17)..Fixed: Handling memory errors in initialization/finalization sections 18)..Fixed: Updating steps to reproduce and user e-mail in bug report 19)..Fixed: Proper Success/Failure for some errors during SMTP send 20)..Added: Workaround for wrong GUI fonts 21)..Added: Delphi XE3 support 22)..Added: Individual options for each exception EurekaLog 7.0.01 (7.0.1.0), 28-June-2012 1)....Added: New "Modal window" option (MS Classic and EurekaLog dialogs) 2)....Added: New "Owned window" option (MS Classic and EurekaLog dialogs) 3)....Added: New "Catch EurekaLog IDE Expert errors" option 4)....Added: Backup memory manager to recover from critical errors 5)....Added: Alternative methods to provide additional features when memory filter is not set 6)....Fixed: Contains fixes from hotfixes 1-3 7)....Fixed: Performance improvements 8)....Fixed: Improved IDE Expert's speed, stability and compatibility with other 3rd party extensions 9)....Fixed: MS Classic dialog size adjustments for large "click here" translations 10)..Fixed: Fixed resetting few EurekaLog project options to defaults 11)..Fixed: Multiplying exception filters when options are assigned (for example: when switching to/from "Custom" page in project options) 12)..Fixed: (Compatibility mode) Fixed send options merging 13)..Fixed: Updated help EurekaLog 7.0 hot-fix 3 (7.0.0.273), 20-June-2012 --------------------------- 1)....Fixed: ERangeError in EResLeaks (THandle Integer) 2)....Fixed: C++ Builder breakpoints for large projects 3)....Fixed: Help (updates policy changed) 4)....Fixed: Text collections applying 5)....Fixed: Build events are now called for unlocked file 6)....Fixed: Proper handling of C++ Builder project options files from Delphi code (settings editor and IDE expert) 7)....Fixed: Terminate/Checked sub-option for MS Classic dialog 8)....Fixed: Confusing message for already post-processed executables 9)....Fixed: Access violation for some EurekaLog IDE menu items when no project was loaded 10)..Fixed: Invoking help for "Variables" window 11)..Fixed: EurekaLog Viewer version info 12)..Fixed: Events in components 13)..Added: Retry option for "Sorry, you must close all running IDE instances before installation" 14)..Added: Italian translation 15)..Added: Actual change log is now included into installer 16)..Added: Even more setup logging 17)..Added: New help articles (recompilation and manual installation) EurekaLog 7.0 hot-fix 2 (7.0.0.261), 10-June-2012 --------------------------- 1)....Fixed: Wrong version info reporting to IDE 2)....Added: Workaround for Delphi 2005 TListView bug 3)....Added: Workaround for possible invalid FPU state in exception handlers 4)....Added: Missed declarations for ExceptionLog (compatibility mode) 5)....Fixed: Work for unsaved projects 6)....Added: Escaping for '--' in options (confuses IDE's XML parsing) 7)....Added: Storing thread's class/name in call stack for terminated threads 8)....Added: More setup logging 9)....Fixed: Help (broken links) 10)..Added: "Upgrade to EurekaLog 7" help topic 11)..Fixed: Clean up installed files EurekaLog 7.0 hot-fix 1 (7.0.0.256), 6-June-2012 --------------------------- 1)....Fixed: Invalid Format() arguments in ELogBuilder. EurekaLog 7.0, 1-June-2012 --------------------------- 1)....Improved: Main change - EurekaLog's core was rewritten (refactored) to allow more easy modification and remove hacks. 2)....Improved: New plugin-like architecture now allows you to exclude unused code. 3)....Improved: New plugin-like architecture now allows you to easily extends EurekaLog. 4)....Improved: Greatly extended documentation. 5)....Improved: Installer is now localized. 6)....Improved: Greatly speed ups creation of minimal bug report (with most information disabled). 7)....Changed: EurekaLog's root IDE menu was relocated to under Tools and extended with new items. 8)....Added: New examples. 9)....Added: New tools (address lookup, error lookup, threads snapshot, standalone settings editor). 10)..Added: Support for DBG/PDB formats of debug information (including symbol server support and auto-downloading). 11)..Added: Support for madExcept debug information (experimental). 12)..Added: WER (Windows Error Reporting) support. 13)..Added: Full unicode support. 14)..Added: Professional and Trial editions: added source code (interface sections only) 15)..Improved: Dialogs - new options and new customization possibilities: 16)..Added: All GUI dialogs: ability to test dialog directly from configuration dialog by displaying a sample window with currently specified settings. 17)..Improved: All GUI dialogs: dialogs are DPI-awared now (auto-scale for different DPI). 18)..Added: MessageBox dialog: added detailed mode (shows a compact call stack). 19)..Added: MessageBox dialog: added ability for asking a send consent. 20)..Added: MessageBox dialog: added support to switch to "native" message box for application. 21)..Added: MS Classic dialog: added control over "user e-mail" edit's visibility. 22)..Added: MS Classic dialog: added ability to personalize dialog view with application's name and icon. 23)..Added: MS Classic dialog: added ability to show terminate/restart checkbox initially checked. 24)..Added: EurekaLog dialog: added ability to personalize dialog view with application's name and icon. 25)..Added: EurekaLog dialog: added ability to show terminate/restart checkbox initially checked. 26)..Added: EurekaLog dialog: added ability to switch back to non-detailed view. 27)..Added: WEB dialog: added new tags to customize bug report page. 28)..Improved: WEB dialog: improved support for unicode and charset. 29)..Added: New dialog type: RTL dialog. 30)..Added: New dialog type: console output. 31)..Added: New dialog type: system logging. 32)..Added: New dialog type: Windows Error Reporting. 33)..Improved: Sending - new options and new customization possibilities: 34)..Added: All send methods: added ability to setup multiply send methods. 35)..Added: All send methods: added ability to change send method order. 36)..Added: All send methods: added separate settings for each send method. 37)..Added: All send methods: ability to test send method directly from configuration dialog by sending a demo bug report. 38)..Added: SMTP client send method: added SSL support. 39)..Added: SMTP client send method: added TLS support. 40)..Added: SMTP client send method: added option for using real e-mail address. 41)..Added: SMTP server send method: added option for using real e-mail address. 42)..Added: HTTP upload send method: added support for custom backward feedback messages. 43)..Added: FTP upload send method: added creating folders on FTP (like remote ForceDirectories). 44)..Added: Mantis send method: added API support (MantisConnect, out-of-the-box since Mantis 1.1.0, available as add-on for previous versions). 45)..Added: Mantis send method: added support for custom "Count" field. 46)..Added: Mantis send method: added options for controlling duplicates. 47)..Added: Mantis send method: added support for SSL/TLS. 48)..Added: FogBugz send method: added API support (out-of-the-box since ForBugz 7, available as add-on for FogBugz 6). 49)..Added: FogBugz send method: EurekaLog will update "Occurrences" field (count of bugs). 50)..Added: FogBugz send method: EurekaLog will respect "Stop reporting" option (BugzScout's setting). 51)..Added: FogBugz send method: EurekaLog will respect "Scout message" option (BugzScout's setting). 52)..Added: FogBugz send method: EurekaLog will store client's e-mail as issue's correspondent. 53)..Added: FogBugz send method: added options for controlling duplicates. 54)..Added: FogBugz send method: added support for "Area" field. 55)..Added: FogBugz send method: added support for SSL/TLS. 56)..Added: BugZilla send method: added API support. 57)..Added: BugZilla send method: added support for custom "Count" field. 58)..Added: BugZilla send method: added options for controlling duplicates. 59)..Added: BugZilla send method: added support for SSL/TLS. 60)..Added: New send method: Shell (mailto protocol). 61)..Added: New send method: extended MAPI. 62)..Added: Support for separate code and debug info injection. 63)..Added: Ability to use custom units before EurekaLog's units. 64)..Added: Support for external configuration file in IDE expert. 65)..Added: Now EurekaLog stores only those project options which are different from defaults (to save disk space and reduce noise in project file). 66)..Added: Now EurekaLog stores project options sorted (alphabet order). 67)..Added: Separate settings for saving modules and processes lists to bug report. 68)..Added: Support for taking screenshots of multiply monitors. 69)..Added: More screenshot customization options. 70)..Added: More control over bug report's file names. 71)..Added: New environment variables. 72)..Added: Deleting .map file after compilation. 73)..Added: Support for different .dpr and .dproj file names. 74)..Improved: memory leaks detection feature - new options and new customization possibilities: 75)..Added: Ability to track memory problems without activation of leaks checking. 76)..Added: Support for sharing memory manager. 77)..Added: Support for tracking leaks in applications built with run-time packages. 78)..Added: Option to zero-fill freed memory. 79)..Added: Option to enable leaks detection only when running under debugger. 80)..Added: Option for manual activation control for leaks detection (via command-line switches). 81)..Added: Option to select stack tracing method for memory problems. 82)..Added: Option to trigger memory leak reporting only for large leaked memory's size. 83)..Added: Option to control limit of number of reported leak. 84)..Added: CheckHeap function to force check of heap's consistency. 85)..Added: DumpAllocationsToFile function to save information about allocated memory to log file. 86)..Added: Registered leaks feature. 87)..Added: Run-time control over memory leak registering. 88)..Added: New recognized leak type: String (both ANSI and Unicode are supported). 89)..Added: Memory features support for C++ Builder. 90)..Added: Resource leaks detection feature. 91)..Improved: Compilation speed increased. 92)..Added: Support for generics in debug information. 93)..Added: Chained/nested exceptions support. 94)..Added: Wait Chain Traversal support. 95)..Added: Support for named threads. 96)..Added: Additional information for threads in call stack. 97)..Improved: EurekaLog Viewer Tool: 98)..Added: Now Viewer has its own help file 99)..Added: Viewer now supports a FireBird based database on local file or remote server. 100).Added: You can have more that one user account for FireBird based database. 101).Added: Viewer now can be launched in View mode (Viewer can be configured to any DB or View mode). 102).Added: Viewer's database now supports storing files, associated with the report (you can also add and remove files manually). 103).Added: Viewer supports "Import" and "View" commands for report files. 104).Improved: Extended support for more log formats (XML, packed ELF, etc). 105).Added: Columns in report's list now can be configured (you can hide and show them). 106).Added: There are a plenty of new columns added to report's list. 107).Added: Ability of auto-download reports from e-mail account. 108).Improved: printing - now you can print the entire report (including screenshots). Old behaviour of printing just one tab (call stack only, for example) also remains. 109).Added: Viewer can now have more that one run-time instance . 110).Added: File import status dialog is now configurable (you can disable it, if you want to). 111).Added: There is a preview area for screenshots, available in reports. 112).Improved: Now Viewer is more Vista-friendly (i.e. file associations are managed in HKCU, rather that in HKLM, storing configuration in user's Application Data, etc, etc). 113).Added: Report's list now supports multi-select, so operations can be performed on many reports at time. 114).Added: There are plenty of new command line abilities, like specifying several files and new switches. 115).Improved: Bunch of minor changes and improvements. WARNING: -------- There are many changes in this release. See the "Changed from the old 6.x version" help topic for further information! EurekaLog 7 also have "EurekaLog 6 backward compatibility mode". Please, refer to help file for more information. We also have the detailed "Upgrade guide" in our help system.
包含如下操作系统版本 FreeBSD Linux Solaris Windows 分别对应如下目录 MegaCLI for DOS MegaCLI for Linux MegaCLI for Solaris MegaCLI for FreeBSD MegaCLI for Windows ********************************************* LSI Corp. MegaRAID MegaCLI Release ********************************************* Release Date: 01/20/14 ======================== Supported Controllers ================== MegaRAID SAS 9270-8i MegaRAID SAS 9271-4i MegaRAID SAS 9271-8i MegaRAID SAS 9271-8iCC MegaRAID SAS 9286-8e MegaRAID SAS 9286CV-8e MegaRAID SAS 9286CV-8eCC MegaRAID SAS 9265-8i MegaRAID SAS 9285-8e MegaRAID SAS 9240-4i MegaRAID SAS 9240-8i MegaRAID SAS 9260-4i MegaRAID SAS 9260CV-4i MegaRAID SAS 9260-8i MegaRAID SAS 9260CV-8i MegaRAID SAS 9260DE-8i MegaRAID SAS 9261-8i MegaRAID SAS 9280-4i4e MegaRAID SAS 9280-8e MegaRAID SAS 9280DE-8e MegaRAID SAS 9280-24i4e MegaRAID SAS 9280-16i4e MegaRAID SAS 9260-16i MegaRAID SAS 9266-4i MegaRAID SAS 9266-8i MegaRAID SAS 9285CV-8e MegaRAID SAS 8704ELP MegaRAID SAS 8704EM2 MegaRAID SAS 8708ELP MegaRAID SAS 8708EM2 MegaRAID SAS 8880EM2 MegaRAID SAS 8888ELP MegaRAID SAS 8308ELP* MegaRAID SAS 8344ELP* MegaRAID SAS 84016E* MegaRAID SAS 8408E* MegaRAID SAS 8480E* MegaRAID SATA 300-8ELP* *These older controllers should work but have not been tested. Component: ========= SAS MegaRAID MegaCLI Release Date: 01/20/14 Version Numbers: MegaCLI =============== =========== Current Version 8.07.14 Previous Version 8.07.07 Contents: ========= This package contains MegaCLI for the following OSes: DOS FreeBSD Linux Solaris Windows Use the MegaCLI components from the folder that matches your OS. Enhancements and Bug Fixes ========================== SCGCQ00393585 (DFCT) - VD creation from MegaCli fails on Solaris Sparc 10u9 operating system. SCGCQ00413883 (DFCT) - "megacli -version -pd -a0" Segmentation Faults if PDs are missing SCGCQ00445356 (CSET) - Megacli crashes after invoking any command in SGI system with one 9280-8e and 2 quad port qlogic FC cards. SCGCQ
使用方法: 1、解压至C:\Program Files目录下(密码:xiaoqing); 2、双击导入注册表C:\Program Files\BCGSoft\BCGControlBarPro\bcgcontrolbarpro.12.00.reg; 3、运行向导C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBProIntegrationWizard.exe。 与其它不同之处: 1、包含完整的源代码、帮助文件; 2、已经对 BCGPAppWizard2005 中的向导进行汉化,在 Visual Studio 2008(2010) 中可使用中文向导 BCGPAppWizard (参考 Visual Studio 2008 原有的中文向导,如果您想学习汉化向导,参考目录是:C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\MFC\Application\templates\2052) 关于静态链接: 1、首先必须在运行向导BCGCBProIntegrationWizard.exe时已经编译静态库; 2、在 Visual Studio 建立项目向导时,选择静态链接即可。 关于使用 Office2007、2010 风格: 如果您使用了这些新风格,必须在项目中包括这些资源,否则 debug 版本启动时会报错(缺少资源,release版本不会提示,但显示不正常),具体有二种方法: 1、直接在“解决方案资源管理器”-“资源文件”中点右键,“添加”-“现有项”,把C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles中所有扩展名为 .rc 的资源包括进来即可。 2、直接在“资源视图”-“您的项目”上点右键,选择“资源包括”,在“资源包括”中的“编译时指令”中的#include "BCGCBPro.rc"后面添加以下代码: #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Aqua.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Luna.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Obsidian.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Silver.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2010White.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyleCarbon.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyleScenic.rc" 3、如果使用动态库链接,请手工编译C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\Office2007_styles.sln或者build_all.dsp 仅为学习使用,下载后24小时内删除,请支持 BCGSoft 购买正版,本人不提供技术支持,不对任何负责。 尊重他人劳动成果,欢迎与大家分享成果。 官方更新说明: http://www.bcgsoft.com/bcgcontrolbarpro-versions.htm Version 12.0. Released 01/20/2010 New features CBCGPVisualManager2010 implements Microsoft Office 2010 Beta 1 color themes: Blue theme (see screenshot) Black theme (see screenshot) Silver theme (see screenshot) Just activate CBCGPVisualManager2010 to use these new themes in your application: CBCGPVisualManager::SetDefaultManager (RUNTIME_CLASS (CBCGPVisualManager2010)); Please run BCGPMSOffice2007Demo, DrawCli or BCGPOrganizer to see this feature in action. Added Microsoft Office 2010-style Ribbon Backstage View (see screenshot). The following new methods were added to CBCGPRibbonBar class: SetBackstageMode: enables/disables Backstage View mode. IsBackstageMode: returns TRUE if Backstage View mode is enabled. AddBackstageCategory: creates Backstage View category. GetBackstageCategory: returns Backstage View category. IsBackstageViewActive: returns TRUE if Backstage View is currently active. By default, the Ribbon Application button will be displayed with the default (blue) color, but developers can customize its appearance by calling visual manager's new method 'SetMainButtonColor' (see screenshot). CBCGPRibbonBar::AddBackstageCategory returns a pointer to the new class object - CBCGPRibbonBackstageViewPanel. Usually, you'll need to call the following class methods to create your backstage view: AddCommand: add a single command button such as "Save", "Save As" or "Exit". AddView: add a button with attached right-side form ("Print", "Recent Files" and so on). There are 2 new classes that should be used for implementing right-side views: CBCGPRibbonBackstageViewItemForm: a single page dialog CBCGPRibbonBackstageViewItemPropertySheet: multi-page Please note that our Application Wizards were updated and now, when you're creating a new, Ribbon-based application, you can choose "Backstage view" option (see screenshot) and initial backstage view code will be automatically generated for your pleasure!. The Ribbon bar Application ("main") Button can display a text label instead of icon in the "scenic" mode (usually "File" in English language UI). The following new methods were added to the CBCGPRibbonMainButton class: SetScenicText GetScenicText Implemented ability to add Ribbon Galleries to the dialogs (see screenshot). The new class CBCGPRibbonGalleryCtrl may be used for this purpose. Please take a look at BCGPMSOffice2007Demo example (Backstage view pages) to see this new control in action. Implemented Resizable Dialogs support (see screenshot1 and screenshot2): Added 2 new classes: CBCGPControlsLayout: implements the base class for all layout managers. CBCGPStaticLayout: implements "static" layout management based on anchors. To enable layout support, you've to call EnableLayout/GetLayout methods in the following classes: CBCGPDialog CBCGPDialogBar CBCGPropertyPage CBCGPFormView Please run ResizableForm new sample to see this feature in action. In addition, you can see this feature in the following examples and samples: BCGPMSOffice2007Demo: "Clipboard" Pane and Backstage view. BCGPOrganizer: resizable dialog bar. RibbonGadgets: backstage view. ToolBoxDemo: resizable form Significantly improved CBCGPVisualManagerVS2010 (see screenshot): The color scheme is identical to Visual Studio 2010 Beta 2. Added a new Smart Docking style (BCGP_SDT_VS2010). You can run BCGPVisualStudioGUIDemo example to examine this look. Added content scrolling support to CBCGPDockingControlBar-derived classes (see screenshot). By default, the scrolling is implemented in CBCGPDialogBar class only, but you can easily add this support to any CBCGPDockingControlBar-derived class (please take a look at BCGPGridExample example, COutputBar class). CBCGPDockingBarScrollButton class implements docking pane scroll button (vertical and horizontal) and its look depends on the currently activated visual manager. Calculator control has been significantly improved: All calculator buttons are drawn using built-in bitmaps and use visual manager appearance (see screenshot). Implemented extended commands. Using a new method CBCGPCalculator::SetExtendedCommands developers can add a lot of build-in calculator commands such as idCommandAdvSin, idCommandAdvCos, idCommandAdvTan and others. CBCGPRibbonComboBox allows to display a popup calculator window. Just call CBCGPRibbonComboBox::EnableCalculator method to assign a calculator to the ribbon combobox. Override a new 'OnCalculatorUserCommand' method to implement your calculator commands. Please take a look at BCGPControls example and RibbonGadgets/SkinnedDialog samples to see these new features in action. The following new methods were added to CBCGPVisualManager class: OnDrawDockingBarScrollButton OnDrawCaptionBarCloseButton GetHeaderCtrlTextColor OnFillPropSheetHeaderArea OnDrawDateTimeDropButton GetCalculatorButtonTextColor GetEditCtrlSelectionBkColor GetEditCtrlSelectionTextColor OnDrawDlgSizeBox OnFillRibbonBackstageForm OnDrawRibbonMinimizeButtonImage GetRibbonMinimizeButtonImageSize GetRibbonButtonsGroupHorzMargin IsDrawRibbonGroupSeparator OnDrawRibbonGroupSeparator GetRibbonBackstageTopLineHeight OnDrawRibbonBackstageTopLine SetMainButtonColor GetMainButtonColor IsOwnerDrawDlgSeparator OnDrawDlgSeparator CBCGPPropertySheet has a new mode: PropSheetLook_AeroWizard (see screenshot). In general, this mode has been designed and implemented for Vista/Windows 7 Aero, but you can use it in any OSs/modes (see screenshot). The glass (aero) area can be combined with a page header - we've added a new optional parameter 'bDrawHeaderOnAeroCaption' to EnablePageHeader method. Please take a look at PropSheetDemo sample to see this mode. Added support for the Internet Explorer-like new tab in CBCGPTabWnd class (see screenshot). Call EnableNewTab method to enable this feature. Please take a look BCGPIE7Demo example to see this feature in action. Grid and Report controls changes: Added option to select items by clicks on grid header: New header flag BCGP_GRID_HEADER_SELECT. Implemented color themes for the new visual managers such as CBCGPVisualManager2010 (Office 2010-like) and CBCGPVisualManagerVS2010 (Visual Studio 2010-like) (see screenshot). Improved grid printing support. The following new classes were added: CBCGPGridPage class: this class is used by the grid control to store print pages. A print page specifies which area of the grid is printed at the specified page. The grid counts in items in vertical direction. The grid counts in pixels in horizontal direction. CBCGPGridPageInfo class: This class is used by the grid control to store information about the printing range and the currently printing page. It is stored in CBCGPGridCtrl::m_PrintParams::m_pageInfo member and in CPrintInfo::m_lpUserData member of the CPrintInfo object used while printing at the current print session. Added an option to deselect items. To deselect an item please use SetCurSel with SM_INVERT_SEL flag. New functions were added: CBCGPGridCtrl::EnableInvertSelOnCtrl CBCGPGridCtrl::IsInvertSelOnCtrlEnabled Changes in header click events: New BCGM_GRID_COLUMN_CLICK message. Added CBCGPGridCtrl::OnHeaderColumnRClick. Modified CBCGPGridCtrl::OnHeaderColumnClick. Items align support: New CBCGPGridItem::GetAlign function. Item's alignment is specified by CBCGPGridCtrl::SetColumnAlign. Grid horizontal pagination support. Added CBCGPGridPage::m_nWidth - page width, CBCGPGridPageInfo::m_nPageWidth - width of currently printed page. See CBCGPGridPage class, CBCGPGridPageInfo class. Drag-and-Drop support (see new "Drag and Drop" tab in BCGPGridExample sample): New message BCGM_GRID_BEGINDRAG. Added methods EnableDragSelection, IsDragSelectionEnabled, EnableDragSelectionBorder, IsDragSelectionBorderEnabled, StartDragItems and HitTestSelectionBorder. Extended in-place edit customization support (see new "Easy Input" tab in BCGPGridExample sample): New messages BCGM_GRID_ITEM_BEGININPLACEEDIT, BCGM_GRID_ITEM_ENDINPLACEEDIT. New functions OnBeginInplaceEdit, OnEndInplaceEdit, CanBeginInplaceEditOnChar, CanEndInplaceEditOnChar, OnInplaceEditKeyDown, OnInplaceEditSetSel. New BCGPGRID_ITEM_INFO::dwResultCode member. See BCGPGRID_ITEM_INFO struct. New method SetClearInplaceEditOnEnter. Call SetClearInplaceEditOnEnter (FALSE) to disable grid from clearing content of the item on Enter. Added CBCGPGridCtrl::GoToNextItem method. CBCGPGridCtrl::EnsureVisible is now virtual. Added navigation by TAB (Shift+TAB) key. Added "Ctrl+Z" (Undo) handler for in-place edit of the grid item. Changes in CBCGPGridCtrl::SetCurSel for SM_SET_ACTIVE_ITEM style. Grid item with combo-box now supports F4 to open drop-down list. Added a new parameter CBCGPMDITabParams::m_bReuseRemovedTabGroups. If this flag is TRUE MDI tab groups which were marked as removed will be used for new groups. This reduces memory consumption for applications that frequently create and remove groups. Added OpenType font support for font combo boxes. Added keyboard and MS Active Accessibility support to CBCGPTasksPane class. CBCGPEditCtrl::ExportBuffer has a new optional parameter 'BOOL bForceAnsi'. Setting it to TRUE forces exporting editor's text in ANSI format. CBCGPRibbonStatusBarPane constructor and SetAnimationList method have a new optional parameter 'BOOL bDontScaleInHighDPIMode'. Set it to TRUE if you don't need to scale pane image in the High DPI mode. When user clicks on the glass area of CBCGPExplorerToolBar window, the application window is moved now. Added CBCGPCalendarBar::GetState method - returns the calendar style flags specified in SetState method. CBCGPRibbonEdit displays a drop-down window upon pressing F4 key. Added CBCGPShellManager::IsControlPanel method. Added new font 'fontCaption' to BCGPGLOBAL_DATA. This font will be useful for displaying caption texts. CBCGPStatic has a new member: m_clrText. You can set this member to colorize text labels (see SkinnedDialog sample). New method CBCGPDockManager::ShowFloatingBars shows/hides floating panes. CBCGPListBox control can work with left-side icons and item group headers now. The following new methods were added: SetImageList: set items image list SetItemImage: associate item with a specific icon AddCaption: add a group caption Changes in examples and samples: BCGPControls: "Calculator" page demonstrates new calculator features BCGPGridExample: added new visual managers and new 2 tabs: "Drag and Drop" and "Easy Input" BCGPIE7Demo: the tab control was fully redesigned and derived from the library MDI Tab control. BCGPMSOffice2007Demo: added MS Office 2010 Backstage view. "Clipboard" pane demonstrates a new layout manager. BCGPVisualStudioGUIDemo: Start Page view can be converted to docking control bar. DrawCli: added MS Office 2010 Backstage view and new visual managers. PropSheetDemo: added Aero Wizard demonstration. ResizableForm: new sample, demonstrates how to use a new layout manager along with dialogs, dialog bars, property sheets and form views. RibbonGadgets: added MS Office 2010 Backstage view and edit boxes with calculator. SkinnedDialog: added edit box with calculator and text labels with a custom colors. Changes in the Ribbon Designer: Added "Calculator" element. Support for three new styles introduced in Microsoft Office 2010 (blue, silver, black) Ribbon elements can be edited by double click. Image lists can be loaded from files. Implemented icon editing for Palette (Gallery) Buttons. Fixes: FireChangingActiveTab is called from CBCGPOutlookWnd::SetActiveTab now. Fixed resource leak in CBCGPUserTool::DrawToolIcon Fixed problem with a slider's thumb location in CBCGPRibbonSlider::SetThumbRect in the High DPI mode. Improved appearance of the calendar drop-down button in CBCGPDateTimeCtrl. Fixed problem with setting editbox auto-complete mode in Windows 9x/NT4 CBCGP***FrameWnd::WinHelp dwData parameter has DWORD_PTR type now. This fixes 64-bit compatibility issue with this virtual method. Fixed memory leak in CBCGPPngImage::LoadFromBuffer (VS.NET 2003 or higher, BCGP_EXCLUDE_GDI_PLUS is defined). CBCGPGroup is properly handles WM_SETTEXT message now. CBCGPCalendar always closes dropped-down month picker when the calendar is being destroyed. CBCGPRibbonEdit::OnDraw correctly draws edit box label in case of center/right-side control alignment. Fixed appearance of CBCGPExCheckList items in the high DPI mode (under VC++ 6.0). Fixed problem with displaying disabled check boxes (CBCGPButton class) when some visual managers are activated. Fixed problem with CBCGPHeaderCtrl items text color when some visual managers are activated. Fixed problem with vertical scrolling of elements in CBCGPRibbonPanel::OnKey. CBCGPEdit correctly draws a browse button image and text when control is located on the glass (aero) area. CBCGPEdit uses visual manager color them when control has ES_READONLY style. CBCGPStatic doesn't perform the custom drawing if it has a style like icon, rectangle or frame. CBCGPPropertySheet: fixed some problems with repositioning and redrawing navigation buttons. Fixed some visual problems in owner-draw frame/dialog captions. Ribbon Main Button scenic icon is correctly painted in high DPI mode now. Fixed problem with text alignment in grid columns. CBCGPGridCtrl::SetColumnAlign is working properly now. Fixed bug with using different horizontal color and vertical color for the grid lines. The m_clrVertLine setting did not work when m_bGridItemBorders flag was switched on. Fixed problem with clicking on CBCGPGridURLItem in read-write mode. Fixed a bug with automatic sizing of grid columns. The bug appeared when auto-sizing was enabled with EnableColumnAutoSize(TRUE). Fixed bug with "Ctrl+A" for in-place editing of grid items. "Ctrl+A" selects all text inside in-place editor during in-place editing, instead of the entire grid as before. Fixed memory leak in CBCGPGridCtrl::CopyHtmlToClipboardInternal. Ribbon Designer supports Visual Studio 2008 and Visual Studio 2010 Beta 2 projects.
FastReport.v4.15 for.Delphi.BCB.Full.Source企业版含ClientServer中文修正版支持Delphi 4-XE5 and C++Builder 6-XE5. D2010以上版本(D14_D19)安装必读 delphi2010以上版本(D14_D19)使用者安装时,请将res\frccD14_D19.exe更名名为frcc.exe frccD14_D19.exe是专门的delphi2010以上版本(D14_D19)编码器。其他低delphi版本,请使用frcc.exe FastReport® VCL is an add-on component that allows your application to generate reports quickly and efficiently. FastReport® provides all the tools necessary for developing reports, including a visual report designer, a reporting core, and a preview window. It can be used in Embarcadero (ex Borland and CodeGear) Delphi 4-XE5 and C++Builder 6-XE5. version 4.15 --------------- + Added Embarcadero RAD Studio XE5 support + Added Internal components for FireDac database engine + fixed bug with images in PDF export for OSX viewers + Added ability to set font charset to default in Style Editor - fixed duplex problem when printing several copies of the report - fixed problem with PNG images - fixed problem with TfrxPictureView transparent version 4.14 --------------- + Added Embarcadero RAD Studio XE4 support - [Lazarus] fixed bug with text output - [Lazarus] fixed bug with some visual controls in designer - [Lazarus] improved interface of the report preview and designer - [Lazarus] fixed bug with boolean propertyes in script code and expressions - fixed bug with endless loop in TfrxRichView - fixed bug with Unicode in TfrxMemoView appeared in previous release - improved MAPI interface in TfrxExportMail export - fixed some problems with allpication styles XE2/XE3 - improved compatibility with Fast Report FMX version 4.13 --------------- + Added Lazarus Beta support starts from Fast Report Professionnal edition. Current version allows preview, print and design report template under Windows and Linux platform (qt). + Added Embarcadero RAD Studio XE3 support - fixed compatibility with Fast Report FMX installed in the same IDE. This version can co exist with Fast Report FMX version at the same time. + published "Quality" property of TfrxPDFExport object + published "UseMAPI" property of TfrxExportMail object + published "PictureType" property to ODF export - fixed bug with expressions in RichEdit - fixed bug in multi-column reports - fixed exception in the report designer - fixed bug with URLs in Open Document Text and Open Document Spreadsheet exports - fixed format string in XLS OLE export - fixed format string in XLS BIFF8 export - fixed output of the check boxes on the highlighted lines in PDF export - fixed bug with PDF anchors - fixed bug when using two or more macroses in memo version 4.12 --------------- + added support of Embarcadero Rad Studio EX2 (x32/x64) + added export of Excel formulas in the BIFF export + added export of external URLs in the PDF export + added converter from Rave Reports ConverterRR2FR.pas + added Cross.KeepRowsTogether property + optimised merging cells in the BIFF export + added property DataOnly to exports + pictures format in all exports switched to PNG + improved number formats processing in the BIFF export + added property DataOnly to exports + added property TfrxODFExport.SingleSheet + added property TfrxSimpleTextExport.DeleteEmptyColumns + added property TfrxBIFFExport.DeleteEmptyRows + added progress bar to the BIFF export - fixed bug with frame for some barcode types - fixed wrong metafiles size in the EMF export - fixed processing of negative numbers in the OLE export - fixed bug in handling exceptions in the OLE export - fixed bug in creation of the progress bar (applicable to many exports) - fixed bug in the ODF export in strings processing - fixed bug in the OLE export in numbers formatting - fixed bug in the PDF export in rotating texts 90, 180 and 270 degrees - fixed bug in the ODF export in processing of headers and footers - fixed bug in the Text export in computing object bounds - fixed bug in the ODF export in UTF8 encoding - fixed hiding gridlines around nonempty cells in the BIFF export - fixed images bluring when exporting - fixed word wrapping in the Excel XML export version 4.11 --------------- + added BIFF8 XLS export filter + added to ODF export the Language property + [enterprise] added "scripts" folder for additional units ("uses" directive in report script) + [enterprise] added logs for scheduler (add info in scheduler.log) + [enterprise] added property "Reports" - "Scripts" in server configuration - set the path for "uses" directive in report script + [enterprise] added property "Http" - "MaxSessions" in server configuration - set the limit of maximum session threads, set 0 for unlimit + [enterprise] added property "Reports" - "MaxReports" in server configuration - set the limit of maximum report threads, set 0 for unlimit + [enterprise] added property "Logs" - "SchedulerLog" in server configuration - set the scheduler log file name + [enterprise] added property "Scheduler" - "Active" in server configuration - enable of scheduler + [enterprise] added property "Scheduler" - "Debug" in server configuration - enable writing of debug info in scheduler log + [enterprise] added property "Scheduler" - "StudioPath" in server configuration - set the path to FastReport Studio, leave blank for default - [enterprise] fixed bug with MIME types in http header (content-type) - [enterprise] fixed bug with default configuration (with missed config.xml) - [enterprise] fixed bug with error pages - fixed bug in XML export with the ShowProgress property - fixed bug in RTF export with font size in empty cells - fixed bug in ODF export with UTF8 encoding of the Creator field - fixed bug in XML export with processing special characters in strings - fixed bug in ODF export with properties table:number-columns-spanned, table:number-rows-spanned - fixed bug in ODF export with the background clNone color - fixed bug in ODF export with a style of table:covered-table-cell - fixed bug in ODF export with table:covered-table-cell duplicates - fixed bug in ODF export with excessive text:p inside table:covered-table-cell - fixed bug in ODF export with language styles - fixed bug in ODF export with spaces and tab symbols - fixed bug in ODF export with styles of number cells - fixed bug in ODF export with the background picture - fixed bug in ODF export with charspacing - fixed bug in ODF export with number formatting - fixed bug in ODF export with table-row tag - fixed bug in XLS(OLE) export with numbers formatting - fixed bug in RTF export with processing RTF fields - fixed bug with processing special symbols in HTML Export - fixed bug with UTF8 encoding in ODF export - fixed bug in PDF export with underlined, struck-out and rotated texts version 4.10 --------------- + added support of Embarcadero Rad Studio XE (Delphi EX/C++Builder EX) + added support of TeeChart 2010 packages (new series type aren't support in this release) + added a property TruncateLongTexts to the XLS OLE export that allows to disable truncating texts longer than a specified limit + added option EmbedProt which allows to disable embedding fonts into an encrypted PDF file + added TfrxDateEditControl.WeekNumbers property - fixed bug in XML and PDF exports with Korean charmap - fixed bug in the XLS XML export about striked-out texts - fixed bug about exporting an empty page via the XLS OLE export - fixed bug in the PDF export about coloring the background of pages - fixed bug in embedded designer when using break point in script - fixed bug with lost of focus in font size combo-box in designer - fixed bug with truncate of font size combo-box in Windows Vista/7 in designer (lost of vertical scroll bar) - fixed bug when lost file name in inherited report - fixed bug in multi-page report with EndlessHeight/EndlessWidth - fixed bug wit TfrxHeader.ReprintOnNewpage and KeepTogether - fixed bug in multi-column report with child bands - improved split mechanism (added TfrxStretcheable.HasNextDataPart for complicated data like RTF tables) - improved crosstab speed when using repeat band with crosstab object version 4.9 --------------- + added outline to PDF export + added anchors to PDF export - fixed bug with embedded TTC fonts in PDF export + added an ability to create multiimage TIFF files + added export headers/footers in ODF export + added ability to print/export transparent pictures (properties TfrxPictureView.Transparent and TfrxPictureView.TransparentColor) (PDF export isn't supported) + added new "split to sheet" modes for TfrxXMLExport + added support of /PAGE tag in TfrxRichView, engine automatically break report pages when find /PAGE tag + added ability to hide Null values in TfrxChartView (TfrxChartView.IgnoreNulls = True) + added ability to set any custom page order for printing (i.e. 3,2,1,5,4 ) + [enterprise] added variables "AUTHLOGIN" and "AUTHGROUP" inside the any report + [enterprise] now any report file can be matched with any (one and more) group, these reports are accessible only in matched groups + [enterprise] now you can set-up cache delays for each report file (reports.xml) + [enterprise] added new properties editor for reports in Configuration utility (see Reports tab) + [enterprise] added property "Xml" - "SplitType" in server configuration - allow to select split on pages type between none/pages/printonprev/rowscount + [enterprise] added property "Xml" - "SplitRowsCount" in server configuration - sets the count of rows for "rowscount" split type + [enterprise] added property "Xml" - "Extension" in server configuration - allow select between ".xml" and ".xls" extension for output file + [enterprise] added property "Html" - "URLTarget" in server configuration - allow select the target attribute for report URLs + [enterprise] added property "ReportsFile" - path to file with reports to groups associations and cache delays + [enterprise] added property "ReportsListRenewTimeout" in server configuration + [enterprise] added property "ConfigRenewTimeout" in server configuration + [enterprise] added property "MimeType" for each output format in server configuration + [enterprise] added property "BrowserPrint" in server configuration - allow printing by browser, added new template nav_print_browser.html + [enterprise] added dynamic file name generation of resulting formats (report_name_date_time) * [enterprise] SERVER_REPORTS_LIST and SERVER_REPORTS_HTML variables (list of available reports) depend from user group (for internal authentification) + added drawing shapes in PDF export (not bitmap) + added rotated text in PDF export (not bitmap) + added EngineOptions.IgnoreDevByZero property allow to ignore division by zero exception in expressions + added properties TfrxDBLookupComboBox.DropDownWidth, TfrxDBLookupComboBox.DropDownRows + added event TfrxCustomExportFilter.OnBeginExport + added ability to decrease font size in barcode object + added ability to inseret FNC1 to "code 128" barcode + added event TfrxPreview.OnMouseDown + added support of new unicode-PDF export in D4-D6 and BCB4-BCB6 * improved AddFrom method - anchor coping - fixed bug with WordWrap in PDF export - fixed bug with underlines in PDF export - fixed bug with rounded rectangles in PDF export - fixed CSV export to fit to the RFC 4180 specification - fixed bug with strikeout text in PDF export - fixed bug with incorrect export of TfrxRichView object in RTF format (wrong line spacing) - [enterprise] added critical section in TfrxServerLog.Write - fixed bug with setting up of the Protection Flags in the PDF export dialog window - fixed bug in PDF export (file structure) - fixed bug with pictures in Open Office Writer (odt) export - [enterprise] fixed bug with TfrxReportServer component in Delphi 2010 - fixed minor errors in Embarcedero RAD Studio 2010 - fixed bug with endless loop with using vertical bands together with page header and header with ReprintOnNewPage - fixed bug when using "Keeping" and Cross tables (incorrect cross transfer) - fixed bug with [CopyName#] macros when use "Join small pages" print mode - fixed bug when try to split page with endless height to several pages (NewPage, StartNewPage) - fixed bug with empty line TfrxRichView when adding text via expression - fixed bug when Footer prints even if main band is invisible (FooterAfterEach = True) - fixed resetting of Page variable in double-pass report with TfrxCrossView - fixed bug with loosing of aligning when split TfrxRichView - fixed buzz in reports with TfrxRichView when using RTF 4.1 version 4.8 --------------- + added support of Embarcadero Rad Studio 2010 (Delphi/C++Builder) + added TfrxDBDataset.BCDToCurrency property + added TfrxReportOptions.HiddenPassword property to set password silently from code + added TfrxADOConnection.OnAfterDisconnect event + added TfrxDesigner.MemoParentFont property + added new TfrxDesignerRestriction: drDontEditReportScript and drDontEditInternalDatasets + adedd checksum calculating for 2 5 interleaved barcode + added TfrxGroupHeader.ShowChildIfDrillDown property + added TfrxMailExport.OnSendMail event + added RTF 4.1 support for TfrxRichText object + [enterprise] added Windows Authentification mode + added confirmation reading for TfrxMailExport + added TimeOut field to TfrxMailExport form + added ability to use keeping(KeepTogether/KeepChild/KeepHeader) in multi-column report + added ability to split big bands(biggest than page height) by default * [enterprise] improved CGI for IIS/Apache server * changed PDF export (D7 and upper): added full unicode support, improved performance, decreased memory requirements old PDF export engine saved in file frxExportPDF_old.pas - changed inheritance mechanism, correct inherits of linked objects (fixups) - fixed bug with Mirror Mrgins in RTF, HTML, XLS, XML, OpenOffice exports - fixed bug when cross tab cut the text in corner, when corner height greater than column height - [fs] improved script compilation - improved WatchForm TListBox changet to TCheckListBox - improved AddFrom method - copy outline - Improved functional of vertical bands, shows memos placed on H-band which doesn't across VBand, also calculate expression inside it and call events (like in FR2) - Improved unsorted mode in crosstab(join same columns correctly) - Improved converter from Report Builder - Improved TfrxDesigner.OnInsertObject, should call when drag&drop field from data tree - improved DrillDownd mechanism, should work correct with master-detail-subtetail nesting - fixed bug with DownThenAcross in Cross Tab - fixed several bugs under CodeGear RAD Studio (Delphi/C++Builder) 2009 - fixed bug with emf in ODT export - fixed bug with outline when build several composite reports in double pass mode - fixed bug when group doesn't fit on the whole page - fixed "Page" and "Line" variables inside vertical bands - fixed bug with using KeepHeader in some cases - fixed bug with displacement of subreport when use PrintOnParent property in some cases - fixed small memory leak in subreports - fixed problem with PageFooter and ReportSymmary when use PrintOnPreviousPage property - fixed bug when designer shows commented functions in object inspector - fixed bug when designer place function in commented text block - fixed bug when Engine try to split non-stretcheable view and gone to endless loop - fixed bug with HTML tags in memo when use shot text and WordWrap - [enterprise] fixed bug with variables lost on refresh/export - fixed bug whih PDF,ODT export in Delphi4 and CBuilder4 - fixed bug with some codepage which use two bytes for special symbols (Japanese ans Chinese codepages) - fixed bug when engine delete first space from text in split Memo - fixed bug in multi-column page when band overlap stretched PageHeader - fixed bug with using ReprintOnNewPage version 4.7 --------------- + CodeGear RAD Studio (Delphi/C++Builder) 2009 support + [enterprise] enchanced error description in logs + added properties TfrxHTMLExport.HTMLDocumentBegin: TStrings, TfrxHTMLExport.HTMLDocumentBody: TStrings, TfrxHTMLExport.HTMLDocumentEnd: TStrings + improved RTF export (with line spacing, vertical gap etc) + added support of Enhanced Metafile (EMF) images in Rich Text (RTF), Open Office (ODS), Excel (XLS) exports + added OnAfterScriptCompile event + added onLoadRecentFile Event + added C++ Builder demos + added hot-key Ctrl + mouseWheel - Change scale in designer + added TfrxMemoView.AnsiText property - fixed bug in RTF export with EMF pictures in OpenOffice Writer - fixed some multi-thread isuues in engine, PDF, ODF exports - [enterprise] fixed integrated template of report navigator - [enterprise] fixed bug with export in Internet Explorer browser - fixed bug with font size of dot-matix reports in Excel and XML exports - fixed bug in e-mail export with many addresses - fixed bug in XLS export (with fast export unchecked and image object is null) - [enterprise] fixed bug in TfrxReportServer.OnGetVariables event - fixed bug in Calcl function - fixed memory leak in Cross editor - fixed progress bar and find dialog bug in DualView - fixed bug in PostNET and ean13 barcodes - fixed bug with TruncOutboundText in Dot Matrix report - fixed bugs with break points in syntaxis memo - improved BeforeConnect event in ADO - fixed bug in inhehited report with internal dataset - fixed bug in TfrxPanelControl with background color(Delphi 2005 and above) version 4.6 --------------- + added & , < , > to XML reader + added <nowrap> tag, the text concluded in tag is not broken by WordWrap, it move entirely + added ability to move band without objects (Alt + Move) + added ability to output pages in the preview from right to left ("many pages" mode), for RTL languages(PreviewOptions.RTLPreview) + added ability to storing picture cache in "temp" file (PreviewOptions.PictureCacheInFile) + added EngineOptions.UseGlobalDataSetList (added for multi-thread applications) - set it to False if you don't want use Global DataSet list(use Report.EnabledDataSet.Add() to add dataset in local list) + added new property Hint for all printed objects, hints at the dialog objects now shows in StatusBar + added new property TfrxDBLookupComboBox.AutoOpenDataSet (automatically opens the attached dataset after onActivate event) + added new property TfrxReportPage.PageCount like TfrxDataBand.RowCount + added new property WordWrap for dialog buttons (Delphi 7 and above). + added sort by name to data tree + added TfrxDesigner.TemplatesExt property + added TfrxStyles class in script rtti + changes in the Chart editor: ability to change the name of the series, ability to move created series, other small changes + [enterprise] added configurations values refresh in run-time + [enterprise] added new demo \Demos\ClientServer\ISAPI + [enterprise] added output to server printers from user browser (see config.xml "AllowPrint", set to "no" by default), note: experimental feature + [enterprise] added reports list refresh in run-time + [enterprise] added templates feature + [enterprise] improved speed and stability + [fs] added TfsScript.IncludePath property + [fs] added TfsScript.UseClassLateBinding property + [fs] fixed type casting from variant(string) to integer/float - changes in report inherit: FR get relative path from current loaded report(old reports based on application path works too) - corrected module for converting reports from Report Builder - fixed bug in CrossTab when set charset different from DEFAULT_CHARSET - fixed bug in RTF export with some TfrxRichView objects - fixed bug when print on landscape orientation with custom paper size - fixed bug when use network path for parent report - fixed bug with Band.Allowslit = True and ColumnFooter - fixed bug with drawing subreport on stretched band - fixed bug with embedded fonts in PDF export - fixed bug with long ReportTitle + Header + MaterData.KeepHeader = true - fixed bug with minimizing of Modal designer in BDS2005 and above - fixed bug with paths in HTML export - fixed bug with RTL in PDF export - fixed bug with SubReport in multi column page - fixed bug with Subreport.PrintOnParent = true in inherited report - fixed bug with SYMBOL_CHARSET in PDF export - fixed bug with the addition of datasets by inheritance report - fixed bug with width calculation when use HTML tags in memo - fixed compatibility with WideStrings module in BDS2006/2007 - fixed flicking in preview when use OnClickObject event - fixed free space calculation when use PrintOnPreviousPage - fixed preview bug with winXP themes and in last update - fixed subreports inherit - Thumbnail and Outline shows at right side for RTL languages - [fs] fixed bug with late binding version 4.5 --------------- + added ConverterRB2FR.pas unit for converting reports from Report Builder to Fast Report + added ConverterQR2FR.pas unit for converting reports from QuickReport to FastReport + added support of multiple attachments in e-mail export (html with images as example) + added support of unicode (UTF-8) in e-mail export + added ability to change templates path in designer + added OnReportPrint script event + added PNG support in all version (start from Basic) + added TfrxDMPMemoView.TruncOutboundText property - truncate outbound text in matrix report when WordWrap=false + added new frames styles fsAltDot and fsSquare + added new event OnPreviewDblClick in all TfrxView components + added ability to call dialogs event after report run when set DestroyForms = false + added ability to change AllowExpressions and HideZeros properties in cross Cells (default=false) + added IgnoreDupParams property to DB components + added auto open dataset in TfrxDBLookupComboBox + added new property TfrxADOQuery.LockType + added define DB_CAT (frx.inc) for grouping DB components + added TfrxPictureView.HightQuality property(draw picture in preview with hight quality, but slow down drawing procedure) + [FRViewer] added comandline options "/print filename" and "/silent_print filename" + added unicode input support in RichEditor + added new define HOOK_WNDPROC_FOR_UNICODE (frx.inc) - set hook on GetMessage function for unicode input support in D4-D7/BCB4-BCB6 + added ability chose path to FIB packages in "Recompile Wizard" + added new function TfrxPreview.GetTopPosition, return a position on current preview page + added new hot-keys to Code Editor - Ctrl+Del delete the word before cursor, Ctrl+BackSpace delete the word after cursor(as in Delhi IDE) + added "MDI Designer" example - all language resources moved to UTF8, XML - fixed bug with html tags [sup] and [sub] - fixed width calculation in TfrxMemoView when use HTML tags - fixed bug with suppressRepeated in Vertical bands - fixed bug when designer not restore scrollbars position after undo/redo - fixed visual bug in toolbars when use Windows Vista + XPManifest + Delphi 2006 - fixed bug in CalcHeight when use negative LineSpace - fixed bug in frx2xto30 when import query/table components, added import for TfrDBLookupControl component - fixed bug with Cross and TfrxHeader.ReprintOnNewPage = true - fixed converting from unicode in TfrxMemoView when use non default charset - [fs] fixed bug with "in" operator - fixed bug with aggregate function SUM - fixed bug when use unicode string with [TotalPages#] in TfrxMemoView - fixed bug with TSQLTimeStampField field type - fixed designer dock-panels("Object Inspector", "Report Tree", "Data Tree") when use designer as MDI or use several non-modal designer windows - fixed bug with hide/show dock-panels("Object Inspector", "Report Tree", "Data Tree"), now it restore size after hiding - fixed bug in XML/XLS export - wrong encode numbers in memo after CR/LF - fiexd bug in RTF export - fixed bug with undo/redo commands in previewPages designer - fixed bug with SuppressRepeated when use KeepTogether in group - fixed bug with SuppressRepeated on new page all events fired twice(use Engine.SecondScriptcall to determinate it) version 4.4 --------------- + added support for CodeGear RAD Studio 2007 + improved speed of PDF, HTML, RTF, XML, ODS, ODT exports + added TfrxReportPage.BackPictureVisible, BackPicturePrintable properties + added rtti for the TfrxCrossView.CellFunctions property + added properties TfrxPDFExport.Keywords, TfrxPDFExport.Producer, TfrxPDFExport.HideToolbar, TfrxPDFExport.HideMenubar, TfrxPDFExport.HideWindowUI, TfrxPDFExport.FitWindow, TfrxPDFExport.CenterWindow, TfrxPDFExport.PrintScaling + added ability recompile frxFIB packages in "recompile wizard" + added ability to set color property for all teechart series which support it + added, setting frame style for each frame line in style editor + added TfrxPreview.Locked property and TfrxPreview.DblClick event + added 'invalid password' exception when load report without crypt + added new parameter to InheritFromTemplate (by default = imDefault) imDefault - show Error dialog, imDelete - delete duplicates, imRename - rename duplicates + added property TfrxRTFExport.AutoSize (default is "False") for set vertical autosize in table cells * redesigned dialog window of PDF export * improved WYSIWYG in PDF export - fixed bug, the PageFooter band overlap the ReportSummary band when use EndlessHeight - fixed bug with lage paper height in preview - fixed bug with outline and encryption in PDF export - fixed bug with solid arrows in PDF export - fixed bug when print TfrxHeader on a new page if ReprintOnNewPage = true and KeepFooter = True - fixed bug when used AllowSplit and TfrxGroupHeader.KeepTogether - fixed page numbers when print dotMatrix report without dialog - fixed bug with EndlessHeight in multi-columns report - fixed font dialog in rich editor - [fs] fixed bug when create TWideStrings in script code - fixed bug with dialog form when set TfrxButtonControl.Default property to True - fixed twice duplicate name error in PreviewPages designer when copy - past object - fixed bug with Preview.Clear and ZmWholePage mode - fixed bug with using "outline" together "embedded fonts" options in PDF export - fixed multi-thread bug in PDF export - fixed bug with solid fill of transparent rectangle shape in PDF export - fixed bug with export OEM_CODEPAGE in RTF, Excel exports - fixed bug with vertical size of single page in RTF export - fixed bug with vertical arrows in PDF export - fixed memory leak with inherited reports version 4.3 --------------- + added support for C++Builder 2007 + added encryption in PDF export + added TeeChart Pro 8 support + added support of OEM code page in PDF export + added TfrxReport.CaseSensitiveExpressions property + added "OverwritePrompt" property in all export components + improved RTF export (WYSIWYG) + added support of thai and vietnamese charsets in PDF export + added support of arrows in PDF export * at inheritance of the report the script from the report of an ancestor is added to the current report (as comments) * some changes in PDF export core - fixed bug with number formats in Open Document Spreadsheet export - fixed bug when input text in number property(Object Inspector) and close Designer(without apply changes) - fixed bug in TfrxDBDataset with reCurrent - fixed bug with memory leak in export of empty outline in PDF format - line# fix (bug with subreports) - fixed bug with edit prepared report with rich object - fixed bug with shadows in PDF export - fixed bug with arrows in designer - fixed bug with margins in HTML, RTF, XLS, XML exports - fixed bug with arrows in exports - fixed bug with printers enumeration in designer (list index of bound) - fixed papersize bug in inherited reports version 4.2 --------------- + added support for CodeGear Delphi 2007 + added export of html tags in RTF format + improved split of the rich object + improved split of the memo object + added TfrxReportPage.ResetPageNumbers property + added support of underlines property in PDF export * export of the memos formatted as fkNumeric to float in ODS export - fixed bug keeptogether with aggregates - fixed bug with double-line draw in RTF export - fix multi-thread problem in PDF export - fixed bug with the shading of the paragraph in RTF export when external rich-text was inserted - fixed bug with unicode in xml/xls export - fixed bug in the crop of page in BMP, TIFF, Jpeg, Gif - "scale" printmode fixed - group & userdataset bugfix - fixed cross-tab pagination error - fixed bug with round brackets in PDF export - fixed bug with gray to black colors in RTF export - fixed outline with page.endlessheight - fixed SuppressRepeated & new page - fixed bug with long time export in text format - fixed bug with page range and outline in PDF export - fixed undo in code window - fixed error when call DesignReport twice - fixed unicode in the cross object - fixed designreportinpanel with dialog forms - fixed paste of DMPCommand object - fixed bug with the export of null images - fixed code completion bug - fixed column footer & report summary problem version 4.1 --------------- + added ability to show designer inside panel (TfrxReport.DesignReportInPanel method). See new demo Demos\EmbedDesigner + added TeeChart7 Std support + [server] added "User" parameter in TfrxReportServer.OnGetReport, TfrxReportServer.OnGetVariables and TfrxReportServer.OnAfterBuildReport events + added Cross.KeepTogether property + added TfrxReport.PreviewOptions.PagesInCache property - barcode fix (export w/o preview bug) - fixed bug in preview (AV with zoommode = zmWholePage) - fixed bug with outline + drilldown - fixed datasets in inherited report - [install] fixed bug with library path set up in BDS/Turbo C++ Builder installation - fixed pagefooter position if page.EndlessWidth is true - fixed shift bug - fixed design-time inheritance (folder issues) - fixed chm help file path - fixed embedded fonts in PDF - fixed preview buttons - fixed bug with syntax highlight - fixed bug with print scale mode - fixed bug with control.Hint - fixed edit preview page - fixed memory leak in cross-tab version 4.0 initial release --------------------- Report Designer: - new XP-style interface - the "Data" tab with all report datasets - ability to draw diagrams in the "Data" tab - code completion (Ctrl+Space) - breakpoints - watches - report templates - local guidelines (appears when you move or resize an object) - ability to work in non-modal mode, mdi child mode Report Preview: - thumbnails Print: - split a big page to several small pages - print several small pages on one big - print a page on a specified sheet (with scale) - duplex handling from print dialogue - print copy name on each printed copy (for example, "First copy", "Second copy") Report Core: - "endless page" mode - images handling, increased speed - the "Reset page numbers" mode for groups - reports crypting (Rijndael algorithm) - report inheritance (both file-based and dfm-based) - drill-down groups - frxGlobalVariables object - "cross-tab" object enhancements: - improved cells appearance - cross elements visible in the designer - fill corner (ShowCorner property) - side-by-side crosstabs (NextCross property) - join cells with the same value (JoinEqualCells property) - join the same string values in a cell (AllowDuplicates property) - ability to put an external object inside cross-tab - AddWidth, AddHeight properties to increase width&height of the cell - AutoSize property, ability to resize cells manually - line object can have arrows - added TfrxPictureView.FileLink property (can contain variable or a file name) - separate settings for each frame line (properties Frame.LeftLine, TopLine, RightLine, BottomLine can be set in the object inspector) - PNG images support (uncomment {$DEFINE PNG} in the frx.inc file) - Open Document Format for Office Applications (OASIS) exports, spreadsheet (ods) and text (odt) Enterprise components: - Users/Groups security support (see a demo application Demos\ClientServer\UserManager) - Templates support - Dynamically refresh of configuration, users/groups D2010以上版本(D14_D19)安装必读 delphi2010以上版本(D14_D19)使用者安装时,请将res\frccD14_D19.exe更名名为frcc.exe frccD14_D19.exe是专门的delphi2010以上版本(D14_D19)编码器。其他低delphi版本,请使用frcc.exe

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值