Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.051 c
1-1090522594
Боян Георгиев
2004-07-22 22:56
2004.08.08
Как емулировать нажатие PrintScreen-a?


14-1090216591
Dimman
2004-07-19 09:56
2004.08.08
UPX unpacker


1-1090788416
Юрий Ж.
2004-07-26 00:46
2004.08.08
Проблема с копированием в ClipBoard!


4-1088453935
lion
2004-06-29 00:18
2004.08.08
обои на рабочем столе


1-1090490575
ted
2004-07-22 14:02
2004.08.08
Задание и смена пароля приложения





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