社区
C++ Builder
帖子详情
StringGrid中实如何现如提示功能
ie4888
2006-06-28 04:33:18
鼠标一到到某一Cell,显示相关的提示Hint
1、提示内容是固定的如何实现--相对简单
2、Hint是动态的,即鼠标移动到该Cell后,计算数据得到提示再显示,怎么实现?
...全文
359
22
打赏
收藏
StringGrid中实如何现如提示功能
鼠标一到到某一Cell,显示相关的提示Hint 1、提示内容是固定的如何实现--相对简单 2、Hint是动态的,即鼠标移动到该Cell后,计算数据得到提示再显示,怎么实现?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BlueDeepOcean
2006-06-29
打赏
举报
回复
http://community.csdn.net/Expert/topic/4848/4848617.xml?temp=2.766055E-02
ie4888
2006-06-29
打赏
举报
回复
各位高人,我几年没用Delphi和 C++Builder了了,最后一次使用还是Delphi3,C++Builder 3
给分、给分
BlueDeepOcean
2006-06-29
打赏
举报
回复
我没说错吧,就需要再增加那么几行就可以大功告成了。
LZ现身!
BlueDeepOcean
2006-06-29
打赏
举报
回复
^o^
安馨安旭
2006-06-29
打赏
举报
回复
呵呵,开始是出了几个错误,不够后来都自己改了^_^
BlueDeepOcean
2006-06-29
打赏
举报
回复
另外,你可能粘贴试验的代码也选错了吧,为了这个问题,我粘贴了很多……^-^b
安馨安旭
2006-06-29
打赏
举报
回复
哦,没注意你留的那个的东西,不好意思……
BlueDeepOcean
2006-06-29
打赏
举报
回复
援引早期的回复:
上述代码存在一个问题,就是当鼠标在非StringGrid区域从StringGrid的右侧和下侧进入StringGrid时,将出现错误。后来经过分析,发现原来是组件成像过程中画组件的时候出现的右侧和下侧“阴影”区域所产生的鼠标值的问题。
这个问题我已经解决了。但是希望楼主自己解决,毕竟吃现成的对你弊大于利。
BlueDeepOcean
2006-06-29
打赏
举报
回复
上面的代码我说了存在一些缺陷,留给楼主改正,大部分已经实现了,而且我已经将这个缺陷给改正了。如果你想得到完美的结果,可以对此进行修改的。
BlueDeepOcean
2006-06-29
打赏
举报
回复
怎么在我的机器上没有出现过这个问题呢?
安馨安旭
2006-06-29
打赏
举报
回复
这种情况是鼠标不管是从哪个方向移出表格在移回表格产生的
安馨安旭
2006-06-29
打赏
举报
回复
显示的格子不对应,比如说我鼠标放的是第3行的第三格,但是显示的是第2行的第3格内容。。。
BlueDeepOcean
2006-06-29
打赏
举报
回复
楼上说说怎么个不舒服法?
安馨安旭
2006-06-29
打赏
举报
回复
学习一下鼠标移动显示内容,发现用起来很不舒服。。。
daydayup234
2006-06-29
打赏
举报
回复
对于第2个问题,如果指“点击该单元格”
还可以有另外截然不同的思路。
daydayup234
2006-06-29
打赏
举报
回复
我回答“相对简单”的第1问:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
StringGrid1->Hint= //注意缺省 空
"1、提示内容是固定的这样实现--\
只要鼠标在StringGrid1上任意位置停留一下\
就会显示这个hint";
StringGrid1->ShowHint=true;//注意缺省 false
StringGrid1->ParentShowHint=false;//注意缺省 true
}
BlueDeepOcean
2006-06-29
打赏
举报
回复
上述代码存在一个问题,就是当鼠标在非StringGrid区域从StringGrid的右侧和下侧进入StringGrid时,将出现错误。后来经过分析,发现原来是组件成像过程中画组件的时候出现的右侧和下侧“阴影”区域所产生的鼠标值的问题。
这个问题我已经解决了。但是希望楼主自己解决,毕竟吃现成的对你弊大于利。
亮灯了
2006-06-29
打赏
举报
回复
支持一下。
BlueDeepOcean
2006-06-29
打赏
举报
回复
以下代码实现了当鼠标移动到StringGrid的任意Cell上方时均可使其获得焦点,并显示相应的但愿格内容提示:
.h
#incluce <math.hpp>
.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unt_StringGrid.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
THintWindow *hw;
TPoint P;
int CurRIdx,CurCIdx;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
/*
The Matrix is 5×5
*/
hw = new THintWindow(StringGrid1);
hw->Parent = StringGrid1;
for (int r = 0;r < StringGrid1->RowCount;r ++)
for (int c = 0;c < StringGrid1->ColCount;c ++)
StringGrid1->Cells[c][r] = random(StringGrid1->ColCount * StringGrid1->RowCount);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
P.x = X;
P.y = Y;
if (P.x > ((TStringGrid*)Sender)->CellRect(((TStringGrid*)Sender)->Col,((TStringGrid*)Sender)->Row).left &&
P.x < ((TStringGrid*)Sender)->CellRect(((TStringGrid*)Sender)->Col,((TStringGrid*)Sender)->Row).right &&
P.y > ((TStringGrid*)Sender)->CellRect(((TStringGrid*)Sender)->Col,((TStringGrid*)Sender)->Row).top &&
P.y < ((TStringGrid*)Sender)->CellRect(((TStringGrid*)Sender)->Col,((TStringGrid*)Sender)->Row).bottom)
{
hw->Left = Left + ((TStringGrid*)Sender)->Left + ((TStringGrid*)Sender)->DefaultColWidth / 3 + P.x;
hw->Top = Top + ((TStringGrid*)Sender)->Top + ((TStringGrid*)Sender)->DefaultRowHeight * 3 / 2 + P.y;
hw->Caption = ((TStringGrid*)Sender)->Cells[((TStringGrid*)Sender)->Col][((TStringGrid*)Sender)->Row];
hw->Refresh();
}
else //处理对其他单元格的选择
{
CurCIdx = Floor(P.x / ((TStringGrid*)Sender)->DefaultColWidth);
CurRIdx = Floor(P.y / ((TStringGrid*)Sender)->DefaultRowHeight);
((TStringGrid*)Sender)->Col = CurCIdx;
((TStringGrid*)Sender)->Row = CurRIdx;
}
hw->Visible = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if (ACol == CurCIdx && ARow == CurRIdx)
CanSelect = true;
}
//---------------------------------------------------------------------------
forverlove
2006-06-28
打赏
举报
回复
学习
加载更多回复(2)
delphi
String
Grid
功能
程序
3. **属性的灵活运用**:
String
Grid
有很多可调整的属性,如: - `ColCount` 和 `RowCount`:定义了行和列的数量。 - `DefaultColWidth` 和 `DefaultRowHeight`:设定默认的列宽和行高。 - `FixedRows` 和 `...
C# data
grid
view实现Delphi
string
grid
功能
它提供了多种
功能
,如行、列的增删改查,排序,过滤等。在本教程中,我们将探讨如何使用C#的Data
Grid
View来实现类似Delphi中的
String
Grid
的
功能
。 Delphi是一款流行的面向对象的编程环境,它的
String
Grid
控件是一个...
string
grid
多选拖拽换行
String
Grid
的基本
功能
包括显示和编辑表格数据,但要实现多选和拖拽换行,我们需要扩展其默认行为。以下是一些关键知识点: 1. **多选模式**:默认情况下,
String
Grid
通常只允许单选。要启用多选,我们需要设置它的`...
string
grid
的check
功能
"
string
grid
的check
功能
"是指在
String
Grid
的单元格中添加复选框(Check Box)
功能
,使得用户可以通过勾选或取消勾选来表示一种选择状态。这在处理多选数据或者需要进行二元判断的情况时非常有用。 首先,我们需要...
string
grid
String
Grid
通常用于显示和编辑表格数据,类似于电子表格,但
功能
相对简单。在描述中提到的“在进货单里怎样连续保存数据”,这涉及到如何在
String
Grid
中处理和存储数据,特别是如何进行持久化存储,确保数据在程序...
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章