问题列表 - 第26753页

Delphi Unit局部变量 - 如何使每个实例都是唯一的?

在下面的单元中,我在IMPLEMENTATION部分声明了一个变量 - 该单元的本地变量.我还有一个在TYPE部分声明的过程,该过程接受一个参数并将该参数分配给有问题的局部变量.这个TFrame的每个实例都通过一个唯一的变量传递passMeTheVar.

我想要它做的是为帧的每个实例保留它自己的变量版本,与其他变量不同,并使用它来定义它的运作方式.然而,似乎正在发生的是所有实例都使用相同的值,即使我明确地将每个实例传递给另一个变量.

即:

Unit FlexibleUnit;
interface
uses
//the uses stuff
type
TFlexibleUnit=class(TFrame)
   //declarations including
   procedure makeThisInstanceX(passMeTheVar:integer);
private
//
public
//
end;

implementation
uses //the uses
var myLocalVar;

procedure makeThisInstanceX(passMeTheVar:integer);
begin
myLocalVar:=passMeTheVar;
end;

//other procedures using myLocalVar 
//etc to the 
end;
Run Code Online (Sandbox Code Playgroud)

现在在另一个Form中的某个地方,我将这个Frame放到了Design窗格上,有时在一个Form上有两个这样的框架,并在适当的位置声明它等等.每个都是独一无二的:

ThisFlexibleUnit : TFlexibleUnit;
ThatFlexibleUnit : TFlexibleUnit;
Run Code Online (Sandbox Code Playgroud)

当我做一个:

ThisFlexibleUnit.makeThisInstanceX(var1); //want to behave in way "var1"
ThatFlexibleUnit.makeThisInstanceX(var2); //want to behave in way "var2"
Run Code Online (Sandbox Code Playgroud)

它们似乎都共享相同的变量"myLocalVar".

原则上,我做错了吗?如果这是正确的方法那么这是调试我所拥有的东西(这个问题太大而无法发布),但如果这在原则上不正确那么有没有办法做我建议的事情?

编辑:

好的,所以这里学到的教训是类定义就是这样.许多类可以放在一个单元中,该Type部分中所有类的所有实例共享单元的实现部分.

delphi variables local instances delphi-units

1
推荐指数
1
解决办法
3881
查看次数

广度优先或深度优先搜索

我知道这个算法是如何工作的,但是不能决定何时使用哪种算法?

是否有一些指导方针,哪一个比其他或任何考虑更好?

非常感谢.

c++ algorithm breadth-first-search depth-first-search

7
推荐指数
1
解决办法
4967
查看次数

Clojure中的函数组合?

Clojure可以像Haskell那样实现(g∘f)构造g . f吗?我目前正在使用类似的解决方法(fn [n] (not (zero? n))),这不是很好:)

clojure

35
推荐指数
2
解决办法
7957
查看次数

参考和对象切片

我没有和我一起使用有效的C++,这让我非常烦恼,所以我必须要求自己的理智.特定

class Foo : public Bar{}

void MyFunc(Bar &_input);
Run Code Online (Sandbox Code Playgroud)

如果我通过了Foo,我是否与切片问题纠缠在一起还是我避免了它?

c++ object-slicing

11
推荐指数
2
解决办法
3040
查看次数

如何设置tableView的背景颜色

我一直尝试但无法成功设置TableView的backgroundColor.设置tableView.backgroundColor和/或cell.backgroundColorclearColor当父视图控制器是没有工作UIViewContoller.

我的nib文件结构是

FileOwner
View
UITableView
Run Code Online (Sandbox Code Playgroud)

(注意:我将TableView设置为groupsTable部分)

第一次尝试,我UIView在代码中创建了viewDidLoad

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 300)] autorelease;
[view setBackgroundColor:UIColor blueColor]; // color it just to see if it is created at the right place
[self.tableView sendSubViewToBack:view];
Run Code Online (Sandbox Code Playgroud)

它有效,但它隐藏了细胞的内容.我能够看到标题的内容,但不能看到单元格内容.(但是当我更改视图的坐标(0,150,160,300)时,我能够看到单元格的内容,但随后它会松开tableview的backgroundColor.

第二次尝试,我创建了imageView

View
ImageView
UITableView
Run Code Online (Sandbox Code Playgroud)

并设置self.tableView.backgroundColor = [UIColor clearColor];但没有奏效.

我用谷歌搜索,但没有和平的答案.

iphone xcode uitableview uiviewcontroller

2
推荐指数
1
解决办法
1万
查看次数

选择r中组中具有最大变量值的行

a.2<-sample(1:10,100,replace=T)
b.2<-sample(1:100,100,replace=T)
a.3<-data.frame(a.2,b.2)

r<-sapply(split(a.3,a.2),function(x) which.max(x$b.2))

a.3[r,]
Run Code Online (Sandbox Code Playgroud)

返回列表索引,而不是整个data.frame的索引

我试图返回b.2每个子组的最大值a.2.我怎样才能有效地做到这一点?

r groupwise-maximum

9
推荐指数
3
解决办法
8312
查看次数

如何创建数字列表并在Ruby中有效地附加它

给定一个最小整数和最大整数,我想创建一个数组,从最小值到最大值计数2,然后退回(再次按2,重复最大数字).

例如,如果最小数字是1,最大值是9,我想要[1, 3, 5, 7, 9, 9, 7, 5, 3, 1].

我想尽可能简洁,这就是我使用单行的原因.

在Python中,我会这样做:

range(1, 10, 2) + range(9, 0, -2)
Run Code Online (Sandbox Code Playgroud)

在我刚刚开始学习的Ruby中,我到目前为止所提出的是:

(1..9).inject([]) { |r, num| num%2 == 1 ? r << num : r }.reverse.inject([]) { |r, num| r.unshift(num).push(num) }
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我知道必须有更好的方法.它是什么?

ruby arrays range

6
推荐指数
1
解决办法
3494
查看次数

Rails 路由问题:如何将哈希属性传递给生成的资源?

说我的routes.rb上有这个:

resources :accounts
Run Code Online (Sandbox Code Playgroud)

除其他外,这给了我:

new_account GET /account/new
Run Code Online (Sandbox Code Playgroud)

我需要生成这个(例如)“/account/new#test”

如何将“#test”传递给new_account_path()

ruby-on-rails

0
推荐指数
1
解决办法
308
查看次数

iphone SDK:没有调用UIView dealloc.为什么?

我有一个名为TiledImage的自定义UIView,它有一个名为tilesImage的属性和一个自定义的drawRect方法.我将此视图添加到我的ViewController中,但是当取消分配ViewController时,即使我正在释放视图并将其设置为nil,也不会调用此视图的dealloc.可能是什么导致了这个?我没有对视图的任何其他引用,所以我的理解是它应该正确释放.

这是我将视图添加到视图控制器的方法:

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"tile" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];

self.backImageView = [[TiledImage alloc] initWithFrame:IMAGE_FRAME];
self.backImageView.tiledImage = image;
[self.view addSubview:self.backImageView];
[self.view sendSubviewToBack:self.backImageView];
[image release];
Run Code Online (Sandbox Code Playgroud)

在我的ViewController的dealloc方法中,我有这个:

_backImageView.tiledImage = nil, [_backImageView release], _backImageView = nil;
Run Code Online (Sandbox Code Playgroud)

这行代码被命中,但是在TiledView上从不调用dealloc.请注意,_backImageView是backImageView使用的属性var.

有人可以给我一些关于我可能做错的想法,这会阻止调用TiledImage对象的dealloc吗?

iphone memory-management uiview

3
推荐指数
1
解决办法
4014
查看次数

同步功能

我怎么能用C#做我的函数将被互斥信号量保护JAVA同步函数

.net c# multithreading synchronization

2
推荐指数
1
解决办法
1万
查看次数