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

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

Модерирует : 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 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

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

ShIvADeSt



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

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


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


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    Bonivur



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Odysseos
    Frodo_Torbins
    С помощью TntUnicode Controls проблему решил. Все юникод символы сохраняются. Спасибо. Посмотрите, не слишком ли корявый код определения кодировки -

    Код:
     
    const
      UTF8 = #$EF#$BB#$BF;
      UTF16LE = #$FF#$FE;
      UTF16BE = #$FE#$FF;
    var
      temp_str:string;
      f : TextFile;
    begin
      if OpenDlg.Execute then
      begin
          Memo.Lines.LoadFromFile(OpenDlg.FileName);
     
            AssignFile(f,OpenDlg.FileName);
            {$I-}
            Reset(f);
            {$I+}
             If IOResult=0 then
             begin
               try
                 ReadLn(f,temp_str);
               finally
                 CloseFile(f);
               end;
             end;
     
            if (temp_str[1]+temp_str[2]+temp_str[3]<>UTF8) and (temp_str[1]+temp_str[2]<>UTF16LE)
                and (temp_str[1]+temp_str[2]<>UTF16BE) then ShowMessage('Unicode') else ShowMessage('Non-Unicode');
     
     

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 11:24 19-05-2010 | Исправлено: Bonivur, 15:44 19-05-2010
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Коллеги, не подскажете, где можно посмотреть или как реализовать выпадающий список TPopupListBox = class(TCustomListBox) - не PopupMenu, а именно список по нажатию кнопки. В нете ничего нужного не нашел. Заранее спасибо.

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 03:45 21-05-2010
    ShIvADeSt



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

    Цитата:
    Посмотрите, не слишком ли корявый код определения кодировки

    А если при помощи этого IsTextUnicode

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:39 21-05-2010
    Bonivur



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ShIvADeSt
    Я пробовал (ради эксперимента), но что-то не смог прикрутить, но мне по любому надо определение кодировки не текста, а файла.

    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 11:15 21-05-2010
    Maks150988



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

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 22:11 23-05-2010
    Bonivur



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Maks150988
    Спасибо, но мне это уж слишком громоздкий код для моей задачи. Открываем файл через OpenDialog. Помещаем его в Memo. Нужно определить кодировку открытого файла. Мой код, который я привел выше работает хорошо (я проверял на всех типах Unicode и ASCII текста). Более того, в связке с модулем XLat.pas компонент Memo правильно определяет и выводит текст в кодировках - DOS, KOI-8, Win1251, UTF-8, UTF16LE и BE, что мне, в принципе, и надо. Единственное, в чем я сомневался будет ли код определять ВСЕ Unicode файлы. Возможно это у меня для тестирования попались "удобные" образцы. То есть является мой код fool-proof?  
    А зачем Вам понадобилось идти столь сложным путем? Почему нельзя было использовать AssignFile и далее читать строки через ReadLn на наличие символов Юникода?


    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 10:38 24-05-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bonivur
    Если честно, то мне тогда надо было просто отобразить весь текст, сам блокнот по такому принципу и работает. Да и привычнее апи функциями уже орудовать.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 12:48 24-05-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть DLL с отчетами (FastReport v4.8) разработанная на CodeGear2009. Экзешник (Delphi 5) нормально вызывает отчет, но когда пытаешься свернуть программу с запущенным отчетом она разворачивается обратно. Вопрос: можно ли это исправить (в DLL или в настройках отчетов)? Отчеты вызываются НЕ модально.
     
     

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 09:10 25-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    Application.Handle вы своей длл-ке передаете?

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 11:14 25-05-2010
    0z0n



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите с таким вопросом замахался не могу сделать простого, может кто знает как:
    Мне надо чтобы в зависимости от включения и выключение кнопки менялись ее надписи.
    Вот чего я наваял. Может офтоп извините...
     
    procedure TSDIAppForm.BitBtn1Click(Sender: TObject);
    begin
    if BitBtn1.Caption = 'START' then (BitBtn1.Caption := 'STOP');
    if BitBtn1.Caption = 'STOP' then (BitBtn1.Caption := 'START');
    end;
     
    Заранее благодарен.

    Всего записей: 317 | Зарегистр. 12-10-2004 | Отправлено: 11:47 25-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0z0n
    Ключевое слово "else" применять не пробовали?

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 12:04 25-05-2010 | Исправлено: Frodo_Torbins, 12:04 25-05-2010
    mdid

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0z0n
    лучше не привязываться к надписям..ибо не та буква или не тот ригистр символа и условие не выполнится...
    проще вязать к BitBtn1.tag...тоесть

    Код:
     
    procedure TSDIAppForm.BitBtn1Click(Sender: TObject);  
    begin  
    if BitBtn1.Tag =0  then begin//было выключено - включили
       BitBtn1.Caption := 'STOP';  
       BitBtn1.tag := 1;  
    end
    else begin//было включено-выключили
      BitBtn1.Caption := 'START';  
      BitBtn1.tag := 0;  
    end
     

    как то так...чуть больше писанины но вы не привязываетесь к символам

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 13:32 25-05-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Да, handle передаю

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 14:58 25-05-2010
    0z0n



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Еще вопрос у меня куча значений в формах. Как и где лучше всего их хранить. Мое мнение в каком то текстовом файле типа файла конфигурации. Программа для обработки данных с com порта и контроля контролера зерносушилки. Мне надо где то хранить предельные обороты двигателей которые указывает пользователь. Предельные температуры горелок. И в камерах и т. д. подскажите, а то я дуб дерево. Мне все хотелось бы сгрузить в несколько файликов и как то их закодировать чтобы пользователь не смог редактировать. Пасиб.

    Всего записей: 317 | Зарегистр. 12-10-2004 | Отправлено: 15:08 25-05-2010
    mdid

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0z0n
    dbf,ini,mdb(придется на access расчитывать)...можно даже в открытом виде в текством файле..но зиповать его...если данных много то советовал бы все таки sql базу

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 15:15 25-05-2010
    0z0n



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mdid
    А Если в текстовый файл то какая компонента?

    Всего записей: 317 | Зарегистр. 12-10-2004 | Отправлено: 16:26 25-05-2010
    mdid

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0z0n
    текстовый файл это плохой вариат...ибо придется делать свою структуру для записи и чтения
    еси все таки этот вариант то хелп в сторону функций
    AssignFile
    Reset
    или через FileStream..но все это откровенно говоря дерьмовый вариант
    в так же бесплатный компонент зиповки zipforge
    и еси уже решили  делать через файлы то проще через ini тогда

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 16:34 25-05-2010 | Исправлено: mdid, 16:38 25-05-2010
    0z0n



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А проще хранить какую то таблицу в структуре базы данных в которой хранить все свои опции? Я чесно не до конца соображаю как это сделать. Короче торба.

    Всего записей: 317 | Зарегистр. 12-10-2004 | Отправлено: 17:24 25-05-2010
    mdid

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0z0n
    вы не обижайтесь но судя по вопросу ваш опыт delphi не более 2-3 часов...вряд ли вы осилите на таком уровне знаний работу еще и с портом и тд...начтните с азов..или пусть предприятие выделить денюжку на опытного программера..так как за вас каждый шаг тут никто делать не будет

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 17:31 25-05-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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Активные темы » Вопросы по Delphi (до версии 2009) - часть 6


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru