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

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

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

ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 4

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).

Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:09 28-06-2009 | Исправлено: psa1974, 12:00 02-02-2010
    psa1974



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

    Цитата:
    "Точка входа в процедуру @Frxformutils@frxErrorMsg$qqrx17System@AnSistring не найдена в библиотеке DLL frx10.bpl."  


    Цитата:
    Пбэльку эту закидывал в корневой каталог программы и в System32, тоже самое.

    frx10.bpl ты подкинул то новую и программа ее замечательно находит... только... Смущает в этом сообщении ссылка на модуль @Frxformutils@.  
    Такое впечатление, что ты откомпилировал каким-то образом со старой frx10.bpl... Прога пытается найти в  frx10.bpl точку входа в модуль frxFormUtils, которого в новой БПЛ уже нет и который ты заменил на frxFileUtils... вот и ругается... Поищи у себя на компе, где компилировал эту БПЛ-ку во всех возможных местах, сравни их...  
    Также проверь список рунтайм-пакетов, кот. не дожны включаться в экзешник и которые надо таскать с собой, и надо ли оно вообще (речь о списке под галочкой Build with runtime packages)...

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 12:04 23-03-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    psa1974  
    Немного не так написал: у меня такая ошибка (как писал выше), если старые версии экзешников запускаю. А у пользователей: "Точка входа в процедуру @Frxpngimage@initialization$ggrv не найдена в библиотеке DLL frx10.bpl."  (вроде так, по памяти писал). Проект не мой, я его доробатываю. Помимо экзешника еще два модуля есть: ERPC_Interface и ERP_Types (при компиляции создаются две бпэльки). Вот что в рантайм-пакетах:   ERPC_Interface;ERP_Types;rtl;dbrtl;HCN696_D2006Demo
    Может сюда наоборот добавить что нужно?
     
     
    Добавлено:
    Всем спасибо, вопрос решен.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 12:35 23-03-2010
    psa1974



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

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 13:12 23-03-2010 | Исправлено: psa1974, 13:13 23-03-2010
    emo

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

    Цитата:
    У меня вопрос такой, про интерфейсы. Допустим я пишу:
     
    ....
     
    нужен реальный объект-интерфейс? Иначе не работает. Встречали ли Вы множественный out и как с ним быть?  

     
    А причем тут интерфейсы? Почему не объявить параметр (outk:TStringList) без дальнейшего привидения типов? Или это просто какой-то упрощенный код? Что имеете ввиду под "множественный out"?  
     

    Всего записей: 373 | Зарегистр. 19-11-2003 | Отправлено: 13:33 23-03-2010
    delover

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc
    Ладно, я наверное неправильно выражаю свою мысль. Все одно придется делать для шрифтов иначе.
     
    Добавлено:

    Цитата:
    Что имеете ввиду под "множественный out"?

    Ну так может быть
    Такой например:

    Код:
    procedure T2.Func3(out CI1, CI2: set of TMyEnum);


    Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 13:33 23-03-2010 | Исправлено: delover, 15:25 23-03-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    delover
     
    Запросто. Сколько угодно out-ов (равно как и var-ов, и const-ов) - в том и отличие возврата значений через var/out от возврата результата функции (который может быть только один, ессно).

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 14:45 23-03-2010 | Исправлено: Odysseos, 14:47 23-03-2010
    delover

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos
    Правда, придётся признать "множественный out" несостоятельное выражение. Я спрашивал именно про то что Вы ответили. Спасибо.

    Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 15:56 23-03-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    delover
     
    И out a, b, c: <тип|класс|интерфейс> тоже может быть - это, собственно, то же самое с точки зрения компилятора, что и out a: <тип|класс|интерфейс>; out b: <тип|класс|интерфейс>; out c: <тип|класс|интерфейс>, просто более короткая форма записи.

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 16:13 23-03-2010
    delover

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos
    Меня иногда смущает то обстоятельство, что до некоторого времени нельзя было писать следующим образом:

    Код:
    ...
      case Str1 of
        'abc': ; 'de': ; 'fgh': ;
      else Exit;
      end;

    Подозреваю что <тип|класс|интерфейс> мне не одолеть. Не хочу показаться выскочкой, мне более понятно <тип|строка|интерфейс>. Трудно укладывается в голове интерфейс без класса. И ещё труднее строка как тип. Возвращаясь к кейсу думаю такое было оправдано. С точки зрения компилятора кейс строк, - неэффективное программирование. Иногда в голове что угодно, лишь бы не делать...

    Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 21:37 23-03-2010 | Исправлено: delover, 22:10 23-03-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    delover
     
    Подозреваю что <тип|класс|интерфейс> мне не одолеть.
     
    Что ж не понятного-то? Имелось в виду, что можно написать out a, b, c: Integer, out a, b, c: TDateTime, out a, b, c: String (типы - точней, простые типы), out a, b, c: TObject, out a, b, c: TControl, даже out a, b, c: TClass (классы и классовые типы), out a, b, c: IUnknown, out a, b, c: IStream (интерфейсы).
     
     
    Трудно укладывается в голове интерфейс без класса.
     
    Представьте абстрактный класс, вообще без полей данных, только с методами, причем не реализованными, а объявленными как virtual; abstract;, и потом наследуйте от этого класса свои классы - причем, с возможностью множественного наследования - вот это и есть интерфейс.
     
     
    И ещё труднее строка как тип.
     
    А, страшусь спросить - что же тогда такое строка? Если это массив символов - статический, по указателю, динамический - но, тем не менее, массив символов - то что это, если не тип данных?
     
    ...Каша у Вас в голове, уж простите, сударь, по поводу данных и их типов

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 02:02 24-03-2010 | Исправлено: Odysseos, 02:04 24-03-2010
    MSx213



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята! как на delphi сделать так, чтобы конвертился русский текст вот так:
     
    тестовая >>>> %F2%E5%F1%F2%EE%E2%E0%FF
    т.е. например в поисковике вбиваешь русский текст, в браузере в адресной строке он так конвертится =)

    Всего записей: 203 | Зарегистр. 25-02-2007 | Отправлено: 13:52 24-03-2010 | Исправлено: MSx213, 13:53 24-03-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MSx213, готовой функции не скажу, но по факту эта строка из 16-ричных кодов указанной строки в кодировке utf8, с префиксом "%". Байты с кодом <128 включаются в результат непосредственно, без конвертации.
     
    Т.е., напр., имеем строку "Тестовая", конвертим в UTF8, получаем последовательность байт "D0 A2 D0 B5 D1 81 D1 82 D0 BE D0 B2 D0 B0 D1 8F", каждый байт <$80 включаем в "сыром" ASCII-виде, все прочие - в 16-ричном с префиксом, т.е. %D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B0%D1%8F.
     
    Добавлено:
    upd: хотя в приведённом Вами примере строка кодировалась не в utf-8, а в codepage 866... Скорее всего, кодировка в адресной строке зависит от кодировки страницы...
    upd2: в описанном мною алгоритме непонятно, как кодировать символ "%". хотя он в строке адреса недопустим, как я понял.

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 15:45 24-03-2010 | Исправлено: AviDen, 15:45 24-03-2010
    delover

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos
    Что ж не понятного-то? Имелось в виду, что можно
    Поправимо. С точки зрения компилятора я Вас прекрасно понял, как Вы заметили согласился. И попытался предложить вам ещё одну точку зрения, соответственно, не точку зрения компилятора. Спасибо, Вы в полной мере ответили на мой вопрос.
     
    страшусь спросить - что же тогда такое строка?
    Строка это с точки зрения компилятора то что может быть строкой паскаля, строкой языка Си (длина по зав. символу), строкой MSDOS ($), строкой уникодной, строкой двубайтовых символов, строкой OleVariant, строкой .NET, типизированной строкой (tmycaption = type tcaption), строкой resourcestring, и одиночным символом, и локальным массивом, и оптимизированной константой const mystr2 = 'aaa'+'bbb'+'ccc'. С точки зрения компилятора очень простой тип. А другую точку зрения позволительно?
     
    Каша у Вас в голове, уж простите, сударь, по поводу данных и их типов
    Этот топик про Delphi до 2009? Вроде да. В .NET интерфейс и класс изначально одно и то же. C точки зрения Delphi не .Net существуют операторы с интерфейсами и с классами очень похожие. Операторы с типами, очень похожие, но не похожие на 'as' и 'is'. И некоторый модуль Classes в котором имеется ввиду что Форму можно сохранить в строку, а так же некоторый набор слов Concat, Val. Вообще то, что как было в Паскале, так и присутствует.
     

    Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 15:59 24-03-2010 | Исправлено: delover, 16:42 24-03-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    upd3: соврал, ряд символов с кодом <$80 также необходимо кодировать, читать здесь и здесь

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 16:03 24-03-2010
    JohnSilver182



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что то через PROXY не могу заставить  TWebBrowser1 робить.
     

    Код:
    //PRoxy
    g_par.UseProxy:=cf.ReadBool('PROXY','use_proxy',false);
    g_par.portproxy:=cf.ReadInteger('PROXY','port',0);
    g_par.LoginProxy:=cf.ReadString('PROXY','login','бе');
    g_par.PasswordProxy:=sec.Loadparm('proxy_pass','#');
    g_par.HostProxy:= cf.ReadString('PROXY','host','гы гы гы');
     
    if  g_par.UseProxy then
    begin
      New (PIInfo) ;
      PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY ;
      PIInfo^.lpszProxy := PChar(g_par.LoginProxy+':'+g_par.PasswordProxy +'@'+g_par.HostProxy +':'+Inttostr(g_par.PortProxy));
      PIInfo^.lpszProxyBypass := PChar('');
      UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info),0);
      Dispose(PIInfo) ;
    end;

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 16:13 24-03-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnSilver182,
    1) UrlMkSetSessionOption что возвращает?
    2) Ты уверен, что в PIInfo^.lpszProxy можно пихать логин/пароль для прокси?
    Я бы попробовал вместо UrlMkSetSessionOption заюзать InternetSetOption, она позволяет раздельно задать как адрес прокси, так и логин/пассворд, тем более, что
    Цитата:
    This function maps directly to the Microsoft® Windows® Internet function InternetSetOption
    (из MSDN)

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 16:41 24-03-2010
    JohnSilver182



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

    Цитата:
    1) UrlMkSetSessionOption что возвращает?  

    Ноль возвращает  

    Цитата:
    2) Ты уверен, что в PIInfo^.lpszProxy можно пихать логин/пароль для прокси?  

    не уверен

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 16:59 24-03-2010 | Исправлено: JohnSilver182, 17:01 24-03-2010
    DmitryKz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как можно реализовать такую фичу: нечто вроде drag-and-dock кантролов в ран-тайме. Например, есть три чекбокса, описывающих некий шаблон подачи информации при цитировании из книги: автор, название работы, название книги. Надо обеспечить пользователю свободное манипулирование этими единицами информации, а также отключение какой-либо единицы, например, когда нет автора. Хочется для большей визуальности и наглядности применить вышеописанный способ. Когда элемент, на место которого передвигается другой, меняется с ним местами. Хочется спросить, как это можно сделать и как контролировать порядок контролов?

    Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 08:25 25-03-2010
    JohnSilver182



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AviDen  Пример бы где найти ....

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 09:27 25-03-2010
    delover

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В воскресенье все переходим на летнее время. Готовимся писать uses DateUtils и -1.
    А так же вспоминаем разницу DB.DisplayFormat и System.Format

    Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 10:02 25-03-2010 | Исправлено: delover, 10:03 25-03-2010
       

    Страницы: 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 5
    ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru