Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
2-1197644076
J@ME
2007-12-14 17:54
2008.01.13
Сортировка Бэтчера


2-1197367826
rich_rich
2007-12-11 13:10
2008.01.13
работа с BLOB в MySQL (ZQuery)


15-1197245273
Анатолий Подгорецкий
2007-12-10 03:07
2008.01.13
Обсуждения качества модерирования форумов


6-1177784081
Dmitry_177
2007-04-28 22:14
2008.01.13
не доходит значение типа integer


2-1197361364
Soulless
2007-12-11 11:22
2008.01.13
Изменение фона в Qreport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский