我在一个单独的单元中有一些常量,如果type为ShortInt(<128),我不能对这些常量执行.ToString.
示例:创建单位并添加:
const abc = 127;
Run Code Online (Sandbox Code Playgroud)
创建一个TForm并在FormShow中执行:
Edit1.Text := abc.tostring;
Run Code Online (Sandbox Code Playgroud)
你知道为什么它不起作用吗? 输入所需的记录,对象或类.
如果常量在同一个单元中,它可以工作.
我试图找到一种方法快速将大量数据加载到数据库中,一个建议使用Firebird外部表,我想了解更多有关此方法,我尝试在线搜索但我没有得到有关的信息这个,我想知道它们是如何工作的?表格必须完全相同吗?如果从多个数据库加载数据怎么办?
所以基本上当用户点击复选框时,我想在我的列表中添加该项,我尝试使用OnChange事件,但这对我不起作用,因为即使没有点击Checkbox也会被触发.
我的代码简单明了
procedure LvUserChange(Sender: TObject; Item: TListItem;Change: TItemChange);
var
objUser : TUsers;
begin
if not assigned(objListOfChangedUsers) then
objListOfChangedUsers := TObjectList.Create;
objUser := Item.Data;
objListOfChangedUsers.Add(objUser);
end;
Run Code Online (Sandbox Code Playgroud)
我希望只有在ListView中单击复选框时才会触发此代码
请指教,我对Delphi还很陌生。我想要一个带有复选框项目的组合框,我可以使用或做什么?我正在使用Delphi 2009。
我想要一个比较时间的方法,例如,如果Atime比Btime更早出现,我会使用CompareTime函数,但我对这个函数的问题是"Bold Brackets"中所说的(见下文)
调用CompareTime来比较A和B指定的两个TDateTime值.CompareTime返回:LessThanValue如果A发生在当天早于B(即使A发生在比B 更晚的一天).如果A在当天晚些时候发生在B之外,则为GreaterThanValue (即使A发生在比B更早的日子).
我有一个 Excel 电子表格,但现在我的问题是我希望能够只读取特定的列,电子表格中的列超过 20,我只需要读取 3 列。
procedure TForm1.sh1(SheetIndex: integer);
Var
Xlapp1,Xlrange, Sheet:Variant ;
MaxRow, MaxCol,X, Y:integer ;
str:string;
arrData:Variant;
begin
try
Str:=trim(form1.OpenDialog1.FileName);
XLApp1 := createoleobject('excel.application');
XLApp1.Workbooks.open(Str) ;
Sheet := XLApp1.WorkSheets[SheetIndex] ;
MaxRow := Sheet.Usedrange.EntireRow.count ;
MaxCol := sheet.Usedrange.EntireColumn.count;
arrData:= Sheet.UsedRange.Value;
stringgrid1.RowCount:=maxRow+1;
StringGrid1.ColCount:=maxCol+1;
for x := 1 to maxCol do
for y := 1 to maxRow do
stringgrid1.Cells[x,y]:=arrData[y, x];
XLApp1.Workbooks.close;
Except
on E : Exception do begin
XLApp1.Workbooks.close;
ShowMessage(E.Message);
end;
end;
end;
Run Code Online (Sandbox Code Playgroud) delphi ×6
delphi-2009 ×2
const ×1
data-import ×1
delphi-2007 ×1
delphi-xe3 ×1
excel ×1
firebird ×1
helper ×1
sql ×1
tlistview ×1