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

Вниз

Продолжаем приколы (особенности) Delphi 7   Найти похожие ветки 

 
Ученик   (2002-09-17 16:43) [0]

Текстовые свойства (Caption, Items, Lines, ...) в DFM-файлах
хранятся в Unicode, для программы, скомпилированной в Delphi 6, было неважно какой язык стоит по умолчанию в Язык и стандарты (Regional Settings) - свойства читались нормально (преобразование Unicode в обыкновенную строку было

function CharFromWChar(CharDest: PChar; DestBytes: Integer; const WCharSource: PWideChar; SrcChars: Integer): Integer;
begin
Result := WideCharToMultiByte(0, 0, WCharSource, SrcChars,
CharDest, DestBytes, nil, nil);
end;

в Delphi 7

function CharFromWChar(CharDest: PChar; DestBytes: Integer; const WCharSource: PWideChar; SrcChars: Integer): Integer;
begin
Result := WideCharToMultiByte(DefaultUserCodePage, 0, WCharSource, SrcChars,
CharDest, DestBytes, nil, nil);
end;

в результате при неправильной настройке в Язык и стандарты имеем вопросики во всех текстовых свойствах формы и компонентов

Рекомендация (может быть есть другая)

в System.pas
DefaultUserCodePage := 0;


 
REA   (2002-09-17 17:18) [1]

Продолжая приколы:
1) начиная c D6 русские строки как варианты (если в варианте есть хоть одна русская буква) в компоненте сохраняются, но не загружаются (нет функции раскодировки variant multibyte - а он сохраняется как multibyte). По дороге правда там еще какие-то загадочные кодировки фигурируют.

2) В D7 в TComboBox не может быть пустых строк! Программа вылетает по непонятной причине. Сам D7 вылетает при попытке запустить такую программу (на форме комбобокс с двумя значениями одно из них пустое). Никто не знает как лечить?


 
Ученик   (2002-09-17 17:25) [2]

>REA (17.09.02 17:18)
2. Да, это тоже надо исправить

{ StdCtrls.pas }

function TCustomComboBoxStrings.Get(Index: Integer): string;
var
Len: Integer;
begin
Len := SendMessage(ComboBox.Handle, CB_GETLBTEXTLEN, Index, 0);
if (Len <> CB_ERR) and (Len > 0) then begin
SetLength(Result, Len);
SendMessage(ComboBox.Handle, CB_GETLBTEXT, Index, Longint(PChar(Result)));
end else
SetLength(Result, 0)
end;


 
REA   (2002-09-18 10:55) [3]

Ну и как править то? Все же в BPL лежит уже.


 
Slava   (2002-09-18 11:24) [4]

> REA (17.09.02 17:18)

По п.2: странно, у меня ничего нигде не вылетает


 
REA   (2002-09-18 13:26) [5]

У тебя какой Build D7? У меня рушится даже среда при попытке запустить программу (приложение будет зарыто).


 
Ученик   (2002-09-18 13:34) [6]

Ошибка на Windows 95/98/возможно ME


 
Slava   (2002-09-18 14:08) [7]

Ошибка действительно проявилась на Win98.

А у меня WinXP, там без проблем


 
Johnny Smith   (2002-09-18 14:14) [8]

Ошибка действительно проявилась на Win98.
А у меня WinXP, там без проблем

Они что, с Майкрософтом договорились, что ли?


 
REA   (2002-09-18 14:28) [9]

Не то слово - они глюки друг друга обходят в явном виде.
На некоторых системных платах (и многих притом) под W98 с чипсетом VIA кажется (не помню каким) не работают исключения мат. сопроцессора. (синий экран), а на XP все зашибись.



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

Форум: "Основная";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-98013
Lego
2002-08-31 10:01
2002.09.30
Помогите plz написать покрасивее :)


3-97963
Dmitrey
2002-09-09 11:47
2002.09.30
Проблемы с выводом SELECT во внешние базы с MS SQL через ADO


1-98159
X-Vizitor
2002-09-17 21:49
2002.09.30
Как проверить кем закрывается приложение


8-98238
Сявчик
2002-05-30 21:01
2002.09.30
Формы


3-98005
Aristarh
2002-09-09 17:55
2002.09.30
Ошибка при открытии IB таблицы.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский