我想通过提交来让dbgrid自动选中显示刚刚提交的那条记录.
比如说我增加了记录1,按一下刷新按钮,dbgrid 中刚加入的那条记录自动处于选中状态,请问关键代码如何啊?
还有如何用代码获得本机的IP地址啊?请高手帮忙啊
一旦成功,立马结贴
比如说我增加了记录1,按一下刷新按钮,dbgrid 中刚加入的那条记录自动处于选中状态,请问关键代码如何啊?
还有如何用代码获得本机的IP地址啊?请高手帮忙啊
一旦成功,立马结贴
Edit;
FieldByName('FieldName').AsBoolean := True;
Post;
Ip通过indy控件,你在网上找有下的,安装一下,IpWatch,是个眼睛的图标.
如果针对sql查询得到的数据集,很难去定位一条记录,因为没有记录号。
最好是把插入记录和显示记录分开,也就是说不要在dbgrid中插入,容易控制些。
单纯定位好像可以用tdataset的lookup方法,去找已索引好的键值,前提是必须建索引。
看看帮助吧,我以前做过。
uses NB30; function GetMACAdress: string;
var
NCB: PNCB;
Adapter: PAdapterStatus; URetCode: PChar;
RetCode: char;
I: integer;
Lenum: PlanaEnum;
_SystemID: string;
TMPSTR: string;
begin
Result := '';
_SystemID := '';
Getmem(NCB, SizeOf(TNCB));
Fillchar(NCB^, SizeOf(TNCB), 0); Getmem(Lenum, SizeOf(TLanaEnum));
Fillchar(Lenum^, SizeOf(TLanaEnum), 0); Getmem(Adapter, SizeOf(TAdapterStatus));
Fillchar(Adapter^, SizeOf(TAdapterStatus), 0); Lenum.Length := chr(0);
NCB.ncb_command := chr(NCBENUM);
NCB.ncb_buffer := Pointer(Lenum);
NCB.ncb_length := SizeOf(Lenum);
RetCode := Netbios(NCB); i := 0;
repeat
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command := chr(NCBRESET);
Ncb.ncb_lana_num := lenum.lana[I];
RetCode := Netbios(Ncb); Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command := chr(NCBASTAT);
Ncb.ncb_lana_num := lenum.lana[I];
// Must be 16
Ncb.ncb_callname := '* '; Ncb.ncb_buffer := Pointer(Adapter); Ncb.ncb_length := SizeOf(TAdapterStatus);
RetCode := Netbios(Ncb);
//---- calc _systemId from mac-address[2-5] XOR mac-address[1]...
if (RetCode = chr(0)) or (RetCode = chr(6)) then
begin
_SystemId := IntToHex(Ord(Adapter.adapter_address[0]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[1]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[2]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[3]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[4]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[5]), 2);
end;
Inc(i);
until (I >= Ord(Lenum.Length)) or (_SystemID <> '00-00-00-00-00-00');
FreeMem(NCB);
FreeMem(Adapter);
FreeMem(Lenum);
GetMacAdress := _SystemID;
end;
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,NB30;
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption := GetMACAdress;
end;