我想创建一个字符串网格来显示某种垂直光标以突出显示当前选定的列.因此,在MouseDown中我调用setCurPos,然后调用InvalidateCol使当前列无效.这称为DrawCell.DrawCell将光标绘制在当前列上.
问题是:如果我在网格中有更多行,那么它可以显示其中一些不可见(当然),因此网格的垂直滚动条将自动出现.当我向下滚动以查看网格底部的行时,光标不会在这些行中绘制.看起来像未绘制光标的底行(现在在屏幕上可见)的数量与网格顶部的不可见行的数量成比例.
如果我最小化并恢复应用程序,光标很好地绘制.所以,很明显invalidateColumn()不起作用.
procedure TmyGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
VAR aCol, aRow: Integer;
begin
MouseToCell(X, Y, ACol, ARow);
...
inherited MouseDown(Button, Shift, X, Y);
CursorPosFocus:= ACol;
end;
procedure TmyGrid.setCurPos(CONST NewColumn: Integer);
VAR OldPos: Integer;
begin
...
OldPos:= CursorPos;
FCursorPos:= NewColumn;
...
//- This is not working:
//InvalidateCol(OldPos);
//InvalidateCol(NewColumn);
//Update;
//- THIS WORKS:
InvalidateGrid;
end;
procedure TmyGrid.DrawCell(ACol, ARow: integer; ARect: TRect; AState: TGridDrawState);
Var TempRect: TRect;
begin
inherited;
...
{DRAW CURSOR}
if CursorPos= ACol then
begin
TempRect.Top := 0; …Run Code Online (Sandbox Code Playgroud) 我最近看到了几个Scala问题(例如这里,这里和这里),它们要求使用代理,并且它在我自己的工作中不止一次出现.Scala库有许多代理特征(14,如果我计算正确的话).
代理类/特征通常包含许多样板:
class FooProxy(val self: Foo) extends Foo {
// added behavior
def mymethod = ...
// forwarding methods
def method1 = self.method1
def method2(arg: String) = self.method2(arg)
...
}
trait Foo {
def method1: Unit
def method2(arg: String): Unit
}
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是定义一个Proxy[T]可以如下使用的特征:
class FooProxy(val self: Foo) extends Proxy[Foo] {
// added behavior
def mymethod = ...
}
Run Code Online (Sandbox Code Playgroud)
哪里trait Proxy[T] extends T.当然,如果Proxy没有编译器魔法,实际上不可能定义特征.
我的下一个想法是寻找一个编译器插件(这种功能显然不在现有的编译器中,或者这14个代理特性的来源会小得多).果然,我找到了Kevin Wright的AutoProxy插件.该插件旨在整齐地解决代理问题,以及其他用例(包括动态混合):
class FooProxy(@proxy val …Run Code Online (Sandbox Code Playgroud) 好的,所以我之前的问题没有产生任何有用的答案,所以我会尝试从不同的方向来.
我的应用程序可能有几个窗口.给定屏幕坐标中的一个点,我需要找到它"落入"哪个窗口 - 即找到包含所述点的所有窗口中最重要的窗口.
如果他们Visual在一个窗口内,我会用VisualTreeHelper.HitTest.但由于它们是不同的窗口,因此不清楚该方法的第一个参数是什么.
我有以下xml,并希望在其中插入额外的xml:
<root>
<steps>
<step name="step1" type="process">
<steps>
<step name="substep1">
</step>
</steps>
</step>
<step name="step2" type="process">
<steps>
<step name="substep1">
<!-- more substeps...-->
</step>
</steps>
</step>
<step name="step3" type="process">
<steps>
<step name="substep1">
</step>
<step name="substep2">
</step>
<!-- more substeps...-->
</steps>
</step>
<!-- THE BELOW IS WHAT I WISH TO ADD... and it has to be here -->
<step name="reference">
<!-- These stuff have been hardcoded in my xsl so its fine -->
</step>
<!-- ends -->
</steps>
<references>
<reference name="reference1">
</reference>
. …Run Code Online (Sandbox Code Playgroud) 我的代码:
for(var myLine = 0; myLine < 100; myLine++)
document.getElementById("myDiv").innerHTML += "line " + myLine + "<br>";
...............
<div style="position:...etc; overflow:auto;" id="myDiv"></div>
Run Code Online (Sandbox Code Playgroud)
这在所有非移动平台上的每个浏览器中都没有出现故障.但是......当在iPhone(Safari)或Android(webkit)上实现时,div会填充文本,但是当文本超过div的高度并且用户无法"推送"时,不会生成滚动条内容也是如此.因此无论如何,有效溢出总是"隐藏".
我很好奇是否有一些我正在忽视的替代方法,或者这只是一个我现在无法绕过的错误.
您有什么提示/建议来编写更易理解的代码?
由于我最近一直在维护的一些代码缺乏结构和糟糕的格式,我有点感到沮丧,并且想提出一系列编写更易理解的代码的指南.
无论语言如何,任何建议都可能有所帮助.
问候.
读取制表符分隔文件并仅处理几列的最佳/最快方法是什么?
样品:
Name\tAddress\tCit\t\State\Zip\Date of Move
Run Code Online (Sandbox Code Playgroud)
我期待在接下来的30天内只获得column1和colum6(名称,移动日期,并按照移动日期在未来30天内排序......).
我玩过Get-Content | Where-Object并没有任何运气......
我能够将选项卡式文件转换为CSV.
获得CSV文件后,我已完成以下操作以仅获取我需要的列.
PS D:> import-csv.\ test.csv | 选择"名称","MoveDate","地址"| Sort-Object"MoveDate"
这将返回我只需要的列,但不按日期排序...日期字段按字符串排序.
2010年1月12日1/13/2010
我需要将它排序为日期时间字段...
我的样本数据在该字段中看起来像这样......
9/30/2009 12:21
Run Code Online (Sandbox Code Playgroud)
如何按实际日期排序?
最好只返回今天+ 30天的日期.
我想知道是否有可能在Google maps api v3中偏移地图的中心.我想以像素为单位控制这个偏移量,因为lat和lng似乎是错误的并且很难预测.
我只需要放置一个标记,然后将中心偏移250px,这样我就可以在地图中间放置一些其他内容.
希望有人可以帮忙!
我希望能够在我的WPF应用程序上直接创建一个使用开放层的应用程序.我发现我可以创建一个浏览器对象并调用JavaScript,但我不需要一个完整的浏览器.是否有一些我可以使用的脚本对象并一起绕过浏览器对象?
我碰巧真的喜欢Markdown(可能是因为SO)而且我喜欢在Haskell中编程.我最近发现了Literate Haskell(LHS),我想一起使用Markdown和LHS.让我给你这个愚蠢的例子:
Crazy Literate Haskell
======================
This is an example of some literate Haskell Code:
> module Main where
Look at that IO Monad work:
> main = return 2 >>= print
Wasn't that cool?
Run Code Online (Sandbox Code Playgroud)
这是一个有文化的haskell文件的例子,后来由Markdown解析.但是,我希望代码实际上出现在html代码块中,并且没有>之前的>.因此,我不能仅仅将所有代码行缩进四,因为这会产生您在上面看到的降价.基本上,我希望html像这样出来:
<h1>Crazy Literate Haskell</h1>
<p>This is an example of some literate Haskell Code:</p>
<pre><code>module Main where
</code></pre>
<p>Look at that IO Monad work:</p>
<pre><code>main = return 2 >>= print
</code></pre>
<p>Wasn't that cool?</p>
Run Code Online (Sandbox Code Playgroud)
需要注意的是它没有>符号.我该怎么办?