На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> Чего не хватает в FAQ? , Чего изволите? :)
    Пишите сюда свои пожелания относительно содержания FAQ данного раздела.
    Порядок для крупных тем:
    а) находим тему;
    б) выявляем добровольца, даем ему тему и время на реализацию;
    в) публикуем статью в форуме, обсуждаем, правим при необходимости;
    г) переносим статью в FAQ;
    д) награждаем непричастных и наказываем невиновных :) ;
    Мелкие темы объединяются в крупные тематические.


    Предложенные темы:
    1) Использование TChart(предложил OlegGG)
    2) Работа с буфером обмена(предложил OlegGG)
    3) Сети, сокеты и т.д.(предложил OlegGG)
    4) Использование DLL(предложил PsiHo)
    5) Архивирование/сжатие стандартными алгоритмами(предложил PsiHo)




    Предлагать можно не только абсолютно новые темы, но и уже ранее обсуждавшиеся на форуме, но не попавшие в FAQ.
    Принимаются также пожелания и замечания по структуре FAQ.



    С рабочим вариантом можно ознакомиться здесь. За скорость не ручаюсь. :)
    Сообщение отредактировано: trainer -
      Похоже это сложный вопрос

      а почемубы их не предложить Авторам которые уже присали FAQ или кто еще хочет.

      ато обидно что такие темы проподают. :'(

      Добавлено в :
      а насчет педложений:

      1)предлогать ссылку на уже сделаную часть програмы
      2)дописать в FAQ там в некоторых местах нехвотает кое чего...
        Не работает ссылка на архив с иконками -((
          В последнее время много вопросов про INI сожет знаюшим стоит добавить в FAQ
            Я как-то раньше собирался писать про сокеты...но OleGG сказал, что у него почти всё готово...но я как-то не вижу этого в Факе...может еще надо?
              Цитата
              lusims, 27.03.04, 21:26
              Я как-то раньше собирался писать про сокеты...но OleGG сказал, что у него почти всё готово...но я как-то не вижу этого в Факе...может еще надо?
              Пиши.
                Работаем с Word,Excele, или это повторение других разделов этого форума?
                  Про shared-секции в Билдере хотелось бы наконец разобраться. Очень больной вопрос, перерыл здесь всё, а там вопросы без ответов.
                  Так есть ли альтернатива #pragma data_seg(.my_seg) в Билдере? :wall:
                    Может и не в этом месте делаю предложение-
                    Переименовать FAQ в:
                    1. Ответы на вопросы (FAQ)
                    У Нас Русский сайт.
                      люди что в последнее время насто встречается вопрос об
                      компонетнте StringGrid :D :D :D

                      делаем выводы...
                        PsiHo, а ты прав :). Сделаем. :D
                          нудык может сразу на AdvStringGrid

                          ась ... :lol:
                            Цитата
                            PsiHo, 15.04.04, 10:50
                            нудык может сразу на AdvStringGrid
                            Думаю, что лучше TStringGrid, а TAdvStringGrid - в довесок отдельной темой.
                              :D
                                Кроме того, было бы неплохо объяснить людям разницу между TStringGrid и TDrawGrid и как этим воспользоваться.
                                  Bas написал статью Работаем с Word .
                                  Милости просим к обсуждению. Пожелания, замечания...
                                    Я не многое умею в Билдере но про INI написать смогу.
                                    Хочется внести свой вклад.
                                      Добавте в FAQ как можно более подробное руководство по DirectX, 3D,
                                      вообшем расскажите как работать с 3D - ешной графикой и как делать игры :-)
                                      Вот туту есть примерно что то по этому классное
                                      http://www.vcl.ru/html/cb/vc32_3d/1.htm
                                        Надо бы чего-нибудь по OpenGL создать, народ просит! Я бы с радостью, но сейчас на мне документация и серия статей, так что выбираем автора.
                                          Цитата trainer,7.01.04, 12:22
                                          Предложенные темы:
                                          1) Использование TChart(предложил OlegGG)
                                          2) Работа с буфером обмена(предложил OlegGG)
                                          3) Сети, сокеты и т.д.(предложил OlegGG)
                                          4) Использование DLL(предложил PsiHo)
                                          5) Архивирование/сжатие стандартными алгоритмами(предложил PsiHo)

                                          Предлагаю:
                                          6) ShellEx
                                          7) PlugIns for IE, MS Office...
                                            Цитата
                                            myaut, 25.07.04, 09:03
                                            Надо бы чего-нибудь по OpenGL создать, народ просит! Я бы с радостью, но сейчас на мне документация и серия статей, так что выбираем автора.


                                            Могу дать пару примеров, написанных для школьной училки (я её учил работать с OGL)..
                                            Примеры написаны без коментов и через....
                                              что в последнее время всем понабелись MDI
                                              а подробно FAQ я невидел (он есть? если есть то где, если нет то надо сделать!!!:whistle: )
                                                Ссылка в ответе на вопрос "Как узнать загруженность процессора под WinNT?" - "мёртвая".
                                                А вопрос этот сейчас очень интересует. Может стоит ссылку поправить?
                                                  Неплохо бы организовать поиск по ключевым словам.
                                                    Добавьте пожайлуста работу с базами через готовые компоненты!
                                                      Цитата dr.Livsi, 27.11.04, 00:32
                                                      Добавьте пожайлуста работу с базами через готовые компоненты!

                                                      Есть варианты
                                                      1.Прочитать FAQ по БД из Delphi (не всегда перевести можно "в лоб", но многое понятно)
                                                      2.Переписать этот вариант FAQ на BCB
                                                      3.Создать список часто задаваемых вопросов (на многие смогу ответить).
                                                        Цитата Bas @
                                                        Создать список часто задаваемых вопросов (на многие смогу ответить).


                                                        Было бы неплохо! Только кто возметься создавать такой список?
                                                          В текущем факе ошибка. В ответе на вопрос "Как не допустить повторения запуска программы" есть такой код:
                                                          ExpandedWrap disabled
                                                            AnsiString AtomName = "some_big_big_unique_atom_name";
                                                            ATOM Atom;
                                                             
                                                            if (GlobalFindAtom(AtomName.c_str()) == 0)
                                                                    {
                                                                    // создаём атом
                                                                    Atom = GlobalAddAtom(AtomName);
                                                                    }
                                                            else
                                                                    {
                                                                    // мы уже есть - ругаемся и выходим
                                                                    ShowMessage("proga already loaded");
                                                                    Application->Terminate();
                                                                    }


                                                          в строке

                                                          ExpandedWrap disabled
                                                            Atom = GlobalAddAtom(AtomName);


                                                          однозначно не хватает .c_str()
                                                            Цитата
                                                            Как работать с gif-форматом?


                                                            Вторая ссылка в этой статье битая :(
                                                              Сорри... но кажется вот тут - http://www.sources.ru/builder/faq/051.html
                                                              битая ссылка.. :huh:
                                                                про ftp доступ надо в FAQ.
                                                                Что-нибудь типа "Как изменить *.txt по используя протокол ftp"
                                                                :unsure:
                                                                  PsiHo предложил Использование DLL. А было бы гораздо лучше, я думаю, написать тему - Написание и использование DLL
                                                                    Предлагаю включить Работа с компонентами Ehlib
                                                                      У меня накопился неплохой материал по созданию динамического TChart. На форуме попросили его оформить. Как это сделать?
                                                                      И как добавить свое (не свое) изображение в сообщение под ником? Смотрю, уже все что-то понавставляли.
                                                                        Цитата laifik @
                                                                        У меня накопился неплохой материал по созданию динамического TChart. На форуме попросили его оформить. Как это сделать?
                                                                        http://bcb-faq.pochta.ru/121.html Если есть что добавить - ждем.

                                                                        Цитата laifik @
                                                                        И как добавить свое (не свое) изображение в сообщение под ником?
                                                                        Это называется "аватар". Вверху ссылка "Мой профиль", там будет слева ссылка "Настройки аватара"
                                                                          Цитата trainer @
                                                                          Если есть что добавить - ждем.

                                                                          Да, у меня иного рода информация. В основном, задание свойств.
                                                                          Я должна сама как-то это оформить, или просто скинуть код. Тогда, куда?
                                                                          Если оформить сама, то, наверное, со всеми комментариями. И опять же, куда поместить код?
                                                                            Оформить в таком же стиле "вопрос-ответ", отправить мне.
                                                                              Цитата laifik @
                                                                              Цитата trainer @
                                                                              Если есть что добавить - ждем.

                                                                              Да, у меня иного рода информация. В основном, задание свойств.

                                                                              Не знаю, правильно ли я Вас поняла, но попыталась текст расположить "вопрос-ответ", где это возможно.
                                                                              ExpandedWrap disabled
                                                                                Как создать динамический TChart?
                                                                                 
                                                                                TChart *Chart1 = new TChart (this);
                                                                                Chart1->Parent=this;//Chart1 располагается на форме
                                                                                 
                                                                                Как задать габаритные размеры графика?
                                                                                         Chart1->Height = 209;
                                                                                         Chart1->Left = 12;
                                                                                         Chart1->Top = 326;
                                                                                         Chart1->Width = 498;
                                                                                                  Chart1->BackColor = clBtnFace;
                                                                                                  Chart1->BorderStyle = bsNone;
                                                                                                  Chart1->Color = clBtnFace;
                                                                                 
                                                                                Свойство Frame определяет рамку вокруг диаграммы
                                                                                                  Chart1->Frame->Color = TColor(0x00404080);  
                                                                                                  Chart1->Frame->Style = psSolid;
                                                                                                  Chart1->Title->Text->Clear();
                                                                                 
                                                                                Текст подписи можно осуществить через свойство Text
                                                                                         Chart1->Title->Text->Add("Эпюра нагрузки");
                                                                                Расположение подписи в центре графика
                                                                                Chart1->Title->Alignment = taCenter;
                                                                                Цвет надписи
                                                                                         Chart1->Title->Font->Color = clMaroon;
                                                                                Имя шрифта
                                                                                         Chart1->Title->Font->Name = "Arial";
                                                                                Размер шрифта
                                                                                         Chart1->Title->Font->Size = 8;
                                                                                 
                                                                                Свойство Legend представляет собой список обозначений на диаграмме или графике
                                                                                         Chart_S->Legend->Visible = true;
                                                                                Расположение с левой стороны
                                                                                         Chart_S->Legend->Alignment = laLeft;
                                                                                 
                                                                                Определить цветовую гамму
                                                                                                  Chart1->LeftWall->Color = TColor(0x00E8E8F4);  
                                                                                                  Chart1->BottomWall->Color = clMaroon;          
                                                                                                  Chart1->BackWall->Color = clBtnFace;
                                                                                 
                                                                                Свойство property ValueFormat : String; производит форматирование строкового спецификатора, а именно меток осей
                                                                                            Chart1->LeftAxis->AxisValuesFormat= "# ##0,###";              
                                                                                 
                                                                                Определить значения левого, правого, верхнего и нижнего полей компонента Chart
                                                                                Chart1->MarginLeft = 1;
                                                                                            Chart1->MarginRight = 1;
                                                                                            Chart1->MarginTop = 0;
                                                                                            Chart1->MarginBottom = 0;
                                                                                Chart1->LeftAxis->LabelsOnAxis = false;
                                                                                 
                                                                                Определить число шагов анимированной последовательности изменения масштаба изображения
                                                                                Chart1->AllowZoom = true ;      
                                                                                Chart1->AnimatedZoom = false ;  
                                                                                Chart1->AnimatedZoomSteps = 8 ;  
                                                                                Chart1->LeftAxis->RoundFirstLabel = true ;
                                                                                Chart1->BottomAxis->LabelsMultiLine = false;
                                                                                 
                                                                                Chart1->Visible = true;
                                                                                 
                                                                                Как задать количество серий и тип графика?
                                                                                int num_ser = 2;
                                                                                for(int i=0; i<=num_ser; i++) {
                                                                                 
                                                                                TBarSeries *s_new = new TBarSeries(Chart1);
                                                                                s_new->Name = "Series"+IntToStr(Chart1->SeriesList->Count);
                                                                                Chart1->AddSeries(s_new);
                                                                                 
                                                                                Как не показывать значения над столбцами серии?
                                                                                s_new->Marks->Visible = false;
                                                                                 
                                                                                Как сделать фон надписей прозрачным? (true)
                                                                                s_new->Marks->Transparent = false;
                                                                                Как показать значение по оси Y?
                                                                                 
                                                                                s_new->Marks->Style = smsLabel;
                                                                                 
                                                                                Как установить расстояние от Top столбца до Bottom надписи (значения)?
                                                                                s_new->Marks->ArrowLength = 20;  
                                                                                Как задать толщину линии кривой (если TLineSeries)?
                                                                                new_s->LinePen->Width = 2;
                                                                                }
                                                                                 
                                                                                Как задать цвет серии?
                                                                                Chart1->Series[0]->SeriesColor = clWhite;   //chart->Series[num_series]->...;
                                                                                Chart1->Series[1]->SeriesColor = clYellow;
                                                                                 
                                                                                Заголовок серии в легенде
                                                                                Chart_S->Series[0]->Title = "S без обл.";
                                                                                Chart_S->Series[1]->Title = "S с облед.";
                                                                                }
                                                                                 
                                                                                Как установить ширину столбца серии в зависимости от  ScrollBar
                                                                                //Min не должен быть в пределах 2 до 100
                                                                                ((TBarSeries*)Chart1->Series[2])->BarWidthPercent = ScrollBar1->Position;
                                                                                 
                                                                                Отключить затемнение боковых сторон
                                                                                ((TBarSeries*)Chart1->Series[0])->Dark3D=false;
                                                                                ((TBarSeries*)Chart1->Series[1])->Dark3D=false;
                                                                                 
                                                                                Как расположить серии друг за дружкой?
                                                                                ((TBarSeries*)Chart1->Series[0])->MultiBar = Series::mbNone;
                                                                                ((TBarSeries*)Chart1->Series[1])->MultiBar = Series::mbNone;
                                                                                Предложение, в последнее время возникает много вопросов по OpenDialog
                                                                                может надо уже добавить в фак??? :whistle:
                                                                                  А если не совсем согласен со статьёй "Как сделать, чтобы в TEdit можно было вводить только числа?" ?

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

                                                                                  У меня такой вот код имел место быть:
                                                                                  ExpandedWrap disabled
                                                                                      try
                                                                                        {
                                                                                          (((TEdit* )Sender)->Text+AnsiString(Key)).ToDouble();
                                                                                        }
                                                                                      catch( ... )
                                                                                        {
                                                                                          // Однако пропускаем забой и минус в пустом поле
                                                                                          if (!(Key == '-' && ((TEdit* )Sender)->Text=="") && Key != 8) Key = 0;
                                                                                        }


                                                                                  Хотя, должен признать, и здесь есть некоторая натяжка. Если мы переместили курсор куда либо от последней позиции - может работать некорректно.
                                                                                  Поэтому полезно аналогичную проверку засунуть ещё и в OnExit

                                                                                  Может быть народ ещё какие ошибки в таком подходе сыщет...

                                                                                  Идеально, конечно, было бы добавить поле класса AnsiString TextOld, по событию OnKeyPress закидывать туда проверять текст до нажатия клавиши, в событии OnKeyUp проверять уже сформированный текст и если он не Double - востанавливать Text обратно... Что-нибудь по типу:

                                                                                  ExpandedWrap disabled
                                                                                    void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
                                                                                    {
                                                                                      EditTextOld = ((TEdit* )Sender)->Text ;
                                                                                    }
                                                                                    //---------------------------------------------------------------------------
                                                                                     
                                                                                     
                                                                                    void __fastcall TForm1::Edit2KeyUp(TObject *Sender, WORD &Key,
                                                                                          TShiftState Shift)
                                                                                    {
                                                                                      try
                                                                                        {
                                                                                          (((TEdit* )Sender)->Text).ToDouble();
                                                                                        }
                                                                                      catch( ... )
                                                                                        {
                                                                                           ((TEdit* )Sender)->Text = EditTextOld ;
                                                                                        }
                                                                                    }
                                                                                    //---------------------------------------------------------------------------


                                                                                  Тогда вроде бы ошибок быть не должно. Но это уже скорее подходит для компонента.
                                                                                    Было бы не плохо узнать как выглядят
                                                                                    наиболее важные функции Delphi на BCB <_<
                                                                                      Цитата Grif666 @
                                                                                      Было бы не плохо узнать как выглядят
                                                                                      наиболее важные функции Delphi на BCB <_<

                                                                                      имхо большинство функций выглядят одинаково(если я тебя правильно понял)
                                                                                        Мне кажется архивного сжатие
                                                                                          Про ftp вопросы вроде стали часто появляться, а в FAQ об этом ничего не видно.

                                                                                          Что-нибудь базовое про это черкануть может быть, типа "как подконнектиться, залогиниться, скачать/загрузить файл"... в самом билдерском хелпе этот раздел почему-то слабо освещён, да и в книжках редко об этом поминается...
                                                                                            Мне кажется нужно было бы включить в фак инфо по подключению сторонних компонентов.
                                                                                              В раздел: автор OlegGG
                                                                                              Цитата
                                                                                              Выполнение действий при наведении курсора на компонент

                                                                                              Стоит добавить описание как сделать например аналогию в 5 билдере, потому как не всё ПО пишется на шестом... а в пятом таких событий как OnMouseEnter & OnMouseLeave нет.
                                                                                              Вот пример:
                                                                                              ExpandedWrap disabled
                                                                                                //---------------------------------------------------------------------------
                                                                                                //=====Хедер
                                                                                                //---------------------------------------------------------------------------
                                                                                                class MyPanel : public TPanel
                                                                                                {
                                                                                                private:
                                                                                                  void __fastcall OnMouseEnter(TMessage &msg);
                                                                                                  void __fastcall OnMouseLeave(TMessage &msg);
                                                                                                  void __fastcall OnTimer(TObject *Sender);
                                                                                                  TTimer *Timer;
                                                                                                 
                                                                                                protected:
                                                                                                  BEGIN_MESSAGE_MAP
                                                                                                    VCL_MESSAGE_HANDLER(WM_MOUSEHOVER, TMessage, OnMouseEnter)
                                                                                                    VCL_MESSAGE_HANDLER(WM_MOUSELEAVE, TMessage, OnMouseLeave)
                                                                                                  END_MESSAGE_MAP(TPanel)
                                                                                                 
                                                                                                public:
                                                                                                  __fastcall MyPanel(TComponent* Owner);
                                                                                                  __fastcall ~MyPanel();
                                                                                                 
                                                                                                __published:
                                                                                                 
                                                                                                };
                                                                                                //---------------------------------------------------------------------------
                                                                                                //=====Собственно *.срр файл
                                                                                                //---------------------------------------------------------------------------
                                                                                                __fastcall MyPanel::MyPanel(TComponent* Owner)
                                                                                                  : TPanel(Owner)
                                                                                                {
                                                                                                  Timer = new TTimer(Owner);
                                                                                                  Timer->OnTimer = OnTimer;
                                                                                                  Timer->Interval = 1;
                                                                                                }
                                                                                                //---------------------------------------------------------------------------
                                                                                                __fastcall MyPanel::~MyPanel()
                                                                                                {
                                                                                                  delete Timer;
                                                                                                }
                                                                                                //---------------------------------------------------------------------------
                                                                                                void __fastcall MyPanel::OnMouseEnter(TMessage &msg)
                                                                                                {
                                                                                                  Font->Color = clYellow;
                                                                                                  Cursor = crHandPoint;
                                                                                                }
                                                                                                //---------------------------------------------------------------------------
                                                                                                void __fastcall MyPanel::OnMouseLeave(TMessage &msg)
                                                                                                {
                                                                                                  Font->Color = clNavy;
                                                                                                  Cursor = crDefault;
                                                                                                }
                                                                                                //---------------------------------------------------------------------------
                                                                                                void __fastcall MyPanel::OnTimer(TObject *Sender)
                                                                                                {
                                                                                                  TRACKMOUSEEVENT track;
                                                                                                  track.cbSize = sizeof(TRACKMOUSEEVENT);
                                                                                                  track.dwFlags = TME_LEAVE;
                                                                                                  track.dwHoverTime = 10;
                                                                                                  track.hwndTrack = Handle;
                                                                                                  TrackMouseEvent(&track);
                                                                                                  track.cbSize = sizeof(TRACKMOUSEEVENT);
                                                                                                  track.dwFlags = TME_HOVER;
                                                                                                  track.dwHoverTime = 10;
                                                                                                  track.hwndTrack = Handle;
                                                                                                  TrackMouseEvent(&track);
                                                                                                }
                                                                                                //---------------------------------------------------------------------------
                                                                                                //=====Использование, например в форме Form1...
                                                                                                //---------------------------------------------------------------------------
                                                                                                  MyPanel *Panel; //эта строка гденить в секции Private хедера формы
                                                                                                //---------------------------------------------------------------------------
                                                                                                  Panel = new MyPanel(this); //эти строки в конструкторе формы
                                                                                                  Panel->Parent = this;
                                                                                                  Panel->Left = 100;
                                                                                                  Panel->Top = 100;
                                                                                                  Panel->Caption = "I love programming";
                                                                                                //---------------------------------------------------------------------------
                                                                                                  delete Panel; //эта строка в деструкторе формы
                                                                                                //---------------------------------------------------------------------------

                                                                                              Вообщем например так...
                                                                                              Сообщение отредактировано: Uhri -
                                                                                                а почему в faq нет раздела печать ? :whistle:
                                                                                                  Цитата PsiHo @
                                                                                                  а почему в faq нет раздела печать ?

                                                                                                  Займись. :rolleyes:
                                                                                                    оригинал .... :D сам ищю
                                                                                                      В факе нет ветки Работа с 3D графикой! Ой бы туда топиков набралось...

                                                                                                      Цитата PsiHo @
                                                                                                      ищю

                                                                                                      Надо писать "истчщу", но уж никак не "ищю" :lol:
                                                                                                      Сообщение отредактировано: mad_avenger -
                                                                                                        user posted image Вопрос: Как убрать мерцание при перемешении/изменении размеров TImage и других контролов на форме?

                                                                                                        Ответ: Добавить в конструктор формы
                                                                                                        ExpandedWrap disabled
                                                                                                          DoubleBuffered = true;


                                                                                                        Этот вопрос достоин быть в FAQ
                                                                                                        Сообщение отредактировано: mad_avenger -
                                                                                                          Какие свойства и методы имеет Application->***, и как с ними работать?
                                                                                                            я думаю что про сеть ОЧЕНЬ мало информации, в частности библиотека iphlpapi.dll, хотя для сетевиков она ой как нужна
                                                                                                              РАБОТА С ПОРТАМИ - COM-порт(RS-232), LPT,... ну пока и хватит :D К примеру выбрать путь: API или какой-нибудь достойный компонент... и накатать. И в общем сделать обзор компонентов по работе с портами...
                                                                                                                нету дружественного описания создания многопоточного сервера
                                                                                                                обычный вариант нет проблем и информации куча и достаточно прозрачные свойства стандартных компонент Tserversocket..

                                                                                                                многопоточный вариант же темный лес...
                                                                                                                  Словарь терминов С++, Builder'a и форума.
                                                                                                                    Вопрос: Как задать поля отступа (Margins) у TRichEdit для печати?
                                                                                                                    Ответ: Использовать TRichEdit->PageRect
                                                                                                                    Пример:
                                                                                                                    ExpandedWrap disabled
                                                                                                                      void __fastcall SetPageMargins( TRichEdit * RE,
                                                                                                                                                      double LeftMargin,
                                                                                                                                                      double TopMargin,
                                                                                                                                                      double RightMargin,
                                                                                                                                                      double BottomMargin )
                                                                                                                      {
                                                                                                                          double hPicsByMM    = (double)GetDeviceCaps(Printer()->Handle, LOGPIXELSX) / 25.4;
                                                                                                                          double vPicsByMM    = (double)GetDeviceCaps(Printer()->Handle, LOGPIXELSY) / 25.4;
                                                                                                                       
                                                                                                                          RE->PageRect.Left   = hPicsByMM * LeftMargin;
                                                                                                                          RE->PageRect.Top    = vPicsByMM * TopMargin;
                                                                                                                          RE->PageRect.Right  = Printer()->PageWidth  - (hPicsByMM * RightMargin);
                                                                                                                          RE->PageRect.Bottom = Printer()->PageHeight - (vPicsByMM * BottomMargin);
                                                                                                                      }
                                                                                                                      Вопрос: это только я вижу что
                                                                                                                      Цитата
                                                                                                                      Последнее обновление: 14.02.2004

                                                                                                                      или fag действительно не обновляется?
                                                                                                                        Здрасте, мне у ФАКю нехватаетфункцый WinAPI , просто я щас етим занимаюся приходится искать по нету :(
                                                                                                                          Цитата neyod @
                                                                                                                          Здрасте, мне у ФАКю нехватаетфункцый WinAPI , просто я щас етим занимаюся приходится искать по нету

                                                                                                                          для этого есть МСДН.
                                                                                                                          просто трудновато в ФАК вместить несколько тыщщ описаний с примерами ф-ций WinAPI ;)
                                                                                                                            Алекс а можеш пожалуйста дать ссилочку на АПИ МСДН именно чтобы там много было етих функцый (Download)...
                                                                                                                              Цитата neyod @
                                                                                                                              Алекс а можеш пожалуйста дать ссилочку на АПИ МСДН именно чтобы там много было етих функцый (Download)...

                                                                                                                              они разбросаны по разделам. что именно интересует? тематика? файлы, синхронизация, окна...
                                                                                                                                Multimedia & System
                                                                                                                                  Цитата neyod @
                                                                                                                                  Multimedia & System

                                                                                                                                  А точне, плз.. Работа со звуком?
                                                                                                                                    Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.
                                                                                                                                      Multimedia Functions

                                                                                                                                      Цитата neyod @
                                                                                                                                      Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.

                                                                                                                                      ? не понял. Оригинальные API ф-ции ???
                                                                                                                                        Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.

                                                                                                                                        Добавлено
                                                                                                                                        Нет!! Ну что бы было красиво визуально!!!(в пределах розумного)
                                                                                                                                          Цитата neyod @
                                                                                                                                          Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.

                                                                                                                                          :lool: :lool: :lool:

                                                                                                                                          извини, но звучит реально смешно.

                                                                                                                                          "неземные формы" - это в смысле, различные окна (дырявые, прозрачные, нестандартные всякие)? или что это такое ?

                                                                                                                                          Добавлено
                                                                                                                                          Цитата neyod @
                                                                                                                                          Нет!! Ну что бы было красиво визуально!!!(в пределах розумного)

                                                                                                                                          это уже от дизайнера зависит.

                                                                                                                                          о по окна ф-ции тут
                                                                                                                                            Не совсем то и смешно. Просто ти когда нибуть видел формы типа ВинАмпа или еще кокой то проги где окна не обычные квадратики с Баттонами а окна действительно реально красивые :D
                                                                                                                                              такие кнопки являются самыми обычными, просто на них натянута картинка.

                                                                                                                                              но для этих вопросов создавай отдельную тему в соответствующем форуме, т.к. тематика не соответствует теме темы :)... модераторы по голове не погладят :)
                                                                                                                                              Сообщение отредактировано: alexander.stoyan -
                                                                                                                                                Вот те! Ты случайно не знаеш где можно скачать ети Функцыи в одном файле?
                                                                                                                                                  нет
                                                                                                                                                    :( Жаль... Ну че пойду где то еще поищу! :no:
                                                                                                                                                        по поводу winAPI. нашел классную программку - API-Guide 3.7
                                                                                                                                                        отличная программка, где описано множество функций API с примерами (правда по аглицки).
                                                                                                                                                        токма не помню где. могу выложить, тока не знаю как. :rolleyes:
                                                                                                                                                          Частенько на форуме подымается вопрос: "Как импортировать свой класс из DLL?".

                                                                                                                                                          Решений на самом деле множество, вот несколько известных мне:

                                                                                                                                                          1. статическая привязка lib файла к ехе и хедера класса:

                                                                                                                                                          недостаток, нет динамики, мы не используем функцию LoadLibrary, и соответственно не управляем процессом загрузки библиотеки, компилятор это все за нас встраивает в наше приложение и в случае отсутствия dll приложение просто выдает сообщение об отсутствии dll и не запускается. А если нам это нужно было. Ну например для того, чтобы у одного клиента функциональность программы была больше, а другого меньше (денег меньше заплатил :) );

                                                                                                                                                          2. динамическая привязка, с загрузкой методов класса вручную:

                                                                                                                                                          ExpandedWrap disabled
                                                                                                                                                            //есть некий класс CLS, в DLL он реализовывается обычным способом, только добавляем _export в объявлении класса, т.е.
                                                                                                                                                            class _export CLS
                                                                                                                                                            {
                                                                                                                                                            public:
                                                                                                                                                                void PutValue(int Index, int Value);
                                                                                                                                                            };
                                                                                                                                                            //в ЕХЕ всё иначе обстоит, вот пример объявления класса
                                                                                                                                                            typedef void (__import * FPutValue(int Index, int Value));
                                                                                                                                                            class CLS
                                                                                                                                                            {
                                                                                                                                                            public:
                                                                                                                                                                FPutValue * PutValue;
                                                                                                                                                            };
                                                                                                                                                            //а теперь когда мы загрузили либу получаем нашу функцию и присваиваем методу класса
                                                                                                                                                            cls->PutValue = (FPutValue *)GetProcAddress(dll, "@testcls@PutValue$qii");
                                                                                                                                                            //далее используем как и где нам надо, имхо не забывайте про проверку
                                                                                                                                                            if(cls->PutValue)
                                                                                                                                                            {
                                                                                                                                                            }


                                                                                                                                                          Недостаток я думаю очевиден, слишком много мороки при написании этого. Можно ли упростить импорт класса? Можно, см. пункт 3.

                                                                                                                                                          3. Динамическая привязка DLL с использованием виртуального класса, полиморфизм нас спасёт :)
                                                                                                                                                          Идея очень простая:
                                                                                                                                                          - создаем базовый чисто виртуальный класс;
                                                                                                                                                          В DLL
                                                                                                                                                          - создаем класс, который наследует наш виртуальный базовый класс, и реализуем все его методы;
                                                                                                                                                          - создаем две экспортируемые функции: первая создает наш класс и возвращает указатель на базовый, вторая уничтожает наш класс.
                                                                                                                                                          В ЕХЕ
                                                                                                                                                          - загружаем библиотеку
                                                                                                                                                          - импортируем наши две функции из библиотеки
                                                                                                                                                          - создаем класс первой функцией и работаем с ним
                                                                                                                                                          - уничтожаем класс второй функцией

                                                                                                                                                          В аттаче к сообщению полный пример реализации 3 способа.

                                                                                                                                                          PS: закорлючки вида "@testcls@PutValue$qii" можно узнать при помощи утилиты impdef.exe которая находится в папке bin Builder-a.
                                                                                                                                                          PPS: удачи
                                                                                                                                                          Прикреплённый файлПрикреплённый файлDBTEST.zip (70.77 Кбайт, скачиваний: 1122)
                                                                                                                                                              ссылка не работает.
                                                                                                                                                                Столкнулся я с TBitmap и выяснил, что TBitmap->Canvas->Pixels[][] работает неимоверно медленно... Нашел параметр TBitmap::ScanLine[] - работает очень быстро, но не всегда удобно разбираться где там Red, Green, Blue и собирать это всё в пиксел и т.п. Поэтому сделал свой класс: обертку над TBitmap.
                                                                                                                                                                Эксперимент, например нам нужно картинку из цветной сделать черно-белой, размеры картинки 2816x2112:
                                                                                                                                                                ExpandedWrap disabled
                                                                                                                                                                      //Graphics::TBitmap * bmp;
                                                                                                                                                                   
                                                                                                                                                                      for(int w=0; w<bmp->Width; w++)
                                                                                                                                                                          for(int h=0; h<bmp->Height; h++)
                                                                                                                                                                          {
                                                                                                                                                                              TColor cl = bmp->Canvas->Pixels[w][h];
                                                                                                                                                                              BYTE val = BYTE(U_BLUE_KOEF * GetBValue(cl) + U_GREEN_KOEF * GetGValue(cl) + U_RED_KOEF * GetRValue(cl));
                                                                                                                                                                              cl = TColor(RGB(val,val,val));
                                                                                                                                                                              bmp->Canvas->Pixels[w][h] = cl;
                                                                                                                                                                          }

                                                                                                                                                                Результат мы получим примерно за 20 секунд (Pentium 3.06 GHz, 512 Mb ОЗУ)
                                                                                                                                                                С моим классом оберкой:
                                                                                                                                                                ExpandedWrap disabled
                                                                                                                                                                      //UBitmap * bmp;
                                                                                                                                                                      for(int w=0; w<bmp->Width; w++)
                                                                                                                                                                          for(int h=0; h<bmp->Height; h++)
                                                                                                                                                                          {
                                                                                                                                                                              BYTE val = BYTE(U_BLUE_KOEF * bmp->B[w][h] + U_GREEN_KOEF * bmp->G[w][h] + U_RED_KOEF * bmp->R[w][h]);
                                                                                                                                                                              bmp->Pixels[w][h] = TColor(RGB(val, val, val));
                                                                                                                                                                          }

                                                                                                                                                                Результат мы получим примерно через 3 сек.

                                                                                                                                                                PS: класс-обертка в аттаче.

                                                                                                                                                                PPS: а если использовать ScanLine[] и напрямую работать с данными, то скорость увеличится еще в несколько раз.
                                                                                                                                                                Прикреплённый файлПрикреплённый файлUBitmap.zip (0.95 Кбайт, скачиваний: 1135)
                                                                                                                                                                  Цитата Uhri @
                                                                                                                                                                  Столкнулся я с TBitmap и выяснил, что TBitmap->Canvas->Pixels[][] работает неимоверно медленно... Нашел параметр TBitmap::ScanLine[] - работает очень быстро, но не всегда удобно разбираться где там Red, Green, Blue и собирать это всё в пиксел и т.п. Поэтому сделал свой класс: обертку над TBitmap.

                                                                                                                                                                  :wacko:
                                                                                                                                                                  Вы видимо ничего не слышали о TRGBTriple, TRGBQuad.
                                                                                                                                                                  Зачем велосипед изобретать?
                                                                                                                                                                    Chow, в принципе, если надо выбирать между экзотикой (а надо ещё и знать, что таковая существует) и чем-то самодельным, понятным и позволяющим решить поставленную задачу, я всегда выбираю второе.
                                                                                                                                                                      Цитата Bladerunner @
                                                                                                                                                                      Chow, в принципе, если надо выбирать между экзотикой (а надо ещё и знать, что таковая существует) и чем-то самодельным, понятным и позволяющим решить поставленную задачу, я всегда выбираю второе.

                                                                                                                                                                      А к чему это?? Просто так, что-бы что-то сказать?
                                                                                                                                                                        Chow думаю Bladerunner прав, ибо про всё знать не возможно. Тебе спасибо, что проинформировал, надо будет посмотреть.
                                                                                                                                                                          Chow, задаю тебе тот же самый вопрос :whistle:
                                                                                                                                                                            Цитата Bladerunner @
                                                                                                                                                                            Chow, задаю тебе тот же самый вопро

                                                                                                                                                                            Не вижу вопроса. (по крайней мере вопросительного знака)
                                                                                                                                                                              Думаю неплохо было бы сделать тут что-то типа библиотечки (хранилища) где можно хранить готовые, отлаженные функции. Ведь по прошествию времени вопросы повторяются (получить IP адрес, поиск строки в файле, сортировка массивов.....). А так всем удобно, и по несколько раз на один и тот же вопрос отвечать не надо, и кому что надо предварительно там поищет не задавая лишних вопросов.
                                                                                                                                                                                Цитата sten_11 @
                                                                                                                                                                                Думаю неплохо было бы сделать тут что-то типа библиотечки (хранилища) где можно хранить готовые, отлаженные функции. Ведь по прошествию времени вопросы повторяются (получить IP адрес, поиск строки в файле, сортировка массивов.....). А так всем удобно, и по несколько раз на один и тот же вопрос отвечать не надо, и кому что надо предварительно там поищет не задавая лишних вопросов.
                                                                                                                                                                                Ну так это просто дублирование FAQ.
                                                                                                                                                                                  Цитата sten_11
                                                                                                                                                                                  ... и кому что надо предварительно там поищет не задавая лишних вопросов...
                                                                                                                                                                                  Тока почему-то народ сначала вопросы задает, и только после того как его "пошлют" смотрит FAQ.
                                                                                                                                                                                    В FAQ не хватает информации, как сделать цвет фона формы прозрачым.
                                                                                                                                                                                    (Похожий на стил Vista)
                                                                                                                                                                                    Сообщение отредактировано: Maycal -
                                                                                                                                                                                      Было бы хорошо, если бы в FAQ был еще help по DSPACK. Уже который день роюсь в нете, более или менее приличные примеры нашел тока на Delphi...(ито, ввиду того, что эти примеры находятся в самом DSPACK).
                                                                                                                                                                                      Сообщение отредактировано: seska -
                                                                                                                                                                                        Цитата trainer @
                                                                                                                                                                                        С рабочим вариантом можно ознакомиться здесь. За скорость не ручаюсь. :)


                                                                                                                                                                                        Ссылка на рабочий вариант не работает :) просмотрел весь топик, свежих не нашел.

                                                                                                                                                                                        Вопрос: кто-нибудь может огласить, что из того, что "к внесению в FAQ" уже сделано?
                                                                                                                                                                                        Может, я хочу помочь наполнению, но "рабочий вариант" не видно, и не видно, что еще осталось добавить.

                                                                                                                                                                                        Мог бы помочь с 3D:OpenGL/DirectX for beginners, WinAPI немного.
                                                                                                                                                                                        С удовольствием расскажу с примерами о преимуществах stdlib (iterators,allocator,containers).
                                                                                                                                                                                        Жду новостей с фронта ;)
                                                                                                                                                                                          Нехватает описание по компоненту SynEdit. Ну или хотябы перевод на C++ демо примеров из пакета с SynEdit
                                                                                                                                                                                            Неплохо бы в FAQ сделать полное разъяснение компонента TRichEdit, он на самом деле не сожный, а вопросов по нему полным полно....
                                                                                                                                                                                              Хочу в FAQ добавить и порекомендовать из личного опыта прекрасную технологию:
                                                                                                                                                                                              Если вы хотите быстро и без напряжений создавать высококачественные WEB ориентированные приложения с опорой на ваши базы данных и при этом не погружаться в тонкости html, javascript, ASP и т.п. то воспользуйтесь готовой технологией IntraWEB которая идет в стандартной поставке С++ Builder 2007 и 2009.
                                                                                                                                                                                              WEB ориентированное приложение создается на языке С++ в С++ Builder 2007 и 2009.
                                                                                                                                                                                              Очень удобно реализовано развертывание вашего готового сервиса IntraWEB на сервере. Для этого достаточно переместить на сервер ваш готовый exe файл и запустить его.
                                                                                                                                                                                              Ваш EXE слушает установленный вами порт и генерирует html страницы.
                                                                                                                                                                                              EXE также можно одной командой, при желании, превратить в службу Windows.
                                                                                                                                                                                              Все очень удобно и просто. Информация по теме:
                                                                                                                                                                                              http://www.atozed.com/IntraWeb/Demos/Screenshots/index.ru.aspx
                                                                                                                                                                                              http://www.xakep.ru/post/29995/default.asp
                                                                                                                                                                                              http://www.atozed.com/IntraWeb/Education/Articles/Russian.ru.aspx
                                                                                                                                                                                              http://research.pdmagic.com/iw/html/index.html?4_3_the_secrets_of_the_server_controller.cfm
                                                                                                                                                                                              ftp://ftp.sybex.com/4201/4201ch21.pdf
                                                                                                                                                                                              http://forums3.atozed.com/IntraWeb.aspx

                                                                                                                                                                                              Сообщения были разделены в тему "IntraWeb в Borland C++ Builder"
                                                                                                                                                                                              Сообщение отредактировано: Kitty -
                                                                                                                                                                                                Что-то я немного почитал FAQ, и ни одного вопроса, на которые я натыкался, где есть ссылка наружу - она не открылась, было что-то типа или 404 иои "Извините, но наш сайт ещё не создан".

                                                                                                                                                                                                Помню точно про потоки было остальные вопросы - не помню, я уже закрыл окна

                                                                                                                                                                                                А ещё хотелось бы в FAQ видеть ответ на вопрос как в билдере с регулярными выражениями работать.
                                                                                                                                                                                                Сообщение отредактировано: brother79 -
                                                                                                                                                                                                  Цитата brother79 @
                                                                                                                                                                                                  А ещё хотелось бы в FAQ видеть ответ на вопрос как в билдере с регулярными выражениями работать.


                                                                                                                                                                                                  А почему бы не воспользоваться включенной в IDE библиотекой boost? В частности boost::regex ?

                                                                                                                                                                                                  http://www.boost.org/
                                                                                                                                                                                                    Цитата Kitty @
                                                                                                                                                                                                    А почему бы не воспользоваться включенной в IDE библиотекой boost?

                                                                                                                                                                                                    чего-чего? в какой это версии билдера в него boost включен?
                                                                                                                                                                                                      Цитата miksayer @
                                                                                                                                                                                                      чего-чего? в какой это версии билдера в него boost включен?


                                                                                                                                                                                                      Посещайте почаще официальный сайт производителя и все ваши вопросы отпадут сами собой: http://www.codegear.com/products/radstudio/whats-new/

                                                                                                                                                                                                      boost::regex

                                                                                                                                                                                                      Take advantage of amazing new libraries with TR1 and Boost


                                                                                                                                                                                                      http://boost.org/
                                                                                                                                                                                                      Сообщение отредактировано: Kitty -
                                                                                                                                                                                                        не знаю предлагали или нет , но неплохо было бы найти( или тем кто шарит самим сделать) сборник видео(ролики как на ютюбе) по испльзованию indy компонентов. Не так что положил на форму и сделал 1 действие,а более глубокий анализ.

                                                                                                                                                                                                        ps видео смотреть быстрее получается ,чем книги читать. И быстрее и понятнее.
                                                                                                                                                                                                          Не хватает отдельного раздела на форуме, где можно выкладвать ссылки на новости, обновления, web-семинары, советы, статьи, уроки и т.д., найденные в интернете для С++ Builder.

                                                                                                                                                                                                          В разделе Делфи, такой раздел есть: Новости CodeGear, а у нас нет подобного типа: Новости Embarcadero :unsure:
                                                                                                                                                                                                          Сообщение отредактировано: Kitty -
                                                                                                                                                                                                            Было бы отлично найти в FAQ про создание COM клиента к стороннему приложению в Билдере.
                                                                                                                                                                                                            Пошаговое руководство, в Билдере ведь свои методы работы, насколько я понял, отличные от вижуал студии.
                                                                                                                                                                                                            Много чего перерыл, но до сих пор не разобрался.
                                                                                                                                                                                                              WinAPI везде одинаковый (CoInitialize, CoCreateInstance(Ex), CoGetClassObject)
                                                                                                                                                                                                                нужен нормальный фак по тому как сделать поддержку плагинов в проге.
                                                                                                                                                                                                                Чтобы полный ноль с первого раза прочитал и понял все. А не расшифровывал чье-то хамство или невежество.
                                                                                                                                                                                                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                                                                                                                                                0 пользователей:


                                                                                                                                                                                                                Рейтинг@Mail.ru
                                                                                                                                                                                                                [ Script execution time: 0,1698 ]   [ 17 queries used ]   [ Generated: 28.03.24, 18:25 GMT ]