Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Borland C++ Builder/Turbo C++ Explorer > Чего не хватает в FAQ?


Автор: trainer 07.01.04, 09:22
Пишите сюда свои пожелания относительно содержания FAQ данного раздела.
Порядок для крупных тем:
а) находим тему;
б) выявляем добровольца, даем ему тему и время на реализацию;
в) публикуем статью в форуме, обсуждаем, правим при необходимости;
г) переносим статью в FAQ;
д) награждаем непричастных и наказываем невиновных :) ;
Мелкие темы объединяются в крупные тематические.


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




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



С рабочим вариантом можно ознакомиться здесь. За скорость не ручаюсь. :)

Автор: PsiHo 27.02.04, 19:26
Похоже это сложный вопрос

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

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

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

1)предлогать ссылку на уже сделаную часть програмы
2)дописать в FAQ там в некоторых местах нехвотает кое чего...

Автор: Plasmorf 28.02.04, 06:56
Не работает ссылка на архив с иконками -((

Автор: PsiHo 07.03.04, 19:57
В последнее время много вопросов про INI сожет знаюшим стоит добавить в FAQ

Автор: lusims 27.03.04, 18:26
Я как-то раньше собирался писать про сокеты...но OleGG сказал, что у него почти всё готово...но я как-то не вижу этого в Факе...может еще надо?

Автор: trainer 27.03.04, 19:14
Цитата
lusims, 27.03.04, 21:26
Я как-то раньше собирался писать про сокеты...но OleGG сказал, что у него почти всё готово...но я как-то не вижу этого в Факе...может еще надо?
Пиши.

Автор: Bas 08.04.04, 11:49
Работаем с Word,Excele, или это повторение других разделов этого форума?

Автор: sector 09.04.04, 15:28
Про shared-секции в Билдере хотелось бы наконец разобраться. Очень больной вопрос, перерыл здесь всё, а там вопросы без ответов.
Так есть ли альтернатива #pragma data_seg(.my_seg) в Билдере? :wall:

Автор: Bas 13.04.04, 13:31
Может и не в этом месте делаю предложение-
Переименовать FAQ в:
1. Ответы на вопросы (FAQ)
У Нас Русский сайт.

Автор: PsiHo 13.04.04, 17:58
люди что в последнее время насто встречается вопрос об
компонетнте StringGrid :D :D :D

делаем выводы...

Автор: KAV 14.04.04, 06:24
PsiHo, а ты прав :). Сделаем. :D

Автор: PsiHo 15.04.04, 07:50
нудык может сразу на AdvStringGrid

ась ... :lol:

Автор: trainer 15.04.04, 08:05
Цитата
PsiHo, 15.04.04, 10:50
нудык может сразу на AdvStringGrid
Думаю, что лучше TStringGrid, а TAdvStringGrid - в довесок отдельной темой.

Автор: PsiHo 15.04.04, 11:34
:D

Автор: Seva 16.04.04, 05:36
Кроме того, было бы неплохо объяснить людям разницу между TStringGrid и TDrawGrid и как этим воспользоваться.

Автор: trainer 16.04.04, 06:15
Bas написал статью Работаем с Word .
Милости просим к обсуждению. Пожелания, замечания...

Автор: DIMATEUS 15.06.04, 01:19
Я не многое умею в Билдере но про INI написать смогу.
Хочется внести свой вклад.

Автор: Lightwit 20.06.04, 13:53
Добавте в FAQ как можно более подробное руководство по DirectX, 3D,
вообшем расскажите как работать с 3D - ешной графикой и как делать игры :-)
Вот туту есть примерно что то по этому классное
http://www.vcl.ru/html/cb/vc32_3d/1.htm

Автор: myaut 25.07.04, 05:03
Надо бы чего-нибудь по OpenGL создать, народ просит! Я бы с радостью, но сейчас на мне документация и серия статей, так что выбираем автора.

Автор: GIZMO 03.08.04, 08:31
Цитата 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...

Автор: OlegGG 03.08.04, 21:12
Цитата
myaut, 25.07.04, 09:03
Надо бы чего-нибудь по OpenGL создать, народ просит! Я бы с радостью, но сейчас на мне документация и серия статей, так что выбираем автора.


Могу дать пару примеров, написанных для школьной училки (я её учил работать с OGL)..
Примеры написаны без коментов и через....

Автор: PsiHo 04.08.04, 17:20
что в последнее время всем понабелись MDI
а подробно FAQ я невидел (он есть? если есть то где, если нет то надо сделать!!!:whistle: )

Автор: oldm 01.09.04, 16:58
Ссылка в ответе на вопрос "Как узнать загруженность процессора под WinNT?" - "мёртвая".
А вопрос этот сейчас очень интересует. Может стоит ссылку поправить?

Автор: Olx 19.10.04, 06:22
Неплохо бы организовать поиск по ключевым словам.

Автор: dr.Livsi 26.11.04, 22:32
Добавьте пожайлуста работу с базами через готовые компоненты!

Автор: Bas 27.11.04, 12:09
Цитата dr.Livsi, 27.11.04, 00:32
Добавьте пожайлуста работу с базами через готовые компоненты!

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

Автор: Kamenev_D 24.02.05, 17:03
Цитата Bas @
Создать список часто задаваемых вопросов (на многие смогу ответить).


Было бы неплохо! Только кто возметься создавать такой список?

Автор: DrMort 04.03.05, 04:24
В текущем факе ошибка. В ответе на вопрос "Как не допустить повторения запуска программы" есть такой код:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    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();
            }


в строке

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Atom = GlobalAddAtom(AtomName);


однозначно не хватает .c_str()

Автор: Мяут 04.03.05, 20:33
Цитата
Как работать с gif-форматом?


Вторая ссылка в этой статье битая :(

Автор: Epifun 21.03.05, 12:02
Сорри... но кажется вот тут - http://www.sources.ru/builder/faq/051.html
битая ссылка.. :huh:

Автор: lexa-d 24.03.05, 01:37
про ftp доступ надо в FAQ.
Что-нибудь типа "Как изменить *.txt по используя протокол ftp"
:unsure:

Автор: Eagle 20.05.05, 09:28
PsiHo предложил Использование DLL. А было бы гораздо лучше, я думаю, написать тему - Написание и использование DLL

Автор: Sysdba 30.06.05, 10:09
Предлагаю включить Работа с компонентами Ehlib

Автор: laifik 06.07.05, 11:06
У меня накопился неплохой материал по созданию динамического TChart. На форуме попросили его оформить. Как это сделать?
И как добавить свое (не свое) изображение в сообщение под ником? Смотрю, уже все что-то понавставляли.

Автор: trainer 06.07.05, 11:49
Цитата laifik @
У меня накопился неплохой материал по созданию динамического TChart. На форуме попросили его оформить. Как это сделать?
http://bcb-faq.pochta.ru/121.html Если есть что добавить - ждем.

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

Автор: laifik 07.07.05, 05:29
Цитата trainer @
Если есть что добавить - ждем.

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

Автор: trainer 07.07.05, 08:48
Оформить в таком же стиле "вопрос-ответ", отправить мне.

Автор: laifik 03.08.05, 09:57
Цитата laifik @
Цитата trainer @
Если есть что добавить - ждем.

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

Не знаю, правильно ли я Вас поняла, но попыталась текст расположить "вопрос-ответ", где это возможно.
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Как создать динамический 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;

Автор: PsiHo 09.09.05, 07:14
Предложение, в последнее время возникает много вопросов по OpenDialog
может надо уже добавить в фак??? :whistle:

Автор: Шурик П. 29.09.05, 13:11
А если не совсем согласен со статьёй "Как сделать, чтобы в TEdit можно было вводить только числа?" ?

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

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


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

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

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

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    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 ;
        }
    }
    //---------------------------------------------------------------------------


Тогда вроде бы ошибок быть не должно. Но это уже скорее подходит для компонента.

Автор: Grif666 19.10.05, 16:50
Было бы не плохо узнать как выглядят
наиболее важные функции Delphi на BCB <_<

Автор: miksayer 20.10.05, 08:35
Цитата Grif666 @
Было бы не плохо узнать как выглядят
наиболее важные функции Delphi на BCB <_<

имхо большинство функций выглядят одинаково(если я тебя правильно понял)

Автор: In line 10.12.05, 12:05
Мне кажется архивного сжатие

Автор: Dark Sup 12.12.05, 11:59
Про ftp вопросы вроде стали часто появляться, а в FAQ об этом ничего не видно.

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

Автор: pms 25.01.06, 10:03
Мне кажется нужно было бы включить в фак инфо по подключению сторонних компонентов.

Автор: Uhri 31.01.06, 23:02
В раздел: автор OlegGG
Цитата
Выполнение действий при наведении курсора на компонент

Стоит добавить описание как сделать например аналогию в 5 билдере, потому как не всё ПО пишется на шестом... а в пятом таких событий как OnMouseEnter & OnMouseLeave нет.
Вот пример:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    //---------------------------------------------------------------------------
    //=====Хедер
    //---------------------------------------------------------------------------
    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; //эта строка в деструкторе формы
    //---------------------------------------------------------------------------

Вообщем например так...

Автор: PsiHo 30.05.06, 19:03
а почему в faq нет раздела печать ? :whistle:

Автор: Seva 31.05.06, 05:06
Цитата PsiHo @
а почему в faq нет раздела печать ?

Займись. :rolleyes:

Автор: PsiHo 31.05.06, 17:08
оригинал .... :D сам ищю

Автор: mad_avenger 20.06.06, 13:47
В факе нет ветки Работа с 3D графикой! Ой бы туда топиков набралось...

Цитата PsiHo @
ищю

Надо писать "истчщу", но уж никак не "ищю" :lol:

Автор: mad_avenger 23.07.06, 00:53
user posted image Вопрос: Как убрать мерцание при перемешении/изменении размеров TImage и других контролов на форме?

Ответ: Добавить в конструктор формы
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    DoubleBuffered = true;


Этот вопрос достоин быть в FAQ

Автор: kopilov 16.08.06, 18:35
Какие свойства и методы имеет Application->***, и как с ними работать?

Автор: bigscorp 09.11.06, 06:08
я думаю что про сеть ОЧЕНЬ мало информации, в частности библиотека iphlpapi.dll, хотя для сетевиков она ой как нужна

Автор: VitasDeWind 27.11.06, 07:55
РАБОТА С ПОРТАМИ - COM-порт(RS-232), LPT,... ну пока и хватит :D К примеру выбрать путь: API или какой-нибудь достойный компонент... и накатать. И в общем сделать обзор компонентов по работе с портами...

Автор: Rid 14.12.06, 12:03
нету дружественного описания создания многопоточного сервера
обычный вариант нет проблем и информации куча и достаточно прозрачные свойства стандартных компонент Tserversocket..

многопоточный вариант же темный лес...

Автор: _Gagarin_ 31.12.06, 12:38
Словарь терминов С++, Builder'a и форума.

Автор: Uhri 04.01.07, 13:08
Вопрос: Как задать поля отступа (Margins) у TRichEdit для печати?
Ответ: Использовать TRichEdit->PageRect
Пример:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    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);
    }

Автор: gurik 02.02.07, 14:45
Вопрос: это только я вижу что
Цитата
Последнее обновление: 14.02.2004

или fag действительно не обновляется?

Автор: neyod 07.02.07, 15:20
Здрасте, мне у ФАКю нехватаетфункцый WinAPI , просто я щас етим занимаюся приходится искать по нету :(

Автор: alexander.stoyan 07.02.07, 15:23
Цитата neyod @
Здрасте, мне у ФАКю нехватаетфункцый WinAPI , просто я щас етим занимаюся приходится искать по нету

для этого есть МСДН.
просто трудновато в ФАК вместить несколько тыщщ описаний с примерами ф-ций WinAPI ;)

Автор: neyod 07.02.07, 15:38
Алекс а можеш пожалуйста дать ссилочку на АПИ МСДН именно чтобы там много было етих функцый (Download)...

Автор: alexander.stoyan 07.02.07, 15:40
Цитата neyod @
Алекс а можеш пожалуйста дать ссилочку на АПИ МСДН именно чтобы там много было етих функцый (Download)...

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

Автор: neyod 07.02.07, 15:43
Multimedia & System

Автор: alexander.stoyan 07.02.07, 15:48
Цитата neyod @
Multimedia & System

А точне, плз.. Работа со звуком?

Автор: neyod 07.02.07, 15:53
Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.

Автор: alexander.stoyan 07.02.07, 15:56
Multimedia Functions

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

? не понял. Оригинальные API ф-ции ???

Автор: neyod 07.02.07, 15:57
Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.

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

Автор: alexander.stoyan 07.02.07, 16:01
Цитата neyod @
Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.

:lool: :lool: :lool:

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

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

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

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

о по окна ф-ции тут

Автор: neyod 07.02.07, 16:07
Не совсем то и смешно. Просто ти когда нибуть видел формы типа ВинАмпа или еще кокой то проги где окна не обычные квадратики с Баттонами а окна действительно реально красивые :D

Автор: alexander.stoyan 07.02.07, 16:12
такие кнопки являются самыми обычными, просто на них натянута картинка.

но для этих вопросов создавай отдельную тему в соответствующем форуме, т.к. тематика не соответствует теме темы :)... модераторы по голове не погладят :)

Автор: neyod 07.02.07, 16:13
Вот те! Ты случайно не знаеш где можно скачать ети Функцыи в одном файле?

Автор: alexander.stoyan 07.02.07, 16:27
нет

Автор: neyod 07.02.07, 16:31
:( Жаль... Ну че пойду где то еще поищу! :no:

Автор: kwwsoft 08.02.07, 08:59
Виндовый SDK

Автор: Smile100 13.02.07, 11:13
по поводу winAPI. нашел классную программку - API-Guide 3.7
отличная программка, где описано множество функций API с примерами (правда по аглицки).
токма не помню где. могу выложить, тока не знаю как. :rolleyes:

Автор: Uhri 28.02.07, 14:40
Частенько на форуме подымается вопрос: "Как импортировать свой класс из DLL?".

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

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

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

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

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    //есть некий класс 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: удачи

Автор: trainer 01.03.07, 08:28
Dll FAQ

Автор: Swindler 12.04.07, 07:22
ссылка не работает.

Автор: Uhri 07.06.07, 09:57
Столкнулся я с TBitmap и выяснил, что TBitmap->Canvas->Pixels[][] работает неимоверно медленно... Нашел параметр TBitmap::ScanLine[] - работает очень быстро, но не всегда удобно разбираться где там Red, Green, Blue и собирать это всё в пиксел и т.п. Поэтому сделал свой класс: обертку над TBitmap.
Эксперимент, например нам нужно картинку из цветной сделать черно-белой, размеры картинки 2816x2112:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
        //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 ОЗУ)
С моим классом оберкой:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
        //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[] и напрямую работать с данными, то скорость увеличится еще в несколько раз.

Автор: Chow 07.06.07, 11:38
Цитата Uhri @
Столкнулся я с TBitmap и выяснил, что TBitmap->Canvas->Pixels[][] работает неимоверно медленно... Нашел параметр TBitmap::ScanLine[] - работает очень быстро, но не всегда удобно разбираться где там Red, Green, Blue и собирать это всё в пиксел и т.п. Поэтому сделал свой класс: обертку над TBitmap.

:wacko:
Вы видимо ничего не слышали о TRGBTriple, TRGBQuad.
Зачем велосипед изобретать?

Автор: Bladerunner 07.06.07, 11:47
Chow, в принципе, если надо выбирать между экзотикой (а надо ещё и знать, что таковая существует) и чем-то самодельным, понятным и позволяющим решить поставленную задачу, я всегда выбираю второе.

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

А к чему это?? Просто так, что-бы что-то сказать?

Автор: Uhri 07.06.07, 15:41
Chow думаю Bladerunner прав, ибо про всё знать не возможно. Тебе спасибо, что проинформировал, надо будет посмотреть.

Автор: Bladerunner 08.06.07, 06:45
Chow, задаю тебе тот же самый вопрос :whistle:

Автор: Chow 08.06.07, 07:44
Цитата Bladerunner @
Chow, задаю тебе тот же самый вопро

Не вижу вопроса. (по крайней мере вопросительного знака)

Автор: sten_11 29.08.07, 10:05
Думаю неплохо было бы сделать тут что-то типа библиотечки (хранилища) где можно хранить готовые, отлаженные функции. Ведь по прошествию времени вопросы повторяются (получить IP адрес, поиск строки в файле, сортировка массивов.....). А так всем удобно, и по несколько раз на один и тот же вопрос отвечать не надо, и кому что надо предварительно там поищет не задавая лишних вопросов.

Автор: Adil 30.08.07, 07:29
Цитата sten_11 @
Думаю неплохо было бы сделать тут что-то типа библиотечки (хранилища) где можно хранить готовые, отлаженные функции. Ведь по прошествию времени вопросы повторяются (получить IP адрес, поиск строки в файле, сортировка массивов.....). А так всем удобно, и по несколько раз на один и тот же вопрос отвечать не надо, и кому что надо предварительно там поищет не задавая лишних вопросов.
Ну так это просто дублирование FAQ.

Автор: Uhri 30.08.07, 10:22
Цитата sten_11
... и кому что надо предварительно там поищет не задавая лишних вопросов...
Тока почему-то народ сначала вопросы задает, и только после того как его "пошлют" смотрит FAQ.

Автор: Maycal 30.10.07, 13:40
В FAQ не хватает информации, как сделать цвет фона формы прозрачым.
(Похожий на стил Vista)

Автор: seska 13.05.08, 08:08
Было бы хорошо, если бы в FAQ был еще help по DSPACK. Уже который день роюсь в нете, более или менее приличные примеры нашел тока на Delphi...(ито, ввиду того, что эти примеры находятся в самом DSPACK).

Автор: mapron 07.06.08, 02:12
Цитата trainer @
С рабочим вариантом можно ознакомиться здесь. За скорость не ручаюсь. :)


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

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

Мог бы помочь с 3D:OpenGL/DirectX for beginners, WinAPI немного.
С удовольствием расскажу с примерами о преимуществах stdlib (iterators,allocator,containers).
Жду новостей с фронта ;)

Автор: S.V 06.07.08, 11:28
Нехватает описание по компоненту SynEdit. Ну или хотябы перевод на C++ демо примеров из пакета с SynEdit

Автор: dufifa 10.11.08, 15:52
Неплохо бы в FAQ сделать полное разъяснение компонента TRichEdit, он на самом деле не сожный, а вопросов по нему полным полно....

Автор: Kitty 12.05.09, 18:08
Хочу в 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"

Автор: brother79 28.05.09, 07:41
Что-то я немного почитал FAQ, и ни одного вопроса, на которые я натыкался, где есть ссылка наружу - она не открылась, было что-то типа или 404 иои "Извините, но наш сайт ещё не создан".

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

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

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


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

http://www.boost.org/

Автор: miksayer 27.06.09, 19:18
Цитата Kitty @
А почему бы не воспользоваться включенной в IDE библиотекой boost?

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

Автор: Kitty 28.06.09, 14:15
Цитата 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/

Автор: gen.izh 26.01.10, 07:44
не знаю предлагали или нет , но неплохо было бы найти( или тем кто шарит самим сделать) сборник видео(ролики как на ютюбе) по испльзованию indy компонентов. Не так что положил на форму и сделал 1 действие,а более глубокий анализ.

ps видео смотреть быстрее получается ,чем книги читать. И быстрее и понятнее.

Автор: Kitty 24.02.10, 11:20
Не хватает отдельного раздела на форуме, где можно выкладвать ссылки на новости, обновления, web-семинары, советы, статьи, уроки и т.д., найденные в интернете для С++ Builder.

В разделе Делфи, такой раздел есть: Новости CodeGear, а у нас нет подобного типа: Новости Embarcadero :unsure:

Автор: secondd 27.11.10, 19:16
Было бы отлично найти в FAQ про создание COM клиента к стороннему приложению в Билдере.
Пошаговое руководство, в Билдере ведь свои методы работы, насколько я понял, отличные от вижуал студии.
Много чего перерыл, но до сих пор не разобрался.

Автор: Kray74 28.11.10, 08:45
WinAPI везде одинаковый (CoInitialize, CoCreateInstance(Ex), CoGetClassObject)

Автор: ёже 17.04.11, 10:07
нужен нормальный фак по тому как сделать поддержку плагинов в проге.
Чтобы полный ноль с первого раза прочитал и понял все. А не расшифровывал чье-то хамство или невежество.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)