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

Вниз

inttostr на winapi   Найти похожие ветки 

 
istok   (2007-12-10 19:52) [0]

как, не используя string и sysutils, записать результат getlasterror в pchar ?


 
istok   (2007-12-10 19:53) [1]

и еще буду оч признателен совету, как сделать аналог timetostr(now) на winapi.
(я так понимаю, gettickcount как-то конвертировать надо или нет?)


 
Palladin ©   (2007-12-10 19:57) [2]

inttostr - str + F1 (или учебник паскаля)
timetostr - никто не мешает заглянуть в sysutils.pas и выдернуть от туда функцию


 
palva ©   (2007-12-10 20:31) [3]

pchar это четырехбайтовое целое число. Поэтому можно просто присвоить. Только необходимо приведение типов. Вспомнив недавние советы Подгорецкого, пишу:
{$APPTYPE CONSOLE}
uses Windows;
var
 p: PChar;
begin
 Integer(p) := GetLastError;
 Writeln(Integer(p)); // 126
end.


 
Правильный_Вася   (2007-12-10 20:56) [4]

Format()
sprintf


 
istok   (2007-12-11 02:42) [5]


Palladin ©   (10.12.07 19:57) [2]
> inttostr - str + F1 (или учебник паскаля)

модуль system тоже юзать низя, только windows


> timetostr - никто не мешает заглянуть в sysutils.pas и выдернуть
> от туда функцию

мешает. там кода немало, и он везде string использует.


> palva ©   (10.12.07 20:31) [3]

сенкс


> Правильный_Вася   (10.12.07 20:56) [4]
>
> Format()

из какой длл? (я так понял что это не сисютиловский формат, который по условию не подходит)


> Правильный_Вася   (10.12.07 20:56) [4]
>
> sprintf


судя по описанию в мсдн то что надо - а в какой либе искать? примерчика юза под delphi нет?


 
Leonid Troyanovsky ©   (2007-12-11 06:02) [6]


> istok   (11.12.07 02:42) [5]

> модуль system тоже юзать низя, только windows

Мазохист?

> судя по описанию в мсдн то что надо - а в какой либе искать?

http://delphimaster.net/view/4-1196006379/

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-12-11 08:48) [7]


> модуль system тоже юзать низя, только windows

Почему?
И как ты это избежишь?


 
Palladin ©   (2007-12-11 09:03) [8]


> istok   (11.12.07 02:42) [5]

и как же ты его использовать не будешь интересно? :)


 
@!!ex ©   (2007-12-11 09:15) [9]

> модуль system тоже юзать низя, только windows

Смешно. Этот модуль линкуется независимо от твоего желания.


 
palva ©   (2007-12-11 09:58) [10]


> судя по описанию в мсдн то что надо - а в какой либе искать?
>  примерчика юза под delphi нет?


{$APPTYPE CONSOLE}
function wsprintf(buf: PChar; const frm: PChar):Integer;
 CDecl; VarArgs; external "User32.dll" name "wsprintfA";
var
 buf: array [0..100] of Char;
 s: String;
begin
 s := "Happy New Year";
 wsprintf(@buf, "%02d/%02d - %s", 1, 1, @s[1]);
 WriteLn(buf); // 01/01 - Happy New Year
end.


 
istok   (2007-12-11 21:03) [11]


> Смешно. Этот модуль линкуется независимо от твоего желания.

и к длл тоже?


 
@!!ex ©   (2007-12-11 21:22) [12]

> [11] istok   (11.12.07 21:03)

да


 
DVM ©   (2007-12-11 21:45) [13]


> и еще буду оч признателен совету, как сделать аналог timetostr(now)
> на winapi.


function GetTime: string;
var
 st: TSystemTime;
 Time, FormatString: PChar;
 TimeSize, FormatStringSize: integer;
begin
 Result := "";
 FormatStringSize := GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, nil, 0);
 GetMem(FormatString, FormatStringSize * SizeOf(Char));
 GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, FormatString, FormatStringSize);
 GetLocalTime(st);
 TimeSize := GetTimeFormat(LOCALE_USER_DEFAULT, 0, nil, FormatString, nil, 0);
 GetMem(Time, TimeSize * SizeOf(Char));
 GetTimeFormat(LOCALE_USER_DEFAULT, 0, @st, FormatString, Time, TimeSize * SizeOf(Char));
 result := Time;
 FreeMem(Time);
 FreeMem(FormatString);
end;

//------------------------------------------------------------------------------

function GetDate: string;
var
 st: TSystemTime;
 Date, FormatString: PChar;
 DateSize, FormatStringSize: integer;
begin
 Result := "";
 FormatStringSize := GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, nil, 0);
 GetMem(FormatString, FormatStringSize * SizeOf(Char));
 GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, FormatString, FormatStringSize);
 GetLocalTime(st);
 DateSize := GetDateFormat(LOCALE_USER_DEFAULT, 0, nil, FormatString, nil, 0);
 GetMem(Date, DateSize * SizeOf(Char));
 GetDateFormat(LOCALE_USER_DEFAULT, 0, @st, FormatString, Date, DateSize * SizeOf(Char));
 result := Date;
 FreeMem(Date);
 FreeMem(FormatString);
end;


 
Palladin ©   (2007-12-12 11:27) [14]


> DVM ©   (11.12.07 21:45) [13]

а GetMem/FreeMem использовать нельзя! :) они в System!



Страницы: 1 вся ветка

Текущий архив: 2008.01.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
15-1196913688
Slider007
2007-12-06 07:01
2008.01.13
С днем рождения ! 6 декабря 2007 четверг


15-1197030268
Мурзик
2007-12-07 15:24
2008.01.13
Компонент, аналог SizeControl


3-1188911245
pasha_golub
2007-09-04 17:07
2008.01.13
Master-Detail связка: чтобы мастер-запись из комбобокса


3-1188883302
Ulugbek
2007-09-04 09:21
2008.01.13
Как проверить на существование запись ?


15-1197187860
yeees
2007-12-09 11:11
2008.01.13
Большой вопрос