Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

тупое неравенство - не мгу разобраться   Найти похожие ветки 

 
Звоновский   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
2-1201628602
NeiL
2008-01-29 20:43
2008.02.24
Выбрать RadioButton


4-1183840029
Денис178
2007-07-08 00:27
2008.02.24
Разморозить диалоговое окно


6-1180700684
Тфьу
2007-06-01 16:24
2008.02.24
Indy 10 TThread


11-1184171451
MTsv DN
2007-07-11 20:30
2008.02.24
Новости http://www.kolnmck.ru/


15-1200454736
ply
2008-01-16 06:38
2008.02.24
MySQL компонент