我已经就如何实现这个问题的标题做了一些研究.我正在开发的应用程序已经开发了几年左右(虽然进展缓慢,但你们都知道它在现实世界中的表现如何).现在要求我放入Undo/Redo多级功能.说"在开始之前你应该考虑过这个问题"已经有点晚了......好吧,我们确实考虑过这个问题 - 而我们对它没有做任何事情,而现在它就是这样.从搜索SO(和外部链接)我可以看到两种最常见的方法似乎是......
命令模式看起来像是一项很多工作,我只能想象它在这个过程中会抛出数千个错误,所以我真的不喜欢那个.
Memento模式实际上与我脑子里的模式很像.我在想是否有某种方法可以快速拍摄当前在内存中的对象模型的快照,然后我就可以将它存储在某个地方(也可能存储在内存中,也可能存储在文件中).这似乎是一个好主意,我能看到的唯一问题是它如何与我们已经编写的内容集成.您可以看到应用程序,因为它在大面板(可能是数百个)中绘制图像,然后允许用户通过UI或通过自定义构建的属性网格来操作它们.整个应用程序与一个大的观察者模式相关联.第二个任何变化,事件被触发,所有需要更新的事情都会发生.这很好,但我不能帮助以为如果用户在属性网格上的文本域中输入文本,在UI赶上之前会有一些延迟(似乎每次用户按下一个键时,都会添加一个新的快照到撤消列表).所以我的问题是......
如果你有这么远,那么请你好好阅读.您的任何输入都将非常有价值,非常感谢.
我std::string content知道包含UTF-8数据.我想把它转换为QString.我该怎么做,避免Qt中的from-ASCII转换?
关于实现(编译器)不提供复制构造函数和复制赋值运算符的情况,我有一点混淆.
我对第二种情况有点困惑,第二种情况正是如此.
a)实现不会为您声明它们,因此您将收到编译时错误.
或者
b)实现将声明并定义它们,但是当编译器定义的实现试图找到基类的方法时,我们将得到编译时错误.
昨天我接受了一次采访,我说(b)正在发生,但面试官不同意,他说(a).
我尝试在Microsoft C/C++ 14.00和gcc 4.4.5中编译以下代码
struct A
{
private:
A& operator = ( const A& );
};
struct B : A
{
};
int main()
{
B b1;
B b2;
b1 = b2;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Microsoft编译器输出
ctor01.cpp(9) : error C2248: 'A::operator =' : cannot access private member declared in class 'A'
ctor01.cpp(4) : see declaration of 'A::operator ='
ctor01.cpp(2) : see declaration of 'A'
This diagnostic occurred in the compiler generated function …Run Code Online (Sandbox Code Playgroud) 我有一个触发器,可以检测字段PHONE_EXT和POST事件的变化.我想发布带有事件的Phone_ID,以便在客户端中使用此ID.这可能吗?怎么样?
CREATE TRIGGER tr2 FOR employee
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
IF (new.PHONE_EXT <> old.PHONE_EXT) THEN
POST_EVENT 'phone_ext_changed'; <-- I would like to pass a string parameter with record ID
END
Run Code Online (Sandbox Code Playgroud) 我有一个问题,Admob没有显示广告......
这是LogCat:
WARN/AdMobSDK(502): Ignoring requestFreshAd() because we are requesting an ad right now already.
INFO/AdMobSDK(502): No fill. Server replied that no ads are available (1164ms)
INFO/AdMobSDK(502): No fill. Server replied that no ads are available (846ms)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过测试模式,没有测试模式,模拟器,真正的手机等.它从来没有显示任何东西,但我得到了Admob统计数据的请求和打印,就像它曾经工作过...
AFAIK,我在Admob Android SDK中做了所有事情...唯一可能导致任何问题的事情,恕我直言,我将使用带有scrollview的标签式布局,然后是广告显示的相对布局...... .
以下是选项卡布局的示例:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res/com.xxx.xxx"
android:id="@+id/tababout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF000000">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF000000"
android:padding="10px">
<ImageView
android:id="@+id/label_img"
android:src="@drawable/about_header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerInside" />
<TextView android:id="@+id/label_know_more_desc"
style="@style/Desc"
android:layout_below="@id/label_img"
android:text="@string/tab_about_know_more_desc" />
<Button android:id="@+id/bt_know_more"
style="@style/Button"
android:gravity="center_vertical|center_horizontal"
android:layout_below="@id/label_know_more_desc"
android:text="@string/tab_about_know_more_bt" /> …Run Code Online (Sandbox Code Playgroud) 我的应用程序首先从conf文件中读取设置,然后可以从cli参数覆盖这些选项.在从conf加载设置之后,我需要检查是否设置了require值,但是我坚持要检查变量.
示例代码:
#include <stdio.h>
int main() {
const char* test;
if (test != NULL)
std::cout << test << "\n";
else
std::cout << "no value set\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
function updateimage(){
$("#fileimg").attr("src","secondimage.jpg");
$('#fileimg').fadeIn('slow');
}
setTimeout(updateimage(), 5000);
Run Code Online (Sandbox Code Playgroud)
这是我试过的代码.它是一个每5秒重新加载图像的代码.但它不起作用.我在IE中得到这个错误:无效的参数你们都可以帮助我吗?谢谢.
我有一个视图文件夹product_types.控制器文件的名称是product_types_controller,我的类是ProductTypesController.我通常会保留rails喜欢的_格式,但我需要保留当前页面语法以用于搜索索引.
如何让这个控制器显示mysite.com/product-types和文件夹product_types中的所有页面以显示mysite.com/product-types/some-page?我是否需要使用 - 或者我应该使用_语法来命名页面,只需更改路由.
这是一个Rails 2.3.8站点.
谢谢
我有一个我创建的Eclipse插件Bundle,它不会从RESOLVED状态变为ACTIVE.
我试过打开OSGI控制台,看看为什么捆绑包不会启动,但似乎没有任何问题.如果我输入"start bundleid",那么就会按照您的预期开始.
该捆绑包正在使用'org.eclipse.ui.startup'我在Eclipse工作区启动期间用于执行任务的扩展点.
这是使用中的清单:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: My Bundle
Bundle-SymbolicName: com.joejag.bundle;singleton:=true
Bundle-Version: 1.1.0.qualifier
Bundle-Activator: com.joejag.bundle.Activator
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.core.resources
Bundle-Vendor: Joejag
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Run Code Online (Sandbox Code Playgroud)
该捆绑包旨在供其他人使用.因此,要求他们启动OSGI控制台并手动启动捆绑包并不是一个可行的解决方案.
这是我可以提供的最接近这个主题的帮助,这对帮助不大.参见Wiki Eclipse.
我正在尝试触发.jquery的链接点击.有人知道为什么以下不起作用.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>test</title>
</head>
<body>
<div>
<a id="google_link" href="http://google.com" target="_blank">click to go to google</a>
</div>
<div id="google_link_proxy">click here to do the same as the link above</div>
<script type="text/javascript">
$("#google_link_proxy").click(function(event){
$("#google_link").click();
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)