鉴于希望在单元文件中使用有用的Region编译器指令,允许在以前版本的Delphi中使用这些相同单元的最佳方法是什么?似乎没有"体面"的方法.(所需的IDE版本是Delphi 7)
我喜欢在方法定义之上设置区域来隐藏/显示方法定义帮助和版本历史记录注释,但是我必须用其他编译器指令包围Region指令,这有点杀死了区域编译器指令的"清晰度".
我想如果使用不支持区域的Delphi版本,可以编写一个预处理器来注释掉所有的Region/EndRegion指令.然后添加回更新的版本?
我不是100%切换到Delphi 2009并且需要支持多个IDE版本.
Aaaarg ......好吧,让我们冷静吧.
有人设置MKMapView的区域有任何问题吗?它从未与我合作过.
这段代码:
-(void)setUserCenteredSpan:(MKCoordinateSpan)span{ // for this example, span = {0.5, 0.5}
// Current region (just initialised)
NSLog(@"%f, %f - %f, %f", self.region.center.latitude,
self.region.center.longitude,
self.region.span.latitudeDelta,
self.region.span.longitudeDelta);
// New Region
MKCoordinateRegion region = MKCoordinateRegionMake([[[self userLocation] location] coordinate],
span);
NSLog(@"%f, %f - %f, %f", region.center.latitude,
region.center.longitude,
region.span.latitudeDelta,
region.span.longitudeDelta);
// Region saved in MKMapView
[self setRegion:region animated:NO];
NSLog(@"%f, %f - %f, %f", self.region.center.latitude,
self.region.center.longitude,
self.region.span.latitudeDelta,
self.region.span.longitudeDelta);
}
Run Code Online (Sandbox Code Playgroud)
返回该日志:
30.145127, -40.078125 - 0.000000, 0.000000
0.000000, 0.000000 - 0.500000, 0.500000
0.000000, 0.000000 - 0.000000, …Run Code Online (Sandbox Code Playgroud) 任何人都知道一个很好的方法来找出我的代码中有额外的#region或#endregion的位置?我有大约5000行c#代码,我现在正尝试手动执行.任何帮助表示赞赏.
我有一个用户控件,完全自定义绘制图形的许多对象绘制自己(从OnPaint调用),背景是一个大位图.我内置了缩放和平移功能,并且在画布上绘制的对象的所有坐标都是位图坐标.
因此,如果我的用户控件是宽1000个像素,位图是1500个像素宽,而我在200%放大放大,然后在任何时候我只会看位图的宽度的1/3.并且如果您滚动到最左侧,则在位图上具有从点100,100开始的矩形的对象将出现在屏幕上的点200,200处.
基本上我需要做的是创建一种有效的方式来重绘仅需要重绘的内容.例如,如果我移动一个对象,我可以将该对象的旧剪辑矩形添加到一个区域,并将该对象的新剪辑矩形与该区域合并,然后调用Invalidate(region)来重绘这两个区域.
但是这样做意味着我必须不断地将对象位图坐标转换为屏幕坐标,然后再将它们提供给Invalidate.我必须始终假设PaintEventArgs中的ClipRectangle处于屏幕坐标中,以便其他窗口使我的无效.
有没有办法可以使用Region.Transform和Region.Translate功能,这样我就不需要从位图转换为屏幕坐标?在某种程度上它不会干扰在屏幕坐标中接收PaintEventArgs?我应该使用多个地区还是有更好的方法来做这一切?
我现在正在做的示例代码:
invalidateRegion.Union(BitmapToScreenRect(SelectedItem.ClipRectangle));
SelectedItem.UpdateEndPoint(endPoint);
invalidateRegion.Union(BitmapToScreenRect(SelectedItem.ClipRectangle));
this.Invalidate(invalidateRegion);
Run Code Online (Sandbox Code Playgroud)
并在OnPaint()......
protected override void OnPaint(PaintEventArgs e)
{
invalidateRegion.Union(e.ClipRectangle);
e.Graphics.SetClip(invalidateRegion, CombineMode.Union);
e.Graphics.Clear(SystemColors.AppWorkspace);
e.Graphics.TranslateTransform(AutoScrollPosition.X + CanvasBounds.X, AutoScrollPosition.Y + CanvasBounds.Y);
DrawCanvas(e.Graphics, _ratio);
e.Graphics.ResetTransform();
e.Graphics.ResetClip();
invalidateRegion.MakeEmpty();
}
Run Code Online (Sandbox Code Playgroud) 我在地图上有多个注释 - 尽管用户可能需要滚动才能看到它们.我希望用户能够选择一个按钮使其全部适合地图 - 无需滚动/手动调整大小.
我确定了分钟.最多 我希望在地图上显示的点的纬度和经度(例如minLat,maxLat,minLong,maxLong).
但是,我正在努力使用特定的公式来获取传递给mapview.setLocation的经度和纬度属性.有关我可以使用的公式的任何指示?
获取任意Windows区域的最快方法是什么?
我知道我可以枚举边界矩形的所有点并调用PtInRegion()函数但看起来不是很快.也许你知道一些更快的方法?
如果我按如下方式创建S3存储桶:
AmazonS3Config amazonS3Config = new AmazonS3Config
{
ServiceURL = "s3-eu-west-1.amazonaws.com"
};
AmazonS3Client amazonS3Client = new AmazonS3Client(myAccessKeyId,
mySecretAccessKey, amazonS3Config)
PutBucketRequest request = new PutBucketRequest
{
BucketName = bucket.Name,
BucketRegion = S3Region.EU
};
amazonS3Client.PutBucket(request);
Run Code Online (Sandbox Code Playgroud)
如您所见,我已明确指定在欧盟地区创建我的存储桶,
但当我访问AWS explorer时,我可以看到我的存储桶在所有区域都可用.
如果我的存储桶总是在所有区域中复制,那么指定存储区域有什么意义呢?
有人可以澄清一下吗?
谢谢!
我试图通过使用索引号提取字符串的一部分.当有
"OEIUFHWOIEFWNFOPQWJFHQWOIHFEB..."
Run Code Online (Sandbox Code Playgroud)
我需要字符串,5:10 (FHWOIE)我发现它不可能通过REGEX,因为它只返回布尔而不返回组.但是,我没有设法通过位置找到字符串上的区域选择.现在我想知道是否有?
我发现部分可能通过......
BIND(REPLACE(?sequence, '^.{100}', "") AS ?sequencestrip1)
Run Code Online (Sandbox Code Playgroud)
但不是
BIND(REPLACE(?sequence, '^.{?start}', "") AS ?sequencestrip1)
Run Code Online (Sandbox Code Playgroud)
我认为这适用于任何有兴趣的人:
BIND(REPLACE(?sequence, "^.{"+str(?start)+"}", "") AS ?sequencestrip1)
Run Code Online (Sandbox Code Playgroud)
当然要删除你感兴趣的区域
BIND(REPLACE(?region, ".{"+str(strlen(?region)-10)+"}$", "") AS ?upstream)
Run Code Online (Sandbox Code Playgroud) 在MSVC和C#中,#pragma region可用于标记代码段.
同样,在GCC/Clang中,#pragma mark可以完成同样的事情.
是否可以定义一个宏,例如CODELABEL(label)哪个宏适用于两个编译器?
基本上,我想避免必须执行以下操作:
#ifdef _WIN32
#pragma region Variables
#else
#pragma mark Variables
#endif
bool MyBool;
int MyInt;
#ifdef _WIN32
#pragma region Methods
#else
#pragma mark Methods
#endif
void MyMethod();
void AnotherMethod();
Run Code Online (Sandbox Code Playgroud)
...而是做这样的事情:
CODELABEL( Variables )
bool MyBool;
int MyInt;
CODELABEL( Functions )
void MyMethod();
void AnotherMethod();
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?
我目前正在使用Google Cloud Function来构建我的restful API.但是,我发现它很慢,因为我的Google-Cloud-Function服务器位于"us-central",而我的服务是在亚洲.
我尝试将我的Google项目的默认区域更改为"asia-west-1"并重新启动云功能 - 我按照此处列出的步骤进行了操作- 但不幸的是,它仍处于"us-central"状态.如何更改功能区域?
latency region google-cloud-platform gcloud google-cloud-functions