Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
Внизтупое неравенство - не мгу разобраться Найти похожие ветки
← →
Звоновский (2008-01-29 00:43) [0]
if LowerCase(BuffTxt) = LowerCase(PChar(CmdRec^.ChldClss)) then beginSendDebugMsg("h="+IntToStr(h)+" GetClassName = "+BuffTxt);
end;
Должно быть равно, но не равняется и немогу ничего поделать.
← →
Семеныч (2008-01-29 00:48) [1]Текст русский? Тогда AnsiLowerCase.
← →
Звоновский (2008-01-29 00:54) [2]Нет аснгл.
пеперед этим вызывалSendDebugMsg("CmdRec^.ChldClss = "+LowerCase(PChar(CmdRec^.ChldClss)));
SendDebugMsg("BuffTxt = "+LowerCase(BuffTxt));
В он вернул:
4. PID: 5560 CmdRec^.ChldClss = edit
5. PID: 5560 BuffTxt = edit
← →
Семеныч (2008-01-29 00:58) [3]Помотрите, что показывает отладчик в BuffTxt и в CmdRec^.ChldClss
И попробуйте привести к строке:
AnsiLowerCase(String(PChar(CmdRec^.ChldClss)))
← →
Звоновский (2008-01-29 01:12) [4]сделал как говорили
SendDebugMsg("CmdRec^.ChldClss = "+AnsiLowerCase(String(PChar(CmdRec^.ChldClss))));
SendDebugMsg("BuffTxt = "+AnsiLowerCase(String(BuffTxt)));
Вернул, - все впорядке
4. PID: 6116 CmdRec^.ChldClss = edit
5. PID: 6116 BuffTxt = edit
if AnsiLowerCase(String(BuffTxt)) = AnsiLowerCase(String(PChar(CmdRec^.ChldClss))) then begin
SendDebugMsg("h="+IntToStr(h)+" GetClassName = "+BuffTxt);
SendDebugMsg("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
end;
Но равенство не наступает :((
← →
Семеныч (2008-01-29 01:23) [5]А там пробелов в начале и в конце, часом, нет?
AnsiLowerCase(Trunc(String(BuffTxt)))
AnsiLowerCase(Trunc(String(PChar(CmdRec^.ChldClss))))
← →
Звоновский (2008-01-29 01:33) [6]Я разгадал загадку неравенства
St1:=LowerCase((BuffTxt));
St2:=LowerCase(PChar(CmdRec^.ChldClss));
for i:=1 to length(St1) do StOrd1:=StOrd1+"#"+IntToStr(Ord(St1[i]));
for i:=1 to Length(St2) do StOrd2:=StOrd2+"#"+IntToStr(Ord(St2[i]));
SendDebugMsg("StOrd1 = "+StOrd1);
SendDebugMsg("StOrd2 = "+StOrd2);
4. PID: 5068 CmdRec^.ChldClss = edit
5. PID: 5068 BuffTxt = edit
6. PID: 5068 StOrd1 = #101#100#105#116#0#109#49#12#99#108#105#101#110#116#104#101#105#103#104#116#3#16 9#1#11#99#108#105#101#110#116#119#105#100#116#104#3#117#2#5#99#111#108#111#114#7 #9#99#108#98#116#110#102#97#99#101#12#102#111#110#116#46#99#104#97#114#115#101#1 16#7#15#100#101#102#97#117#108#116#95#99#104#97#114#115#101#116#10#102#111#110#1 16#46#99#111#108#111#114#7#12#99#108#119#105#110#100#111#119#116#101#120#116#11# 102#111#110#116#46#104#101#105#103#104#116#2#245#9#102#0
7. PID: 5068 StOrd2 = #101#100#105#116
← →
Звоновский (2008-01-29 01:36) [7]Судя по наличию #101#100#105#116#0#
Одно паражает откуда в имени класса Мульть-строка?
← →
Семеныч (2008-01-29 01:43) [8]> Звоновский (29.01.08 01:36) [7]
Это нормальная ASCIIZ-строка. У Вас как-то странно BuffTxt формируется Похоже на PChar, помять для которого была выделена с запасом, а потом не была обрезана по первому нулю.
Зачем тут вообще PСhar"ы нужны? Почему со строками не работать? Никаких бы проблем не было.
← →
Германн © (2008-01-29 01:57) [9]
> Звоновский (29.01.08 01:36) [7]
>
> Судя по наличию #101#100#105#116#0#
>
> Одно паражает откуда в имени класса Мульть-строка?
>
А это что за зверь "Мульть-строка"?
И как объявлена переменная BuffTxt?
← →
Звоновский (2008-01-29 02:06) [10]> Семеныч (29.01.08 01:43) [8]
Да стакими парараметрами вызывал
Var BuffTxt: String;
SetLength(BuffTxt,MAXCHAR);
GetClassName(h,PChar(BuffTxt),MAXCHAR);
Если нужно взять текст то длину буфера подгонял через
GetWindowTextLength(h);
а тут так оставил, вот на свои грабли и наступил..
← →
Звоновский (2008-01-29 02:10) [11]Вот еще хороший вопрос как заранее узнать длину буфера, если есть такие способы....?
← →
Семеныч (2008-01-29 08:29) [12]> Звоновский (29.01.08 02:10) [11]
> как заранее узнать длину буфера
Заранее - никак. Но ее возвращает GetClassName.
var
BuffTxt: String;
begin
SetLength(BuffTxt, MAXCHAR);
SetLength(BuffTxt, GetClassName(H, PChar(BuffTxt), MAXCHAR));
... // Здесь имеем "чистую" строку BuffTxt, уже без мусора
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c