На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> RAD Studio XE , Обсуждение Delphi XE
    ахрофигеть. я все таки этого дождался. я думаю ни раз разработчики задавали себе вопрос почему в делфи нет встроенных регулярок. и в основном юзали сторонний компонент (если нужно было)
    а вот только что нечаянно (не совсем нечаянно. просто компонент в XE отвалился и пришлось искать замену) нашел в документации к XE что они встроили в делфю регулярки.
    правда гады написали всего одну строчку про это:
    Цитата www.embarcadero.com
    Language, Compiler and Library Enhancements

    Continued improvements and enhancements to your application foundation.

    Updates to the VCL, RTL, and STL
    Regular expressions for Delphi RTL
    Enhanced TStrings and Date/Time functionality
    Enhanced RTTI support for C++, new rvalue references, move semantics for std::string, and additional C++ VCL enhancements
    Added support for the OpenTools API for internal tabs
    Improved compiler performance
    и пришлось самостоятельно выискивать по крупицам где это у нас уже регулярки есть.
    модуль: RegularExpressions
    класс: TRegEx
    стандарт: PCRE
    ExpandedWrap disabled
      uses
        RegularExpressions;
       
      procedure TForm5.Button1Click(Sender: TObject);
      var
        Reg: TRegEx;
        i:integer;
        M: TMatchCollection;
      begin
        Reg := TRegEx.Create('[а-я]*',[roIgnoreCase, roMultiLine]);
        M:=Reg.Matches('Я строка. И теперь меня можно парсить прамо в делфи без сторонних компонентов.');
        for i := 0 to M.Count-1 do
           Memo1.Lines.Add(M[i].Value)
      end;


    Эта тема была разделена из темы "Новости Embarcadero"
      Цитата ViktorXP @
      правда гады написали всего одну строчку про это

      Вообще это один из основных highlights, не знаю, как можно было пропустить :). Они своё написали или взяли TRegExpr Сорокина?
        не то и не другое.
        там TPerlRegEx. он помощьнее за TRegExpr.
          Цитата
          TPerlRegEx is a wrapper around the open source PCRE library

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

            пс. а глянуть самому я смотрю влом. :)
              Цитата ViktorXP @
              там инклудится все в файл

              А, obj-ами сделали? Это хорошо.
              Цитата ViktorXP @
              а глянуть самому я смотрю влом

              Дык нету у меня ХЕ под руками, была триальная да кончилась, а портабельная запакована, не поглядишь, как там всё устроено.
                Цитата Fr0sT @
                А, obj-ами сделали? Это хорошо.

                ага. сам люблю когда они так делают :lol:
                единственный минус что невозможно глянуть/исправить
                  Только что обнаружил странный глюк при syncedit
                  если выделить часть кода и включить syncedit (Ctrl+Shift+J или кнопкой), а потом поставить курсор перед любой строкой в блоке и нажать Ctrl+/ то будет продублирована строка. одна будет закоментирована вторая нет.
                  Это глюк или фича?

                  пс. возможно не потеме, но даже в XE эта "фича" проявляется
                    Ага, есть такое. Зачем - хз, скорее всего баг. Напиши в QC, если такой темы нету еще :)

                    Как там насчет новой версии, ни у кого вестей с фронтов нету?
                      прикольную они клиента под Quality Central сделали. Теперь багрепортом стало пользоваться удобнее :)
                      пс. ему бы еще рус. язык и ему бы цены не было.
                        Хм, а мне как-то на редкость неудобным показался. На сайте, конечно, тоже криво всё сделано, но хоть более-менее юзать можно.
                          офигеть. сегодня на работе столкнулся с трудностью
                          ExpandedWrap disabled
                            type
                              TTest<T> = class
                                procedure Test;
                              end;
                             
                            { TTest }
                             
                            procedure TTest<T>.Test;
                              procedure ProcTest; //[DCC Error] Unit5.pas(38): E2570 Local procedure in generic method or method of generic type is not supported
                              begin
                             
                              end;
                            begin
                             
                            end;
                          Неужто так трудно было организовать локально-процедурные методы в дженериках.

                          при этом пропускает банальности
                          ExpandedWrap disabled
                            type
                              {$M+}
                              TMyObj = class(TObject)
                             
                              end;
                             
                              TMyObject1 = class(TMyObj)
                             
                              end;
                             
                              TMyObject2 = class(TMyObj)
                             
                              end;
                             
                            var
                              MyObject: TMyObject1;
                             
                            type
                              TTest<T: TMyObj> = class
                                procedure Test;
                              end;
                             
                            { TTest }
                             
                            procedure TTest<T>.Test;
                            var
                              pr: TProc<T>;
                            begin
                              pr := procedure (Obj: T)
                                 begin
                             
                                 end;
                              pr(MyObject); // это не должно было пропустить.
                            end;
                             
                            var
                              Test: TTest<TMyObject2>;


                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                            Цитата ViktorXP @
                            pr(MyObject); // это не должно было пропустить.

                            Почему? Если я не ошибся, MyObject - потомок TMyObj.

                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                              Цитата Romkin @
                              Почему?

                              Потому что
                              Test: TTest<TMyObject2>;

                              это тоже самое что я буду пытатся
                              ExpandedWrap disabled
                                type
                                  TForm1 = class(TForm);
                                  TForm2 = class(TForm);
                                procedure Test(frm: TForm1);
                                begin
                                end;
                                 
                                Test(Form2); // тут ругнется ошибкой. хотя обе формы являются потомком TForm


                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                              Сообщение отредактировано: ViktorXP -
                                Цитата ViktorXP @
                                Потому что
                                Test: TTest<TMyObject2>;

                                это тоже самое что я буду пытатся

                                Не то же самое. Ты уже вкомпилировал вызов по соглашению. Может, следовало уже не пропустить объявление Test: TTest<TMyObject2>;? Правило то же: на основе того, что неявно подставлен TMyObject1 в Test...
                                Тут можно было говорить о том, что не должно было пропустить вызов с явным потомком, независимо от того, есть ниже реализация дженерика или нет. Но не думаю, что это правильно.

                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0439 ]   [ 16 queries used ]   [ Generated: 9.11.24, 14:31 GMT ]