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

Вниз

Как в StatusBar-е писать по-русски?   Найти похожие ветки 

 
tytus ©   (2003-07-26 10:00) [0]

Привет Всем. При выполнении проседуры:
var st:PChar;
begin
GetLogicalDriveStrings(1,st);
statusBar1.Panels.Items[0].Text:=StrPas(st);
в статусбаре пишеться что-то вроде ио8ьяГ<A3<ШЖ...


 
KSergey ©   (2003-07-26 10:22) [1]

А буфер кто выделять будет? Хотя бы под тот 1 байт, который указан в первом параметре?


 
Anatoly Podgoretsky ©   (2003-07-26 10:54) [2]

Зачем тебе вообще PChar, многие делают с ним так много ошибок, используй String
SetLength(st,размер);
GetLogicalDriveStrings(размер,PChar(st));
statusBar1.Panels.Items[0].Text:=st;


 
default ©   (2003-07-26 11:01) [3]

нифига документацию не читаю
даже когда не "пашет"
сразу бегут на форум блин


 
tytus ©   (2003-07-26 11:11) [4]

>Anatoly Podgoretsky
Спасибо, сработало, но почему-то пишет только а:\, хотя пишу SetLength(st,20)...

>KSergey
В хелпе сказано о буфере, но как его "выделять"? var st:Pointer или var st:^PChar? Пробывал последнее - пишет m^ m^ ????????


 
KSergey ©   (2003-07-26 11:16) [5]

>KSergey
В хелпе сказано о буфере, но как его "выделять"?

Это сказано в хелпе по языку Delphi.


 
Anatoly Podgoretsky ©   (2003-07-26 11:20) [6]

Опять документацию не читаешь, в результате возвращается блок ASCIZZ строк, заканчивает блок пустая строка
А ней даже пример приведен!
c:\<null>d:\<null><null>
Нельзя применять функции работы со строками для подобных строк, тебе надо самостоятельно извлекать из строки части, например с помощью той же PChar, последовательно смещая указатель на следующую часть или использовать функцию Copy/
И обязательно анализировать результат функции GetLogicalDriveStrings, она возвращает длину реальных данных в буфере. Эту длину нужно использовать при копировании частей. Кстати 20 байт явно не достаточно, надо как минимум 32*4, тогда результат гарантированно поместится в буфер и не будет ошибки.


 
Anatoly Podgoretsky ©   (2003-07-26 11:21) [7]

KSergey © (26.07.03 11:16)
Это уже сделано в SetLength, но автор наверно не знает данного языка программирования, даже в азах.



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
3-20454
Nikolai_S
2003-07-17 15:40
2003.08.07
Проблема с Lookup полями в ADO с MS SQL Server


14-20778
AFrolov
2003-07-21 11:43
2003.08.07
Поможите советом (Обязанности свидетеля на свадьбе)


6-20654
Basilio
2003-05-30 09:58
2003.08.07
Проблемы с записью в сокет непосредственно после его открытия


1-20496
c100
2003-07-25 12:49
2003.08.07
как выйти их Excel что бы он не предлагал сохранить документ? OLE


7-20825
sachem
2003-05-19 09:28
2003.08.07
как померить уровень сигнали с линейного входа?