Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.014 c
2-1201450575
Kiril
2008-01-27 19:16
2008.02.24
Чем заменить DBGrid?


15-1200686027
Palladin
2008-01-18 22:53
2008.02.24
вытесняющая многозадачность в windows


15-1200994430
cosinus
2008-01-22 12:33
2008.02.24
Помогите найти сервисы в Win98


2-1201628983
iwik
2008-01-29 20:49
2008.02.24
Передать данные в dll


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




   Наверх