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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

ShIvADeSt



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

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

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

     
    И старайтесь, чтобы ваш код не попал сюда

  • Всего записей: 3923 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: data man, 02:45 31-12-2010
    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, а именно список по нажатию кнопки. В нете ничего нужного не нашел. Заранее спасибо.

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



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

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

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

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

    Всего записей: 3923 | Зарегистр. 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
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Bonivur
    Ну типа так я делал.
    >>

    Всего записей: 834 | Зарегистр. 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
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Bonivur
    Если честно, то мне тогда надо было просто отобразить весь текст, сам блокнот по такому принципу и работает. Да и привычнее апи функциями уже орудовать.

    Всего записей: 834 | Зарегистр. 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 вы своей длл-ке передаете?

    Всего записей: 2165 | Зарегистр. 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" применять не пробовали?

    Всего записей: 2165 | Зарегистр. 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
     

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

    Всего записей: 1281 | Зарегистр. 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 базу

    Всего записей: 1281 | Зарегистр. 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 тогда

    Всего записей: 1281 | Зарегистр. 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 часов...вряд ли вы осилите на таком уровне знаний работу еще и с портом и тд...начтните с азов..или пусть предприятие выделить денюжку на опытного программера..так как за вас каждый шаг тут никто делать не будет

    Всего записей: 1281 | Зарегистр. 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

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

    Имя:
    Пароль:
    Сообщение

    Для вставки имени, кликните на нем.

    Опции сообщенияДобавить свою подпись
    Подписаться на получение ответов по e-mail
    Добавить тему в личные закладки
    Разрешить смайлики?
    Запретить коды


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru