Текущий архив: 2006.08.13;
Скачать: CL | DM;
Вниз
Имя класса Найти похожие ветки
← →
Phoroon~ © (2006-07-26 20:58) [0]Првиет всем!!!
Нужно взять имя класса.
Вот сталкнулся с такой проблемой:
var p: PAnsiChar;
begin
GetClassName(Handle,p,30); //беру имя класса
Caption:=string(p); //в caption идут закорючки (вроде UTF8)
Label1.Caption:= UTF8Decode(p); //конвертирую (равно "пусто")
end;
Как преобразовать?
← →
Dmitrij_K (2006-07-26 21:09) [1]PAnsiChar - Указатель на массив байт.
Память под него надо выделять, хорошо AV не получилprocedure TForm1.Button1Click(Sender: TObject);
var p: PAnsiChar;
begin
p := StrAlloc(255);
GetClassName(Handle,p,255);
Caption := p;
StrDispose(p)
end;
← →
Мефисто (2006-07-26 21:18) [2]var
A: String;
begin
SetLength(A, 31);
GetClassName(Button1.Handle, @A[1], 31);
Caption := A;
end;
← →
Dmitrij_K (2006-07-26 21:29) [3]У кого меньше?
Ж)procedure TForm1.Button1Click(Sender: TObject);
var p : Array[0..255] of char;
begin
GetClassName(Handle,@p[0],SizeOf(p));
Caption := p;
end;
← →
Мефисто (2006-07-26 21:42) [4]
> Dmitrij_K (26.07.06 21:29) [3]
У меня :) Т.к. размер буфера меньше ;)
← →
Phoroon~ © (2006-07-26 22:12) [5]Ой, спасибо вам!!!
О памяти, как-то не подумал.
ИМХО
Хотя не мешало бы!!!
← →
Loginov Dmitry © (2006-07-27 07:30) [6]Мефисто (26.07.06 21:18) [2]
А если имя класса меньше 31 символа, то зачем в Caption заносить всю строку?
>Dmitrij_K (26.07.06 21:29) [3]
> У кого меньше?
По хорошему не помешало бы обнулить символы массива (FillChar"ом, например)
Страницы: 1 вся ветка
Текущий архив: 2006.08.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.049 c