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

Вниз

И снова смех сквозь слезы...   Найти похожие ветки 

 
Думкин ©   (2010-06-03 11:36) [40]

> Anatoly Podgoretsky ©   (03.06.10 11:32) [38]

Там баг был реальный. Про версии наврал. Исправлено в 3-й версии, 4 или 5-м сервиспаке.

http://www.axforum.info/forums/showthread.php?t=29320


 
Юрий Зотов ©   (2010-06-03 11:47) [41]

> Дмитрий Т   (03.06.10 11:24) [27]

> Что-то про совокупностью глюков, приводящих к перевороту, верится с
> трудом )) Там должен быть код.

Я тоже не поверил и стал искать закладки. Код обнюхал весь. Нет в нем такого. Но в программе использован какой-то левый (явно не аффтаром писаный, а откуда-то скачаный) асмовский модуль для работы с графикой, причем бета-версия (и непонятно, на фига это надо, никакой уж такой особенной графики в программе нет, обычного GDI запросто хватит).

Одну ошибку я в этом модуле нашел и убрал - но где гарантия, что в нем нет других ошибок, и что они проявляются лишь на некоторых видеокартах, причем самым неожиданным образом?

И досконально разбираться в куче чужого асмовского кода, честно говоря, нет ни желания, ни необходимости. Надо просто перейти на GDI, тогда подобные фокусы исключаются автоматически.

> Может XXL не врет?

Не исключено, но вряд ли. По моим данным, программа делалась не в 98 году, а позже.


 
Дмитрий Т   (2010-06-03 11:51) [42]


> Юрий Зотов ©   (03.06.10 11:47) [41]

Ну если АСМ, то да, все может быть.
Вообще, может и переписать стоит. Я бы тоже так сделал, видимо.


 
Anatoly Podgoretsky ©   (2010-06-03 13:04) [43]

> Юрий Зотов  (03.06.2010 11:34:39)  [39]

Вот и я про тоже - переписать все нафиг


 
MonoLife ©   (2010-06-03 14:11) [44]

A to-do файлика там случайно небыло? Порой, интересно почитать, что хотел и что реализовал программер..


 
Anatoly Podgoretsky ©   (2010-06-03 14:42) [45]

> MonoLife  (03.06.2010 14:11:44)  [44]

Компромата не оставляем.


 
tesseract ©   (2010-06-03 16:19) [46]


> A to-do файлика там случайно небыло?


Там разума-то не было. Какой to-do ? Я кстати  не помню был-ли to-do в Delphi 5 :-)


 
Медвежонок Пятачок ©   (2010-06-03 16:21) [47]

был был в пятерке туду


 
12 ©   (2010-06-03 16:22) [48]

фигурные скобки были :)


 
Rouse_ ©   (2010-06-03 16:39) [49]


> Розыч - теперь ты понимаешь, что ты по сравнению с этим
> юным дарованием ты просто птенец, со всеми своими морфиками-
> полиморфиками-асмами-дебаггерами?

А я всегда говорил что я нуб :)


 
vrem   (2010-06-03 21:36) [50]

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


 
Rouse_ ©   (2010-06-03 21:43) [51]


> vrem   (03.06.10 21:36) [50]

Так и запишем - vrem программит в таком-же стиле. :)

ЗЫ: Зотыч - ты обманул самого себя.
Если взять за пример вот это:
Программа двуязычная. Но для смены языка требует перекомпиляции. Кстати, а как вы думаете, чем переключается язык? Ни за что не угадаете - изменением свойства Tag у одной из кнопок. Если Tag=3, то русский, если 4 - то английский. Причем функционал самой этой кнопки ни с какими языками совершенно не связан.
То внимание вопрос - а каким боком компилер узнает о свойстве Tag некоей кнопки? :)


 
bss   (2010-06-03 22:04) [52]

Rouse_, дык если нету встроенного механизма изменения tag"а кнопки - то как сменить язык? В design-time изменить свойство tag и перекомпилить, а как еще?

Или вводить функционал по смене tag"а кнопки, в любом случае перекомпиляция ожидает ))


 
Rouse_ ©   (2010-06-03 22:37) [53]


> В design-time изменить свойство tag и перекомпилить, а как
> еще?

Отлично, повторяю вопрос, как компилятору задать директиву, что в случае, если тэг ктопки равен трем - скомпилять этот кусок кода, а если четырем - то другой? :)


 
Германн ©   (2010-06-03 22:40) [54]

{$DEFINE Tag3}
:)


 
Rouse_ ©   (2010-06-03 22:40) [55]


> Германн ©   (03.06.10 22:40) [54]

Переведи на наш :)


 
antonn ©   (2010-06-03 22:44) [56]


> Отлично, повторяю вопрос, как компилятору задать директиву,
>  что в случае, если тэг ктопки равен трем - скомпилять этот
> кусок кода, а если четырем - то другой? :)

выдрать "dfm" из ресурса и распарсить =)


 
antonn ©   (2010-06-03 22:49) [57]


> выдрать "dfm" из ресурса и распарсить =)

ну да, предварительно поставив расширение, как мне посоветовали в теме с build-ом =)


 
Rouse_ ©   (2010-06-04 00:01) [58]

Ну ты не стесняйся - реализацию в виде кода и настроек посткомпайла или прекомпайл билда озвучь :)


 
Германн ©   (2010-06-04 00:37) [59]


> Переведи на наш :)

Элементарно, Ватсон!
Нигде ведь не сказано в какой программе та самая кнопка, Tag которой определяет вариант компиляции. :)


 
Германн ©   (2010-06-04 02:16) [60]

Ну и в добавок.
Прочее - не только моё ЖЖ!
:)
А если кто-то это не понимает, то это его проблемы. :)


 
Германн ©   (2010-06-04 03:06) [61]

Меня вот беспокоит только одно.
Почему наши ресурсы используются так безграмотно?


 
Юрий Зотов ©   (2010-06-04 10:23) [62]

> vrem   (03.06.10 21:36) [50]

Если безграмотную и бездумную халтуру Вы считаете стилем, то даже и возражать не буду. Бесполезно.

Свое мнение Вы, быть может, измените после того, как сядете к водителю, который водит машину в таком же стиле. Или (не дай Бог) попадете на стол к хирургу, который оперирует в таком же стиле. А до тех пор - бесполезно.

> Rouse

Определены 2 набора строковых констант - русский и английский. Если tag=3, то используется русский, если 4 - английский. Но при программной смене tag ничего не происходит, поэтому и нужна перекомпиляция.

При такой реализации тем более странно, что не сделана динамическая смена языка, потому что для нее почти все есть. Фактически, осталось только разбросанные по всему коду присвоения кэпшенов, хинтов и пр. свести в одну (или несколько) процедур и вызывать ее (их) при смене языка. Тогда и никаких тэгов, кстати, не понадобится.


 
KilkennyCat ©   (2010-06-04 10:23) [63]

Удалено модератором


 
Rouse_ ©   (2010-06-04 10:25) [64]


> Юрий Зотов ©   (04.06.10 10:23) [62]
> Определены 2 набора строковых констант - русский и английский.
>  Если tag=3, то используется русский, если 4 - английский.
>  Но при программной смене tag ничего не происходит, поэтому
> и нужна перекомпиляция.

Юрч - вот чес слово, ну ничего не понял зачем перекомпил нужен :)


 
12 ©   (2010-06-04 10:29) [65]

>> зачем перекомпил нужен
ну, на формкрите видимо весит чего-то частично, на формшоу частично
и во всех местах, всех форм смотрится на какую-то кнопку одной какой-то формы.
ну и отсутствует механизм смена тэга


 
Palladin ©   (2010-06-04 10:36) [66]


> Юрч - вот чес слово, ну ничего не понял зачем перекомпил
> нужен :)

ну нет слежения за сменой тага ) чего тут непонятного? )


 
Юрий Зотов ©   (2010-06-04 10:42) [67]


> Rouse_ ©   (04.06.10 10:25) [64]


type
 TLang = 3..4;
 TStr = array[TLang] of string;
const
 ExitCaption: TStr = ("Выход", "Exit");
.............
 ExitButton.Caption := ExitCaption[MagicButton.Tag];


Такие присвоения кэпшенов, хинтов и пр. есть, например, в обработчиках событий OnCreate форм. Но для форм, которые не создаются динамически (а такие там есть, и не только главная), этот код отрабатывает только 1 раз.

При программной же смене MagicButton.Tag ничего не происходит, нет такой обработки. Поэтому для смены языка нужно изменить tag в desigh-time и перекомпилировать.


 
GrayFace ©   (2010-06-04 10:45) [68]

Наверное, код типа такого:
procedure TForm1.CreateForm(...)
beging
  if Button1.Tag = 3 then
    Button2.Caption:= "Выход"
  else
    Button2.Caption:= "Exit";
end;


 
Rouse_ ©   (2010-06-04 10:48) [69]

Ужс блин, фига се логика :)
Юрч, теперь ты к настоящий программер просто обязан найти аффтора и подарить ему гранату без чеки :)


 
Юрий Зотов ©   (2010-06-04 11:07) [70]


> Rouse_ ©   (04.06.10 10:48) [69]

Времени на капитальное перепахивание у меня не было, поэтому вопрос со сменой языка я решил очень просто. Менять язык при уже работающей программе вряд ли кому нужно - поэтому достаточно добавить маленькую формочку с радиогруппой выбора языка и показать ее перед запуском главной формы прямо из DPR:

begin
 Application.Initialize;
 with TSelectLanguageDialog.Create(nil) do
 try
   ShowModal;
   UserLanguage := 3 + SelectLanguageRadioGroup.ItemIndex
 finally
   Free
 end;
 Application.CreateForm(...);
 ...
end.
 
UserLanguage -это введенная мною всюду доступная переменная, играющая ту же роль, которую раньше играл MagicButton.Tag. После этого оставалось только сделать в коде глобальную замену текста [MagicButton.Tag] на текст [UserLanguage] - и вся любовь.


 
@!!ex ©   (2010-06-04 11:12) [71]

> [62] Юрий Зотов ©   (04.06.10 10:23)
> Если безграмотную и бездумную халтуру Вы считаете стилем,
> то даже и возражать не буду. Бесполезно.

Заспорять код комментариями на каждой строке виде: Дата, имя автора
Это тоже безграмотность и незнание инструментов.
Все мы в чем-то безграмотные. Все мы чему-то учимся постоянно.
Это не повод в такой смешливой манере оскорблять автора вашей программы.
В конце концов благодаря ему у вас сейчас есть работа за которую платят немаленькие(полагаю) деньги.


 
Anatoly Podgoretsky ©   (2010-06-04 11:14) [72]

> Rouse_  (04.06.2010 10:25:04)  [64]

Да очень просто if .tag=1 then Russian else English
А вот присвоения тегу в коде нет, только в дизайн


 
@!!ex ©   (2010-06-04 11:20) [73]

> [72] Anatoly Podgoretsky ©   (04.06.10 11:14)

Что мешает сделать присваение тэга ДО того как будет первое чтение его?
Например в Create формы читать из конфига настройки языка и соответственно присваивать tag.
Не вижу проблемы.


 
Юрий Зотов ©   (2010-06-04 12:11) [74]

> @!!ex ©   (04.06.10 11:12) [71]

> Заспорять код комментариями на каждой строке виде: Дата, имя автора
> Это тоже безграмотность и незнание инструментов.


1. Не на каждой строке, а только в тех местах, где были сделаны изменения. Если же изменения приходится делать, как Вы говорите, на каждой строке, то это называется "полное переписывание кода" и тогда необходимость в подобных комментариях отпадает автоматически. Их, соответственно, и не будет.

2. Это не засорение кода, а удобная и полезная ремарка. Например, тем, что при просмотре кода сразу виден старый код (закомментированный), новый код, автора, дату и причину изменений. И для этого не требуются дополнительные инструменты, жмакание на дополнительные кнопки, поиск и просмотр дополнительной информации и т.п. Быстро, просто, удобно.

3. Такие комментарии не запрещают и не отменяют использование систем контроля версий, ведение ChangeLog и пр. Поэтому где Вы здесь увидели незнание инструмента - непонятно.

> Все мы в чем-то безграмотные. Все мы чему-то учимся постоянно.

Бесспорно. И это хорошо. Плохо другое - когда человек, еще не умеющий что-то делать, берется это делать для кого-то другого, да еще и ЗА ДЕНЬГИ. Как уже отмечалось, Вы поймете это, когда сядете в машину к водителю, толком не умеющему ее водить или попадете на стол к хирургу, не умеющему толком оперировать. И еще хорошо, если после этого у Вас останется возможность ему заплатить. А ее может и не остаться - покойники не платят.

> Это не повод в такой смешливой манере оскорблять автора вашей
> программы.


Где Вы нашли оскорбления? Я его обозвал? Я его обругал?

Я сказал, что он написал плохую программу в стиле новичка. И это правда (с чем здесь и согласились). Еще я сказал, что этот код - безграмотная и бездумная халтура. И это тоже правда. Безграмотность и бездумность следуют из приведенных выше примеров, а халтура - из факта получения денег за плохую работу. ЛЮБЫХ денег, даже маленьких.

Если же правду Вы считаете оскорблением - дело Ваше, но тогда Вас жаль. С воспаленным ЧСВ жить трудно. Впрочем, это тоже дело хозяйское.

> В конце концов благодаря ему у вас сейчас есть работа за которую
> платят немаленькие(полагаю) деньги.


1. Работа у меня и так есть, ее никто не отменял. А эту работу я делаю за счет своего личного времени - то есть, его уже не имею. Вам (и никому другому) тоже не запрещается выполнять дополнительную работу в свое личное время.

2. Деньги примерно вдвое меньше обычных. Я согласился на них по ряду причин. В частности, потому, что заказчик произвел более чем хорошее впечатление - и как человек, и как собственно заказчик. Он четко знает, чего он хочет, с ним легко и приятно работать, да и просто общаться. К тому же, и в программировании, и в Delphi он тоже разбирается, поэтому с ним можно разговаривать на общем языке, не опасаясь, что тебя не поймут.

3. Работу я имею не благодаря тому, что кто-то раньше плохо ее сделал, а потому, что она кому-то нужна. Лучше бы ее вообще никто раньше не делал - тогда бы я сразу написал программу с нуля. Теперь же пришлось не только делать ее с нуля, а еще и потратить время на разбор чужого кода (иначе как понять, что ее надо переписывать?).


 
Anatoly Podgoretsky ©   (2010-06-04 12:12) [75]

> @!!ex  (04.06.2010 11:20:13)  [73]

Ничего, кроме того, что непредусмотрено.
Ты не учи нас писать правильные программы, мы то умеем. На нас не
наживешься, никакой переработки не будет.


 
Юрий Зотов ©   (2010-06-04 12:16) [76]

> @!!ex ©   (04.06.10 11:20) [73]

> Что мешает сделать присваение тэга ДО того как будет первое чтение его?
> Например в Create формы читать из конфига настройки языка и
> соответственно присваивать tag.
> Не вижу проблемы.

Хорошо, подскажу. Одна маленькая проблемка все же есть - в программе отсутствует тот самый конфиг, из которого Вы собираетесь читать настройки.

Только не предлагайте его сделать, ладно? Поверьте на слово, что я и без Вас знаю, как делаются программы с сохранением настроек, как делаются мультиязычные программы и т.п.


 
@!!ex ©   (2010-06-04 12:40) [77]

Господи, какой поток... задело чтоли?
Юрий, единственная причина моего комментария выше - то что вы необычайно аггресивны последнее время.
Это удивило, учитывая что все привыкли видеть в вас очень грамотного и спокойного специалиста. И соответственно побудило написать коммент.


> [75] Anatoly Podgoretsky ©   (04.06.10 12:12)
> Ты не учи нас писать правильные программы, мы то умеем.
> На нас не
> наживешься, никакой переработки не будет.

Практика подсказывает что на этой планете нет программистов которые умеют писать программы правильно.
Все лажают. Все говнокодят. Особенно в кранче.


 
Игорь Шевченко ©   (2010-06-04 12:47) [78]


> Например, тем, что при просмотре кода сразу виден старый
> код (закомментированный), новый код, автора, дату и причину
> изменений. И для этого не требуются дополнительные инструменты,
>  жмакание на дополнительные кнопки, поиск и просмотр дополнительной
> информации и т.п. Быстро, просто, удобно.


Это код, который невозможно читать. Код должен содержать реализацию алгоритма, а не историю полетов мысли


 
Юрий Зотов ©   (2010-06-04 12:59) [79]

> @!!ex ©   (04.06.10 12:40) [77]

> Юрий, единственная причина моего комментария выше - то что вы
> необычайно аггресивны последнее время.

В самом деле? Надо же, Вы единственный, кто это заметил.

Я совершенно-спокоен, идеально-бел и мягко-пушист. До тех пор, пока на меня не наезжают (см. [50] и [71]).

Прошу учесть. И будет мир-дружба-жвачка.


 
@!!ex ©   (2010-06-04 13:08) [80]

ну нормального мира не получится, пока:
> [76] Юрий Зотов ©   (04.06.10 12:16)
> я и без Вас знаю, как делаются программы

потому что:

> [74] Юрий Зотов ©   (04.06.10 12:11)
> С воспаленным ЧСВ жить трудно



> [79] Юрий Зотов ©   (04.06.10 12:59)
> Надо же, Вы единственный, кто это заметил.

Не единственный. Но комментарий другого автора удалили.
Может и еще были, не слежу за этим.



Страницы: 1 2 3 4 5 6 7 8 9 
10 вся ветка

Форум: "Прочее";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.64 MB
Время: 0.024 c
6-1226166639
Igor2010
2008-11-08 20:50
2010.09.12
idhttp запрос


4-1240162200
alex870
2009-04-19 21:30
2010.09.12
Какой файл проигрывает Windows Media Player


2-1276544773
Цукор5
2010-06-14 23:46
2010.09.12
чтение сокета. ServerSocket1ClientRead


2-1276357423
DROWSY
2010-06-12 19:43
2010.09.12
2 запроса в Firebird 1.5


2-1276338216
forNeXt-13
2010-06-12 14:23
2010.09.12
Как сделать ValueListEditor в возможностью выбора





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