Форум: "Основная";
Текущий архив: 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