Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE2 (Pulsar)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Открыть новую тему     Написать ответ в эту тему

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаем новые возможности и баги
Просьба писать только про Embarcadero RAD Studio XE2 (Pulsar) - по остальным версиям есть соответствующие темы.

Вопросы вареза здесь не обсуждаются !!!
См. также:


Из слишком часто повторяемых вопросов:
  1. Почему EXE такие большие - перевод статьи от Andy тут, оригинал на страницу назад.
  2. Что случилось c авто-увеличением Build Number - Объяснение на англ.. Можно отключить встроенную функцию и добавить плагин, в котором есть "старый" авто-инкремент. Например DDevExtensions от Andy. У него так же есть хороший плагин IDE FixPack

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 23:54 27-07-2011 | Исправлено: Arioch1, 16:08 25-04-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
не исключено, что я, быть может, очень сильно туплю, но смилуйтесь надо мной и моим природным скудоумием, ткните меня носом туда, где конкретно заключается это самое пресловутое ЕГО РЕШЕНИЕ. Неужели в его чистосердечном признании: "Apparently I missed some of the source files. I removed them and they compiled." (в вольном переводе звучащее как "Очевидно, какие-то/некоторые исходники были мною потеряны/пропущены. Я удалил их и они скомпилировались")? Ок, и в чём тут суть, которую я никак не могу уловить? Покажите мне, пожалуйста, те самые звёзды, по которым можно прочитать названия файлов, которые он удалил, а то я не совсем понимаю, о чём говорит автор "решения".

Всего записей: 1764 | Зарегистр. 10-03-2006 | Отправлено: 10:31 12-01-2013 | Исправлено: reenoip, 11:05 12-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
I figured it out about 30 minutes after posting the topic. I had somehow missed deleted files from the original install. Once I cleared those out I was able to build and install the packages.

 
а то что вы процитировали - это уже про какую-то другую ,следующую проблему.
Цитата:
Now I have a new problem.  

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 14:04 12-01-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Он (автор якобы "решения") говорит "I had somehow missed deleted files from the original install. Once I cleared those out I was able to build and install the packages.", что в вольном переводе является не руководством к действию (т.е. решением), а просто изложением автора своих догадок о том, как он каким-то (одному ему понятным) образом решил проблему. Изложением без точных инструкций, названий, и, собственно, действий. Ну, и что это за "решение" такое? Вот если бы он объяснил по шагам, как и что нужно сделать, чтобы решить, - тогда другое дело. Вместо этого он написал "Once I cleared those (deleted files) out I was able to build and install the packages". У меня кроме "молодец, чо" никакой реакции на его пустые слова нет. Но если кому-либо это и кажется "решением", тогда пусть он скажет мне, неразумному, что мне нужно сделать в соответствии с предложенным "решением", чтобы установить Indy без ошибок. А то я, похоже, другой английский язык изучал. Благодарю заранее.

Всего записей: 1764 | Зарегистр. 10-03-2006 | Отправлено: 14:41 12-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
если его решение вам не подходит, это значит что нет НИКАКОГО решения

 
аналогично если он не смог выразить свое решение так, чтобы вы его поняли (а английский у него, действительно плохой).
 
Человек как смог написал, что тщательно поискал, и нашел файлы от старого Инди, которые пропустил раньше. Доудалил и у него пакеты собрались.
 
На том форуме обсуждалась ЕГО проблема и она там РЕШЕНА и РЕШЕНИЕ описано.
 
Если вашу проблему это не решило - так бывает.
Если вы не смогли понять его рещение  - так тоже бывает.
Но решение там есть.
 
Добавлено:

Цитата:
Вот если бы он объяснил по шагам, как и что нужно сделать


Цитата:
пусть он скажет мне, что мне нужно сделать

 
и вообще пусть он вам уже купить новый хороший компьютер, да ?
 
он оказывается должен был в прошлом году угадать какие и где сегодня файлы лежат у вас на компе ?
и еще "по шагам объяснить" как их удалять ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 18:05 12-01-2013
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Месяц назад обновлял у себя инди. Вот порядок действий:
 
 
Перейдите в окно Install Packages (Component->Install Packages), уберите галочки из всех пакетов Indy и удалите их нажав кнопку Remove.
Затем откройте окно настроек среды (Tools->Options->Library Win32/64) и удалите из строки Library path пути к исходным кодам Indy(они могут отсутствовать). Удобно пользоваться диалоговым окном, которое открывается нажатием на кнопку [...].
 
После этого добавьте в Library path 3 пути:
<Полный путь>\Lib\System
<Полный путь>\Lib\Core
<Полный путь>\Lib\Protocols
 
Закройте Delphi.
Удалите из директории с установленной Delphi исходные коды Indy. Обычно они располагаются в папке <папка с Delphi>/sources/Indy (папку также можно удалить).
Из папки Lib, которая располагается по адресу <папка с Delphi>/lib, удалите файлы
Код:
 
IndySystem*.*
IndyCore*.*
IndyProtocols*.*
dclIndyCore*.*
dclIndyProtocols*.*
 
Удаление завершено, приступим к установке.
Запустите Delphi, и откройте пакет IndySystemX0.dpk (где X – это ваша версия Delphi), который располагается по следующему адресу: <папка Indy>\Lib\System и скомпилируйте его.
Затем откройте пакет IndyCoreX0.dpk из папки <папка Indy>\Lib\Core и скомпилируйте его.
После этого откройте и скомпилируйте пакет IndyProtocolsX0.dpk, который располагается в папке <папка Indy>\Lib\Protocols.
Далее откройте пакет dclIndyCoreX0.dpk, который располагается в папке <папка Indy>\Lib\Core и установите его, после также установите пакет dclIndyProtocolsX0.dpk из папки <папка Indy>\Lib\Protocols.
 
Описанный выше порядок очень важен, компилируйте и устанавливайте пакеты именно в указанной последовательности.
 
Вот и все, поздравляю, теперь у вас установлена нужная вам версия Indy.
 
Если у Вас возникает следующая ошибка:
RLINK32: Error opening File packagename.drf
Попробуйте следующий метод:
- Удалите все .DCP и .BPL файлы из пакета.
- Откройте .DPK файл в IDE, перейдите в параметры проекта, установите Build Control на "Explicit Rebuild".
- Скомпилируйте пакет.
- Повторите эти действия для каждого зависимого пакета.

Всего записей: 447 | Зарегистр. 03-12-2007 | Отправлено: 00:13 13-01-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
а вы, однако, настырный... Ещё раз: решения там нет, иначе я не задавал бы здесь свой вопрос. Там есть слова о том, что автор вопроса удалил файлы, а вот какие именно - он написать не удосужился. Но без этих самых подробностей остальные его слова - всего лишь слова, а не само решение. И это очень легко проверить. Вот вы сами (т.е. я вас, как говорится, за язык не тянул) сказали это:

Цитата:
Человек как смог написал, что тщательно поискал, и нашел файлы от старого Инди, которые пропустил раньше.

Что ж, ок, а теперь будьте так добры - перечислите, пожалуйста, эти самые "файлы от старого Инди", которые он у себя якобы удалил. Вы же утверждаете, что в его словах вы видите решение. В чём оно заключается? Какие конкретно файлы удалять? Откуда именно?
 
   
 
Полный список...
 
 
 
 
 
 
 
jFobos
по вашему рецепту на 4-м шаге (установка dclIndyCore160.dpk) у меня теперь не "[DCC Fatal Error] IdDsnPropEdBindingVCL.pas(80): F1026 File not found: 'IdIDN.dcu'", а сразу такое:
 
   
 
после закрытия оного выходит это:
 

Всего записей: 1764 | Зарегистр. 10-03-2006 | Отправлено: 14:11 13-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Во-первых, в его форуме описано решение ЕГО проблемы.  
 
Во-вторых - я бы запустил Process Monitor и смотрел где какие файлы используются при сборке и при загрузке.  
 
В третьих я бы не ставил Дельфи в Program files - еще мне геморроя с клонированием файлов в Virtual Stоrage не хватало. Впрочем, я UAC не отключаю.
 
В четвертых я бы удалил Инди через стандартное удаление программ в панели управления. И новый Инди и старый.
Потом зачистил бы все файлы - вообще все, особенно DCP и DCU и BPL
Потом бы скачал новый Инди и убедился, что он единственный на компе.
 
Вот то что ты фобосу пишешь типично, когда DCP при компиляции используется от одной версии, а BPL другой. Я такие радости испытывал при ручной пересборке DevEx.  
Для каждого пакета должен быть только один DCP и только один BPL
Причем от SVN-версии Инди похоже, а не от 10.0.52
 

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 14:28 13-01-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
 
Проблема с точкой входа в процедуру и загрузкой bpl - это от нескольких версий bpl. Грузится какая-то старая.
 
Второе: студию лучше всего ставить не в program files, а в c:\dev (или любой иной путь без пробелов). Пробелы в пути к файлам периодически вымораживают c++ builder ну и в самой студии случаются глюки.
 
П.С. Инструкция от jFobos хорошая, похожа на рабочий вариант) Впрочем, именнт так и надо делать при обновлении ЛЮБОГО компонента: полностью удаляем старый, и ставим новый. Приличные компоненты содержат инсталлер, который это все делает за нас.

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 10:06 14-01-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Короче... Удалил старую версию Indy и установил новую (10.5.9.4910), и хотя процесс обновления, как оказалось, совсем не такой, как мне тут говорили, главное - результат (всё работает, и даже старые проекты, несмотря на многочисленные предупреждения знающих, завелись без единого warning'а). Ну и, разумеется, остался какой-никакой опыт.
 
 
Теперь новая порция: даже после обновления Indy чужой простой пример всё равно отказывался компилироваться. После вдумчивого чтения умных книжек и различных советов, многострадальный код был мутирован подправлен до такого состояния:
 

Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TBytes; ABinding: TIdSocketHandle);
var
  d: TStringStream;
  s: String;
begin
  d:=TStringStream.Create;
  d.Write(AData[0], Length(AData));
  s:=d.DataString;
  s:=BytesToString(AData, TEncoding.UTF8);
  Label1.Caption:=s;
  d.Free;
end;

В итоге код стал работать нормально, а после добавления "TEncoding.UTF8" и вовсе перестал беспокоить (ушли "?????" вместо кириллических символов). Но появилось одно-единственное "НО" - с таким кодом при каждой процедуре компиляции/сохранения проекта стало выходить сообщение:
 
   
 
Понимаю, что это, видимо, как-то связано с тем, что я изменил

Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TIdDynByteArray; ABinding: TIdSocketHandle);

на

Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TBytes; ABinding: TIdSocketHandle);

 
Что можно/нужно делать в таких случаях?

Всего записей: 1764 | Зарегистр. 10-03-2006 | Отправлено: 14:21 16-01-2013 | Исправлено: reenoip, 14:23 16-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вместо скриншота лучше текст вставлять IMHO.
 
попробуй в тексте формы поменять описание на то, которое в Indy
 
Дизайнер Дельфи тупой, иногда это помогает, но вот в таких случаях - задалбывает.
 
 
Добавлено:
А вообще передавать вот так запросто данные через UDP - это как-то стрёмно.
 
И еще, за товремя, какое ты Indy курощаешь - м.б. быстрее было бы в Синапсе разобраться ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 14:27 16-01-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
данных как таковых нет, поэтому нестрашно терять то, что не критично, нужно просто раз в несколько часов broadcast'ить несколько слов. Кто поймал их - тому повезло, кто не поймал - тот опоздал. То, что UDP без каких-либо гарантий доставки - я в курсе, конкретно в данном проекте эти гарантии и не требуются: если хотя бы десяток-полтора из пары сотен клиентов поймают broadcast - уже отлично. Такое вот январское извращение.
 
Добавлено:

Цитата:
попробуй в тексте формы поменять описание на то, которое в Indy

а теперь по-русски, пожалуйста.

Всего записей: 1764 | Зарегистр. 10-03-2006 | Отправлено: 14:46 16-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это хорошо, если пакет не дойдет. А если дойдет начало и конец с вырезанной серединой ?
 
верни тип procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;  
   const AData: TIdDynByteArray; ABinding: TIdSocketHandle);

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 18:23 16-01-2013
vez



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TIdDynByteArray; ABinding: TIdSocketHandle);
 
на
 
Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TBytes; ABinding: TIdSocketHandle);
 
 
Что можно/нужно делать в таких случаях?

 
Это известная бага среды в инди,  но они так до сих пор не исправили (разрабы инди и делфи/билдера)
В QC она есть.

Всего записей: 519 | Зарегистр. 02-06-2003 | Отправлено: 19:17 16-01-2013 | Исправлено: vez, 19:17 16-01-2013
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip, вы вот написали что процесс обновления, совсем не такой, как вам тут говорили. Не удосужитесь написать какой именно? И чем он отличается от предложенного варианта?  
 
А то получается аналогично той темы, на которую вы так ругались раньше. http://forum.ru-board.com/topic.cgi?forum=33&topic=11977&start=1040#4
 
Добавлено:
Ах да, чуть не забыл. Наконец добрался до делфи.
http://img547.imageshack.us/img547/125/screenshotyi.png
На скрине отмечена версия инди и результат компиляции. Забросил на форму компонент IdUDPServer1. Двойной клик по событию OnUDPRead. Никаких манипуляций с исходным кодом инди не поводил. Использую делфи ХЕ2 U4 HF1. Что я делаю не так?  
 
vez, в общем багу исправили, если верить svn-у инди, то в сентябре 2012, но в пакет ХЕ2 U4 HF1 фикс так и не вошел.  

Всего записей: 447 | Зарегистр. 03-12-2007 | Отправлено: 23:03 17-01-2013 | Исправлено: jFobos, 00:28 18-01-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извиняюсь за долгий ответ - не мониторил топик после сообщения vez'a.
 

Цитата:
reenoip, вы вот написали что процесс обновления, совсем не такой, как вам тут говорили. Не удосужитесь написать какой именно? И чем он отличается от предложенного варианта?
А то получается аналогично той темы, на которую вы так ругались раньше.
 

Секрет прост: выборочное (внимание: вы-бо-роч-ное, а не полное) удаление файлов, относящихся к Indy. Бездумное поголовное удаление всего (как мне тут советовали), что хоть как-то связано с Indy и/или содержит в своём названии 4 заветных буквы "indy", - и было причиной моей проблемы. Когда начал косить файлы поштучно - проблему решил. Да, это долго, муторно, и вообще неэффективно, зато следующее обновление обойдётся без лишних вопросов.
 
 
 
 
 
 
 
 
 
 

Цитата:
Что я делаю не так?

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

Код:
procedure TForm1.FormCreate(Sender: TObject);  
begin  
IdUDPClient1.Port:=7000;  
IdUDPClient1.BroadcastEnabled:=True;  
IdUDPClient1.Active:=True;  
 
IdUDPServer1.BroadcastEnabled:=True;  
IdUDPServer1.DefaultPort:=7000;  
IdUDPServer1.Active:=True;  
end;  
 
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;  
ABinding: TIdSocketHandle);  
Var  
d : TStringStream;  
data : String;  
begin  
d := TStringStream.Create("");  
d.CopyFrom(AData, AData.Size);  
data:= D.DataString;  
d.Free;  
Memo1.Lines.Add(Data);  
end;  
 
procedure TForm1.Button1Click(Sender: TObject);  
begin  
IdUDPClient1.Send(EDit1.Text);  
end;

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

Всего записей: 1764 | Зарегистр. 10-03-2006 | Отправлено: 10:34 02-02-2013 | Исправлено: reenoip, 10:36 02-02-2013
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Секрет прост: выборочное (внимание: вы-бо-роч-ное, а не полное) удаление файлов, относящихся к Indy.

Так в моем сообщении и не написано удалять все файлы, написаны конкретные имена.

Всего записей: 447 | Зарегистр. 03-12-2007 | Отправлено: 14:51 08-02-2013
vez



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
vez, в общем багу исправили, если верить svn-у инди, то в сентябре 2012, но в пакет ХЕ2 U4 HF1 фикс так и не вошел.  

Они её исправили в последнем ХЕ3, т.к. она вылезла в С++64, я бета-тестировал и посылал им, как оказалось и разработчик ИНДИ их тоже пинал

Всего записей: 519 | Зарегистр. 02-06-2003 | Отправлено: 20:55 08-02-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так в моем сообщении и не написано удалять все файлы, написаны конкретные имена.  

 
jFobos
см. вторую половину моего ответа на ваше сообщение.

Всего записей: 1764 | Зарегистр. 10-03-2006 | Отправлено: 08:56 12-02-2013
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip, прочел. Я не писал что надо удалять IdIDN.dcu. У меня четко написано что удалить.
 

Цитата:
IndySystem*.*
IndyCore*.*
IndyProtocols*.*
dclIndyCore*.*
dclIndyProtocols*.*

 
А ошибка явно говорит, что файл dclIndyCore160.bpl вы не удалили, хотя должны были.
 
ps: хотя какая разница, главное что поставилось.

Всего записей: 447 | Зарегистр. 03-12-2007 | Отправлено: 10:32 12-02-2013 | Исправлено: jFobos, 10:52 12-02-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jFobos
хз, грохал по маске в соответствии с вашим рецептом. Сейчас уже точно не помню перечень файлов, так что и доказывать ничего не могу.
 
 
 
 
vez
а есть надежда, что они всё-таки исправят это в очередном update для XE2? Или XE2 авторами больше не обслуживается?

Всего записей: 1764 | Зарегистр. 10-03-2006 | Отправлено: 10:48 12-02-2013 | Исправлено: reenoip, 10:53 12-02-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE2 (Pulsar)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru