Форум: "Потрепаться";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизКак грамотно подправить VCL? Найти похожие ветки
← →
Piter © (2004-07-21 01:02) [0]Только не говорите, что VCL править это дурной тон и все такое. Знаю, но зачастую это необходимо. Средствами ООП слишком сложно и утомительно (а может и просто невозможно) сделать то, что нужно. Проще подправить пару строчек в VCL. В общем, не вдаваясь в проблему - а надо ли править VCL, ответье - как это сделать более грамотно?
Например, я переправил юнит menus, все отлично, теперь все показывается на русском даже на английской ОС. И я как делал - просто брал и и правил pas модуль, а потом его включал в проект, чтобы он скомпилировался вместе с программой. Иначе компилятор просто плюет на мои изыски и берет готовые DCU не обращая внимания на исправление в pas модуле. Если стереть DCU - ругается, что Pas файл не найден (хотя он очевидно есть в путях). В общем, проблему решил включение переправленного модуля в программу...
Но вот стал включать forms - и компилятор стал ругаться, что модуль под таким именем уже включен в программу... и что делать? Как подправить пару строчек в forms и сделать так, чтобы переправленный модуль включился в программу?
P.S. Я, конечно, признаю, что слабо разбираюсь в том, как используется VCL компилятором... причем, есть несколько DCU - обычне и отладочные (которые включаеются соответствующей галочкой). Чем они отличаются - тоже непонятно. В общем, просветите, Мастера!
← →
wnew © (2004-07-21 02:42) [1]Говоришь на английской ОС меню выводится корректно на русском? А локальные установки какие на этой ОС?
К примеру под немецкоязычным Windows, если локальные установки русские - любая русскоязычная программа работает корректно: все кириллические шрифты; меню, дерево каталогов, сообщения и т.д. отображаются нормально. При чём в WindowsXP локализацию можно менять, когда вздумается, но, к сожалению, нужно перегружаться. А Windows 98 и ME легко локализовать правкой реестра. Но для того чтобы переключать локализацию в 98 и ME оперативно - желательно написать программку, которая меняла бы значения определённых ключей реестра. Правда, при этом возникает побочный эффект: к примеру в немецком Windows имеется папка "Programme", именно с двумя "m", а при переключении на русскую локализацию Windows автоматически создаёт папку "Programe" и в дереве каталогов, и в Windows menu, что приводит к некоторому нежелательному, но не очень мешающему эффекту: программы установленные под русской локализацией не возможно открыть из Windows menu и наоборот. А во всём остальном всё корректно и, даже, можно пользоваться немецкими программами под русской локализацией, но единственно при этом вместо немецких умляутов в меню отображаются русские буквы, однако это не помеха:) Но в любом случае без перезагрузки винды ничего не получится, а жаль.
А копаясь в Delphi, думаю, этот вопрос не решить: для отображения меню Windows использует системный шрифт *.fon, который загружается при старте системы. И вообще, в Delphi на винде с не русской локализацией с кириллицей может работать только RichEdit, а всё остальное выводит вместо кириллических символов знаки вопроса.
← →
Константинов © (2004-07-21 03:37) [2]tо wnew.
Я знаю вы живете в Германии.
Не могли бы Вы мне помочь.
Жена преподаватель немецкого.
Необходима проверка орфографии немецкого в ворде.
Хелпы отсылают к официальным представителям мелкомягких.
Там, насколько я понял, на халяву такие вещи не раздают.
Может есть какой либо приемлемый способ поставить на пиратский офис ХР немецкую орфографию?
← →
wnew © (2004-07-21 04:06) [3]Я без понятия на такую тему. Знаю лишь, что есть программы встраиваемые в MicrosoftWord, но наоборот в немецкий для проверки русской орфографии. Но, думаю, что можно просто установить немецкий, например: Office 97. При этом на русском Windows в пунктах меню вместо умляутов будут отображены русские буквы, но это не создаст больших проблем. Если такой вариант устраивает - свяжись со мной по э-почте: w.micheew(гав-гав)wnew.de
← →
АлексейК (2004-07-21 06:25) [4]Например, я переправил юнит menus, все отлично, теперь все показывается на русском даже на английской ОС. И я как делал - просто брал и и правил pas модуль, а потом его включал в проект, чтобы он скомпилировался вместе с программой. Иначе компилятор просто плюет на мои изыски и берет готовые DCU не обращая внимания на исправление в pas модуле. Если стереть DCU - ругается, что Pas файл не найден (хотя он очевидно есть в путях). В общем, проблему решил включение переправленного модуля в программу...
Так после правки модуля, что мешает скомпилировать новый DCU?
← →
ИдиотЪ (2004-07-21 09:01) [5]таким способом править - это не есть хорошо
кто тебе мешает создать свою версию компонент и установить в дельфи? Вот там ты можешь делать че хочешь, из оригинала брать или т.п.
Иначе тебе будет весело потом править все зависимые от твоей редакторской правки модули.
← →
Rouse_ © (2004-07-21 09:18) [6]Копируешь PAS в папку со своим проектом и там кромсай его как взумается, а генофонд напрямую не трож :)
← →
ИдиотЪ (2004-07-21 09:19) [7]хоть местами и корявенький, но все-ж таки генофонд
← →
Суслик © (2004-07-21 10:27) [8]поддерживаю 6 - сам раньше так делал, когда опыта не хватало сделать иначе - правил все подряд. ЛОжишь в папку проекта и вперед.
← →
Плохиш © (2004-07-21 11:15) [9]
> Константинов © (21.07.04 03:37) [2]
http://forum.rus-chat.de/printMessage1900255.html
← →
VMcL © (2004-07-21 11:25) [10]>>Суслик © (21.07.04 10:27) [8]
>ЛОжишь в папку проекта
"Кладешь", а не "ложишь" :)
← →
Mystic © (2004-07-21 11:28) [11]Использовал бы ресурсную DLL для локализации... А так...Хорошо бы перекомпилить пакет vcl50
← →
ИдиотЪ (2004-07-21 11:29) [12]хорошо бы IDE перекомпилить )
И поковырять ес-но
← →
VMcL © (2004-07-21 11:31) [13]>>ИдиотЪ (21.07.04 11:29) [12]
Кто мешает. SoftIce + IDA в помощь :)
← →
Плохиш © (2004-07-21 11:32) [14]
> Mystic © (21.07.04 11:28) [11]
Хорошо бы перекомпилить пакет vcl50
> ИдиотЪ (21.07.04 11:29) [12]
хорошо бы IDE перекомпилить )
И поковырять ес-но
Дык, в чём проблемы-то?
← →
ИдиотЪ (2004-07-21 11:36) [15]VMcL ©
сами в кодах ковыряйтесь, я уж обойдусь как-нибудь
← →
VMcL © (2004-07-21 11:42) [16]>>ИдиотЪ (21.07.04 11:36) [15]
Я, чиста, не понял. Шо за наезды? Ты же сам написал в [12] "хорошо бы IDE перекомпилить ) И поковырять ес-но"
Вот и флаг, тьфу... SoftIce в руки :)
← →
ИдиотЪ (2004-07-21 12:01) [17]VMcL ©
не наезд)
мне бы исходники в руки
← →
Mystic © (2004-07-21 12:21) [18]>> Хорошо бы перекомпилить пакет vcl
> Дык, в чём проблемы-то?
Для этого надо декомпилить vclXX.dcp посмотреть, какие файлы в него входят, создатьсвой dpk и уже откомпилить его. Потому в случае раздельной компиляции с пакетами будут браться dcu-шники из vclXX.dcp, а не какие-либо другие...
← →
Piter © (2004-07-21 17:14) [19]Опять флуд... эх, что же делать :)
wnew © (21.07.04 2:42) [1]
спасибо за пост, информативно. Чтобы не растекаться в этой ветке я специально открыл другую, где выложил свои эксперименты - http://delphimaster.net/view/14-1090415459/
Правда, результаты несколько расходятся с вашими "если локальные установки русские - любая русскоязычная программа работает корректно"
АлексейК (21.07.04 6:25) [4]
Так после правки модуля, что мешает скомпилировать новый DCU?
не понял твою мысль
ИдиотЪ (21.07.04 9:01) [5]
кто тебе мешает создать свою версию компонент и установить в дельфи? Вот там ты можешь делать че хочешь, из оригинала брать или т.п.
Иначе тебе будет весело потом править все зависимые от твоей редакторской правки модули.
это практически невозможно сделать с помощью ООП. Придется тупо переносить огромную тучу кода...
Rouse_ © (21.07.04 9:18) [6]
Копируешь PAS в папку со своим проектом и там кромсай его как взумается, а генофонд напрямую не трож
а тогда вопрос - ведь другие стандартные юниты тоже могут использовать мой исправленный юнит... откуда они будут его брать, из моего проекта или из папки с VCL?
Суслик © (21.07.04 10:27) [8]
сам раньше так делал, когда опыта не хватало сделать иначе
тебе и сейчас опыта не хватит сделать иначе
Mystic © (21.07.04 11:28) [11]
Использовал бы ресурсную DLL для локализации
ну я же не хочу тупо перевести язык на английский, задача другая - чтобы в иностранных виндах все отображалось по русски
А так...Хорошо бы перекомпилить пакет vcl50
а можно поподробнее? Вот я исправил forms - что делать, чтобы изменения так сказать вступили в силу, чтобы все юниты, все проекты исползовани новый forms?
Объясню еще раз проблему - с включение модулей в проект проблем нету! Но никак не получается включить в проект модуль forms! Не дает IDE Delphi - кричит, что forms уже включен, поэтому я не могу использовать свой forms, используется стандартный, из DCU существующих
wnew © (21.07.04 2:42) [1]
А копаясь в Delphi, думаю, этот вопрос не решить: для отображения меню Windows использует системный шрифт *.fon, который загружается при старте системы
если говорить о win2000 и выше - это не верно. И еще стоит учесть, что обычные меню рисует Windows - это да. Но вот меню с картинками рисует Delphi с помощью функий dodrawtext, кажется. И если использовать вместо DoDrawText его аналог dodrawtextw, то все отобразится зашибись. Это же касается и меню без изображений, если меню создавать не с помощью InsertMenu, а с помощи InsertMenuW с соответствующей структурой - то опять же все будет зашибись в любой Unicode windows...
В общем, читайте мою новую ветку.
← →
Rouse_ © (2004-07-21 17:22) [20]> а тогда вопрос - ведь другие стандартные юниты тоже могут
> использовать мой исправленный юнит... откуда они будут его
> брать, из моего проекта или из папки с VCL?
Если не пропишешь путь к исправленнуму юниту - то другие его "юзать" не будут...
← →
Piter © (2004-07-21 18:23) [21]Rouse_ © (21.07.04 17:22) [20]
Если не пропишешь путь к исправленнуму юниту - то другие его "юзать" не будут...
то есть, они будут использовать стандартный юнит вместо моего исправленного так? Получается, у меня будет два модуля forms в моей программе, например? Ничего не понимаю...
← →
ИдиотЪ (2004-07-21 18:26) [22]ту Piter ©
не будут они брать твой модуль,
у них там проверка стоит на соответствие какая-то
← →
Rouse_ © (2004-07-22 10:32) [23]> [21] Piter © (21.07.04 18:23)
Они будут использовать либо тот модуль который лежит в папке с проектом, а если его там нет - тогда стандартный из "генофонда"
← →
ИдиотЪ (2004-07-22 11:48) [24]Rouse_ ©
только неоткомпилированные модули будут искать
все dcu уже привязаны к конкретной компиляции
← →
Piter © (2004-07-22 13:15) [25]ИдиотЪ (22.07.04 11:48) [24]
и чего делать? Получается, я буду использовать свой forms, а другие модули будут использовать другой forms? По идее размер программы должен увеличиться, а такого не происходит...
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.039 c