Форум: "Прочее";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизПомогите плиз! Найти похожие ветки
← →
XeRoN (2006-10-24 23:10) [0]Доброго Вам времени суток!
Помогите пожайлуста реализовать одну вещь...
Есть программа, которая "считывает" некоторое число с эдита чужего приложения:
...
Var
A:PChar;
...
SendMessage (Handle, WM_GETTEXT, 0, LongInt (A));
Это число записывается в переменную типа PChar...
Вопрос такой:
Как мне можно перевести число из типа PChar например в Real, и обратно из Real в PChar?
← →
Gero © (2006-10-24 23:12) [1]StrToFloat
← →
XeRoN (2006-10-24 23:17) [2]Undeclared identifier: "StrToFloat"
Можно пример плиз...
← →
Gero © (2006-10-24 23:21) [3]> [2] XeRoN (24.10.06 23:17)
В таких случаях нажимают F1 и смотрят, в каком модуле обьявлена функция.
← →
Virgo_Style © (2006-10-24 23:22) [4]XeRoN (24.10.06 23:17) [2]
Можно пример плиз...F:=StrToFloat(S);
← →
XeRoN (2006-10-24 23:30) [5]Всеравно:
Error: Undeclared identifier: "Float"
Error: Undeclared identifier: "StrToFloat"
Я использую библиотеку KOL а не VCL, может в KOL такое еще не придумали?
← →
Наиль © (2006-10-24 23:36) [6]Float ->Real
StrToFloat -> Str2Float
← →
Gero © (2006-10-24 23:37) [7]> [5] XeRoN (24.10.06 23:30)
> Я использую библиотеку KOL а не VCL
С этого надо было начинать.
← →
XeRoN (2006-10-24 23:53) [8]
> Float ->Real
> StrToFloat -> Str2Float
Error: Undeclared identifier: "Str2Float"
Попробовал Str2Int возвращает ноль =(
← →
Gero © (2006-10-24 23:59) [9]> [8] XeRoN (24.10.06 23:53)
Зачем KOL используешь, если не можешь сам с такой задачей разобраться?
← →
XeRoN (2006-10-25 00:17) [10]
> Зачем KOL используешь, если не можешь сам с такой задачей
> разобраться?
Дело в том, что я программирую не на делфи а на HiAsm(hiasm.com). HiAsm использует компилятор от делфи 4, вместо VCL-KOL...
Изза этого и траблы...
← →
Орион © (2006-10-25 00:19) [11]> [10] XeRoN (25.10.06 00:17)
и много напрограммил уже?
что-нибудь полезное есть?
Мне просто интересно, что можно на HiAsm сделать реально полезного.
← →
XeRoN (2006-10-25 00:26) [12]
> Мне просто интересно, что можно на HiAsm сделать реально
> полезного.
На нем можно сделать оч много чего полезного, даже обладая небольшими знаниями программирования на стандартных хайасмских компонентах...
Если тебе стандартных компонентов не хватает, можно вставить свой код на делфи или на ассемблере...
В среднем приложения получаются ~35-40 кб (визуальные)...
Можно сделать фоновые, получится ~15 кб...
← →
Наиль © (2006-10-25 00:30) [13]
> Попробовал Str2Int возвращает ноль =(
Приведи образец строки для которой возвращается ноль
Книга о KOL
http://bonanzas.rinet.ru/KOLBook.rar
← →
XeRoN (2006-10-25 00:37) [14]
> Приведи образец строки для которой возвращается ноль
...
PC : PChar;
L,Handle: integer;
result:string;
F:real;
...
SendMessage (Handle, WM_GETTEXT, L-11, LongInt (PC));
result:=PC;
F:=Str2int(result);
> Книга о KOL
> http://bonanzas.rinet.ru/KOLBook.rar
Спасибо! =)
← →
Орион © (2006-10-25 00:44) [15]> [14] XeRoN (25.10.06 00:37)
а ты уверен, что в result у тебя что-то есть?
← →
Наиль © (2006-10-25 00:51) [16]Под образцом строки я подразумевал значение в PC (result)
← →
Орион © (2006-10-25 00:53) [17]> [16] Наиль © (25.10.06 00:51)
ты под PC память выделяешь?
← →
Наиль © (2006-10-25 00:53) [18]
> Спасибо! =)
Учти, что книга в стадии написания. Выложена лишь для публичного обсуждения ("бета-тестирование"). Более полного варианта не существует, не ищи.
← →
Орион © (2006-10-25 00:55) [19]а SendMessage - функция, и наверное правильно бы было проверить ее результат ;)
← →
Орион © (2006-10-25 00:56) [20]> [17] Орион © (25.10.06 00:53)
Наиль, это для XeRoN =)
← →
XeRoN (2006-10-25 01:02) [21]Если без:
> F:=Str2int(result);
то программа возвращает то что нужно, тока тип - PChar...
← →
XeRoN (2006-10-25 01:04) [22]Может, можно как-то разбить строку,на символы, получить ее длину, (можно так: SendMessage (Handle, WM_GETTEXTLENGTH, 0, 0);), и потом каждый символ заменить цифрой... Тока я не знаю как это реализовать...
← →
Наиль © (2006-10-25 01:07) [23]
> то что нужно
Что?
← →
XeRoN (2006-10-25 01:07) [24]Вот, вроде бы на примере этого, можно сделать:
Function Hex2Int(st:string):integer;
var
i,ln:word;
begin
st := LowerCase(st);
Result := 0;
ln := Length(st);
if ln > 0 then
for i := 1 to ln do
case st[i] of
"0".."9": Result := Result shl 4 + ord(st[i]) - 48;
"a".."f": Result := Result shl 4 + ord(st[i]) - 87;
else break;
end;
end;
Тока я не знаю как =(
← →
Орион © (2006-10-25 01:09) [25]нда... это полный пипец.
← →
XeRoN (2006-10-25 01:10) [26]то что нужно
В смысле возвращает цифру которая написана в эдите, только ее тип PChar...
← →
XeRoN (2006-10-25 01:10) [27]
> нда... это полный пипец.
В смысле?)
← →
Наиль © (2006-10-25 01:16) [28]Мы тебе намекаем и намекаем.
Проблема в PC, а не в Str2
Кстати заглянул в книгу, там написано, что для PChar функция S2Int
← →
XeRoN (2006-10-25 01:20) [29]
> Кстати заглянул в книгу, там написано, что для PChar функция
> S2Int
Щас посмотрю =)
← →
XeRoN (2006-10-25 01:33) [30]Вы имеете ввиду что ошибка сдесь: L-11 т.е. "не хватает" места в буфере?
Длина числа > 12 символов, поэтому ошибка не сдесь...
Или я неправильно понял Ваш намек?)
← →
XeRoN (2006-10-25 01:45) [31]Все разобрался, работает =)
Спасибо!!!
← →
XeRoN (2006-10-25 20:30) [32]Извините за назойливость...
Подскажите плиз как обратно из Real перевести в PChar...
С int2str не получается... Говорит: Incompatible types: "Integer" and "Real"...
← →
vidiv © (2006-10-25 21:24) [33]val + F1...
str + F1...
блин =(
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.041 c