做个Console式界面的组件

dants 2006-05-24 09:06:36
如题。
重新发布问题进行请教,如果有朋友在别的板块看过请再发个贴指点下。。。
打算从TMemo继承。界面要和DOS或者cmd一致,效果也要一致(比如:按上箭头键不能到上一行,按右箭头键不能向右除非右边有字符等等)。
需要解决的问题:界面效果,输入限制
还有,需要处理什么消息?
...全文
173 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dants 2006-06-01
  • 打赏
  • 举报
回复
组件已经完成。
结贴。
dants 2006-05-26
  • 打赏
  • 举报
回复
谢谢楼上的。

方法不错,不过不是我想要的。现在需要作成组件。
wudi_1982 2006-05-25
  • 打赏
  • 举报
回复
界面要和DOS或者cmd一致

背景搞成黑的。。

效果也要一致(比如:按上箭头键不能到上一行,按右箭头键不能向右除非右边有字符等等)。
需要解决的问题:界面效果,输入限制

在ONKEYPRESS 或者 ONKEYDOWN中做。

老之 2006-05-25
  • 打赏
  • 举报
回复
用Additional页的ApplicationEvents控件

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
with Memo1 do
begin
if (Msg.hwnd = Handle) and
((Msg.message = WM_LBUTTONDOWN) or //屏蔽鼠标左右键
(Msg.message = WM_RBUTTONDOWN) or
(Msg.message = WM_KEYDOWN) and //屏蔽键盘上下键
(Msg.wParam = VK_UP) or
(Msg.wParam = VK_DOWN))
then Handled := True;
if (Msg.message = WM_KEYDOWN) and ((Msg.wParam=VK_BACK) or (Msg.wParam=VK_LEFT)) then
if CaretPos.X = 0 then Handled := True else Handled := False; //退格或左键不能返回上一行
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Color := clBlack;
Memo1.Font.Color := clWhite;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧