发布网友 发布时间:37分钟前
共4个回答
热心网友 时间:23分钟前
S:Pchar;
这句你S申明的类型是pchar,是个指针类型,Edit1.text的类型是string类型,我们知道delphi里的string类型有个特点,就是当一个字符串被重复引用时,它不会去复制一份字串出来,而是给string类型内置的有一项叫引用计数加1,实际指向还是最原始的地址,在这例就是edit1.text的地址,所以Pchar(edit1.Text)和直接pchar('threeqtest001')是不同的,哪怕你edit1.Text的值就是'threeqtest001'.
原因是Pchar(edit1.Text)传的是text的指针,而pchar('threeqtest001')传的是函数体内一个字符串的指针。edit1.Text 和你函数体内字符串的内存地址显然是不同的
热心网友 时间:22分钟前
这两段代码都嵌入了汇编语言.咱也搞不懂.edit1.text肯定是字符串类型.但它通过Pchar('threeqtest001');语句进行了强制转换.
热心网友 时间:21分钟前
应该是皮肤一类的把 能给分就给分吧
热心网友 时间:29分钟前
function TCustomEdit.GetSelText: string;
var
P: PChar;
SelStart, Len: Integer;
begin
SelStart := GetSelStart;
Len := GetSelLength;
SetString(Result, PChar(nil), Len);
if Len <> 0 then
begin
P := StrAlloc(GetTextLen + 1);
try
GetTextBuf(P, StrBufSize(P));
Move(P[SelStart], Pointer(Result)^, Len);
finally
StrDispose(P);
end;
end;
end;