Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.42.61] |
|
Сообщ.
#1
,
|
|
|
Пишите сюда свои пожелания относительно содержания FAQ данного раздела.
Порядок для крупных тем: а) находим тему; б) выявляем добровольца, даем ему тему и время на реализацию; в) публикуем статью в форуме, обсуждаем, правим при необходимости; г) переносим статью в FAQ; д) награждаем непричастных и наказываем невиновных ; Мелкие темы объединяются в крупные тематические. Предложенные темы: 1) Использование TChart(предложил OlegGG) 2) Работа с буфером обмена(предложил OlegGG) 3) Сети, сокеты и т.д.(предложил OlegGG) 4) Использование DLL(предложил PsiHo) 5) Архивирование/сжатие стандартными алгоритмами(предложил PsiHo) Предлагать можно не только абсолютно новые темы, но и уже ранее обсуждавшиеся на форуме, но не попавшие в FAQ. Принимаются также пожелания и замечания по структуре FAQ. С рабочим вариантом можно ознакомиться здесь. За скорость не ручаюсь. |
Сообщ.
#2
,
|
|
|
Похоже это сложный вопрос
а почемубы их не предложить Авторам которые уже присали FAQ или кто еще хочет. ато обидно что такие темы проподают. Добавлено в : а насчет педложений: 1)предлогать ссылку на уже сделаную часть програмы 2)дописать в FAQ там в некоторых местах нехвотает кое чего... |
Сообщ.
#3
,
|
|
|
Не работает ссылка на архив с иконками -((
|
Сообщ.
#4
,
|
|
|
В последнее время много вопросов про INI сожет знаюшим стоит добавить в FAQ
|
Сообщ.
#5
,
|
|
|
Я как-то раньше собирался писать про сокеты...но OleGG сказал, что у него почти всё готово...но я как-то не вижу этого в Факе...может еще надо?
|
Сообщ.
#6
,
|
|
|
Цитата Пиши. lusims, 27.03.04, 21:26 Я как-то раньше собирался писать про сокеты...но OleGG сказал, что у него почти всё готово...но я как-то не вижу этого в Факе...может еще надо? |
Сообщ.
#7
,
|
|
|
Работаем с Word,Excele, или это повторение других разделов этого форума?
|
Сообщ.
#8
,
|
|
|
Про shared-секции в Билдере хотелось бы наконец разобраться. Очень больной вопрос, перерыл здесь всё, а там вопросы без ответов.
Так есть ли альтернатива #pragma data_seg(.my_seg) в Билдере? |
Сообщ.
#9
,
|
|
|
Может и не в этом месте делаю предложение-
Переименовать FAQ в: 1. Ответы на вопросы (FAQ) У Нас Русский сайт. |
Сообщ.
#10
,
|
|
|
люди что в последнее время насто встречается вопрос об
компонетнте StringGrid делаем выводы... |
Сообщ.
#11
,
|
|
|
PsiHo, а ты прав . Сделаем.
|
Сообщ.
#12
,
|
|
|
нудык может сразу на AdvStringGrid
ась ... |
Сообщ.
#13
,
|
|
|
Цитата Думаю, что лучше TStringGrid, а TAdvStringGrid - в довесок отдельной темой. PsiHo, 15.04.04, 10:50 нудык может сразу на AdvStringGrid |
Сообщ.
#14
,
|
|
|
|
Сообщ.
#15
,
|
|
|
Кроме того, было бы неплохо объяснить людям разницу между TStringGrid и TDrawGrid и как этим воспользоваться.
|
Сообщ.
#16
,
|
|
|
Bas написал статью Работаем с Word .
Милости просим к обсуждению. Пожелания, замечания... |
Сообщ.
#17
,
|
|
|
Я не многое умею в Билдере но про INI написать смогу.
Хочется внести свой вклад. |
Сообщ.
#18
,
|
|
|
Добавте в FAQ как можно более подробное руководство по DirectX, 3D,
вообшем расскажите как работать с 3D - ешной графикой и как делать игры :-) Вот туту есть примерно что то по этому классное http://www.vcl.ru/html/cb/vc32_3d/1.htm |
Сообщ.
#19
,
|
|
|
Надо бы чего-нибудь по OpenGL создать, народ просит! Я бы с радостью, но сейчас на мне документация и серия статей, так что выбираем автора.
|
Сообщ.
#20
,
|
|
|
Цитата 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... |
Сообщ.
#21
,
|
|
|
Цитата myaut, 25.07.04, 09:03 Надо бы чего-нибудь по OpenGL создать, народ просит! Я бы с радостью, но сейчас на мне документация и серия статей, так что выбираем автора. Могу дать пару примеров, написанных для школьной училки (я её учил работать с OGL).. Примеры написаны без коментов и через.... |
Сообщ.
#22
,
|
|
|
что в последнее время всем понабелись MDI
а подробно FAQ я невидел (он есть? если есть то где, если нет то надо сделать!!! ) |
Сообщ.
#23
,
|
|
|
Ссылка в ответе на вопрос "Как узнать загруженность процессора под WinNT?" - "мёртвая".
А вопрос этот сейчас очень интересует. Может стоит ссылку поправить? |
Сообщ.
#24
,
|
|
|
Неплохо бы организовать поиск по ключевым словам.
|
Сообщ.
#25
,
|
|
|
Добавьте пожайлуста работу с базами через готовые компоненты!
|
Сообщ.
#26
,
|
|
|
Цитата dr.Livsi, 27.11.04, 00:32 Добавьте пожайлуста работу с базами через готовые компоненты! Есть варианты 1.Прочитать FAQ по БД из Delphi (не всегда перевести можно "в лоб", но многое понятно) 2.Переписать этот вариант FAQ на BCB 3.Создать список часто задаваемых вопросов (на многие смогу ответить). |
Сообщ.
#27
,
|
|
|
Цитата Bas @ Создать список часто задаваемых вопросов (на многие смогу ответить). Было бы неплохо! Только кто возметься создавать такой список? |
Сообщ.
#28
,
|
|
|
В текущем факе ошибка. В ответе на вопрос "Как не допустить повторения запуска программы" есть такой код:
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(); } в строке Atom = GlobalAddAtom(AtomName); однозначно не хватает .c_str() |
Сообщ.
#29
,
|
|
|
Цитата Как работать с gif-форматом? Вторая ссылка в этой статье битая |
Сообщ.
#30
,
|
|
|
Сорри... но кажется вот тут - http://www.sources.ru/builder/faq/051.html
битая ссылка.. |
Сообщ.
#31
,
|
|
|
про ftp доступ надо в FAQ.
Что-нибудь типа "Как изменить *.txt по используя протокол ftp" |
Сообщ.
#32
,
|
|
|
PsiHo предложил Использование DLL. А было бы гораздо лучше, я думаю, написать тему - Написание и использование DLL
|
Сообщ.
#33
,
|
|
|
Предлагаю включить Работа с компонентами Ehlib
|
Сообщ.
#34
,
|
|
|
У меня накопился неплохой материал по созданию динамического TChart. На форуме попросили его оформить. Как это сделать?
И как добавить свое (не свое) изображение в сообщение под ником? Смотрю, уже все что-то понавставляли. |
Сообщ.
#35
,
|
|
|
Цитата laifik @ http://bcb-faq.pochta.ru/121.html Если есть что добавить - ждем.У меня накопился неплохой материал по созданию динамического TChart. На форуме попросили его оформить. Как это сделать? Цитата laifik @ Это называется "аватар". Вверху ссылка "Мой профиль", там будет слева ссылка "Настройки аватара" И как добавить свое (не свое) изображение в сообщение под ником? |
Сообщ.
#36
,
|
|
|
Цитата trainer @ Если есть что добавить - ждем. Да, у меня иного рода информация. В основном, задание свойств. Я должна сама как-то это оформить, или просто скинуть код. Тогда, куда? Если оформить сама, то, наверное, со всеми комментариями. И опять же, куда поместить код? |
Сообщ.
#37
,
|
|
|
Оформить в таком же стиле "вопрос-ответ", отправить мне.
|
Сообщ.
#38
,
|
|
|
Цитата laifik @ Цитата trainer @ Если есть что добавить - ждем. Да, у меня иного рода информация. В основном, задание свойств. Не знаю, правильно ли я Вас поняла, но попыталась текст расположить "вопрос-ответ", где это возможно. Как создать динамический 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; |
Сообщ.
#39
,
|
|
|
Предложение, в последнее время возникает много вопросов по OpenDialog
может надо уже добавить в фак??? |
Сообщ.
#40
,
|
|
|
А если не совсем согласен со статьёй "Как сделать, чтобы в TEdit можно было вводить только числа?" ?
Во-первых: такие вещи хорошо бы оформлять в виде компонента Во-вторых: или я чего-то не понимаю, или отрицательное число такой код ввести не даст В-третьих: число типа 1.345E10 - то же не введёшь, буковка E - запрещена. У меня такой вот код имел место быть: try { (((TEdit* )Sender)->Text+AnsiString(Key)).ToDouble(); } catch( ... ) { // Однако пропускаем забой и минус в пустом поле if (!(Key == '-' && ((TEdit* )Sender)->Text=="") && Key != 8) Key = 0; } Хотя, должен признать, и здесь есть некоторая натяжка. Если мы переместили курсор куда либо от последней позиции - может работать некорректно. Поэтому полезно аналогичную проверку засунуть ещё и в OnExit Может быть народ ещё какие ошибки в таком подходе сыщет... Идеально, конечно, было бы добавить поле класса AnsiString TextOld, по событию OnKeyPress закидывать туда проверять текст до нажатия клавиши, в событии OnKeyUp проверять уже сформированный текст и если он не Double - востанавливать Text обратно... Что-нибудь по типу: 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 ; } } //--------------------------------------------------------------------------- Тогда вроде бы ошибок быть не должно. Но это уже скорее подходит для компонента. |
Сообщ.
#41
,
|
|
|
Было бы не плохо узнать как выглядят
наиболее важные функции Delphi на BCB |
Сообщ.
#42
,
|
|
|
Цитата Grif666 @ Было бы не плохо узнать как выглядят наиболее важные функции Delphi на BCB имхо большинство функций выглядят одинаково(если я тебя правильно понял) |
Сообщ.
#43
,
|
|
|
Мне кажется архивного сжатие
|
Сообщ.
#44
,
|
|
|
Про ftp вопросы вроде стали часто появляться, а в FAQ об этом ничего не видно.
Что-нибудь базовое про это черкануть может быть, типа "как подконнектиться, залогиниться, скачать/загрузить файл"... в самом билдерском хелпе этот раздел почему-то слабо освещён, да и в книжках редко об этом поминается... |
Сообщ.
#45
,
|
|
|
Мне кажется нужно было бы включить в фак инфо по подключению сторонних компонентов.
|
Сообщ.
#46
,
|
|
|
В раздел: автор OlegGG
Цитата Выполнение действий при наведении курсора на компонент Стоит добавить описание как сделать например аналогию в 5 билдере, потому как не всё ПО пишется на шестом... а в пятом таких событий как OnMouseEnter & OnMouseLeave нет. Вот пример: //--------------------------------------------------------------------------- //=====Хедер //--------------------------------------------------------------------------- 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; //эта строка в деструкторе формы //--------------------------------------------------------------------------- Вообщем например так... |
Сообщ.
#47
,
|
|
|
а почему в faq нет раздела печать ?
|
Сообщ.
#48
,
|
|
|
Цитата PsiHo @ а почему в faq нет раздела печать ? Займись. |
Сообщ.
#49
,
|
|
|
оригинал .... сам ищю
|
Сообщ.
#50
,
|
|
|
В факе нет ветки Работа с 3D графикой! Ой бы туда топиков набралось...
Цитата PsiHo @ ищю Надо писать "истчщу", но уж никак не "ищю" |
Сообщ.
#51
,
|
|
|
Вопрос: Как убрать мерцание при перемешении/изменении размеров TImage и других контролов на форме?
Ответ: Добавить в конструктор формы DoubleBuffered = true; Этот вопрос достоин быть в FAQ |
Сообщ.
#52
,
|
|
|
Какие свойства и методы имеет Application->***, и как с ними работать?
|
Сообщ.
#53
,
|
|
|
я думаю что про сеть ОЧЕНЬ мало информации, в частности библиотека iphlpapi.dll, хотя для сетевиков она ой как нужна
|
Сообщ.
#54
,
|
|
|
РАБОТА С ПОРТАМИ - COM-порт(RS-232), LPT,... ну пока и хватит К примеру выбрать путь: API или какой-нибудь достойный компонент... и накатать. И в общем сделать обзор компонентов по работе с портами...
|
Сообщ.
#55
,
|
|
|
нету дружественного описания создания многопоточного сервера
обычный вариант нет проблем и информации куча и достаточно прозрачные свойства стандартных компонент Tserversocket.. многопоточный вариант же темный лес... |
Сообщ.
#56
,
|
|
|
Словарь терминов С++, Builder'a и форума.
|
Сообщ.
#57
,
|
|
|
Вопрос: Как задать поля отступа (Margins) у TRichEdit для печати?
Ответ: Использовать TRichEdit->PageRect Пример: 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); } |
Сообщ.
#58
,
|
|
|
Вопрос: это только я вижу что
Цитата Последнее обновление: 14.02.2004 или fag действительно не обновляется? |
Сообщ.
#59
,
|
|
|
Здрасте, мне у ФАКю нехватаетфункцый WinAPI , просто я щас етим занимаюся приходится искать по нету
|
Сообщ.
#60
,
|
|
|
Цитата neyod @ Здрасте, мне у ФАКю нехватаетфункцый WinAPI , просто я щас етим занимаюся приходится искать по нету для этого есть МСДН. просто трудновато в ФАК вместить несколько тыщщ описаний с примерами ф-ций WinAPI |
Сообщ.
#61
,
|
|
|
Алекс а можеш пожалуйста дать ссилочку на АПИ МСДН именно чтобы там много было етих функцый (Download)...
|
Сообщ.
#62
,
|
|
|
Цитата neyod @ Алекс а можеш пожалуйста дать ссилочку на АПИ МСДН именно чтобы там много было етих функцый (Download)... они разбросаны по разделам. что именно интересует? тематика? файлы, синхронизация, окна... |
Сообщ.
#63
,
|
|
|
Multimedia & System
|
Сообщ.
#64
,
|
|
|
Цитата neyod @ Multimedia & System А точне, плз.. Работа со звуком? |
Сообщ.
#65
,
|
|
|
Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.
|
Сообщ.
#66
,
|
|
|
Multimedia Functions
Цитата neyod @ Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал. ? не понял. Оригинальные API ф-ции ??? |
Сообщ.
#67
,
|
|
|
Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал.
Добавлено Нет!! Ну что бы было красиво визуально!!!(в пределах розумного) |
Сообщ.
#68
,
|
|
|
Цитата neyod @ Да можно, а можно и чего-то по разработке "неземных" форм, типа че-то оригинал. извини, но звучит реально смешно. "неземные формы" - это в смысле, различные окна (дырявые, прозрачные, нестандартные всякие)? или что это такое ? Добавлено Цитата neyod @ Нет!! Ну что бы было красиво визуально!!!(в пределах розумного) это уже от дизайнера зависит. о по окна ф-ции тут |
Сообщ.
#69
,
|
|
|
Не совсем то и смешно. Просто ти когда нибуть видел формы типа ВинАмпа или еще кокой то проги где окна не обычные квадратики с Баттонами а окна действительно реально красивые
|
Сообщ.
#70
,
|
|
|
такие кнопки являются самыми обычными, просто на них натянута картинка.
но для этих вопросов создавай отдельную тему в соответствующем форуме, т.к. тематика не соответствует теме темы ... модераторы по голове не погладят |
Сообщ.
#71
,
|
|
|
Вот те! Ты случайно не знаеш где можно скачать ети Функцыи в одном файле?
|
Сообщ.
#72
,
|
|
|
нет
|
Сообщ.
#73
,
|
|
|
Жаль... Ну че пойду где то еще поищу!
|
Сообщ.
#74
,
|
|
|
Сообщ.
#75
,
|
|
|
по поводу winAPI. нашел классную программку - API-Guide 3.7
отличная программка, где описано множество функций API с примерами (правда по аглицки). токма не помню где. могу выложить, тока не знаю как. |
Сообщ.
#76
,
|
|
|
Частенько на форуме подымается вопрос: "Как импортировать свой класс из DLL?".
Решений на самом деле множество, вот несколько известных мне: 1. статическая привязка lib файла к ехе и хедера класса: недостаток, нет динамики, мы не используем функцию LoadLibrary, и соответственно не управляем процессом загрузки библиотеки, компилятор это все за нас встраивает в наше приложение и в случае отсутствия dll приложение просто выдает сообщение об отсутствии dll и не запускается. А если нам это нужно было. Ну например для того, чтобы у одного клиента функциональность программы была больше, а другого меньше (денег меньше заплатил ); 2. динамическая привязка, с загрузкой методов класса вручную: //есть некий класс 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 Кбайт, скачиваний: 1152) |
Сообщ.
#79
,
|
|
|
Столкнулся я с TBitmap и выяснил, что TBitmap->Canvas->Pixels[][] работает неимоверно медленно... Нашел параметр TBitmap::ScanLine[] - работает очень быстро, но не всегда удобно разбираться где там Red, Green, Blue и собирать это всё в пиксел и т.п. Поэтому сделал свой класс: обертку над TBitmap.
Эксперимент, например нам нужно картинку из цветной сделать черно-белой, размеры картинки 2816x2112: //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 ОЗУ) С моим классом оберкой: //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 Кбайт, скачиваний: 1164) |
Сообщ.
#80
,
|
|
|
Цитата Uhri @ Столкнулся я с TBitmap и выяснил, что TBitmap->Canvas->Pixels[][] работает неимоверно медленно... Нашел параметр TBitmap::ScanLine[] - работает очень быстро, но не всегда удобно разбираться где там Red, Green, Blue и собирать это всё в пиксел и т.п. Поэтому сделал свой класс: обертку над TBitmap. Вы видимо ничего не слышали о TRGBTriple, TRGBQuad. Зачем велосипед изобретать? |
Сообщ.
#81
,
|
|
|
Chow, в принципе, если надо выбирать между экзотикой (а надо ещё и знать, что таковая существует) и чем-то самодельным, понятным и позволяющим решить поставленную задачу, я всегда выбираю второе.
|
Сообщ.
#82
,
|
|
|
Цитата Bladerunner @ Chow, в принципе, если надо выбирать между экзотикой (а надо ещё и знать, что таковая существует) и чем-то самодельным, понятным и позволяющим решить поставленную задачу, я всегда выбираю второе. А к чему это?? Просто так, что-бы что-то сказать? |
Сообщ.
#83
,
|
|
|
Chow думаю Bladerunner прав, ибо про всё знать не возможно. Тебе спасибо, что проинформировал, надо будет посмотреть.
|
Сообщ.
#84
,
|
|
|
Chow, задаю тебе тот же самый вопрос
|
Сообщ.
#85
,
|
|
|
Цитата Bladerunner @ Chow, задаю тебе тот же самый вопро Не вижу вопроса. (по крайней мере вопросительного знака) |
Сообщ.
#86
,
|
|
|
Думаю неплохо было бы сделать тут что-то типа библиотечки (хранилища) где можно хранить готовые, отлаженные функции. Ведь по прошествию времени вопросы повторяются (получить IP адрес, поиск строки в файле, сортировка массивов.....). А так всем удобно, и по несколько раз на один и тот же вопрос отвечать не надо, и кому что надо предварительно там поищет не задавая лишних вопросов.
|
Сообщ.
#87
,
|
|
|
Цитата sten_11 @ Ну так это просто дублирование FAQ. Думаю неплохо было бы сделать тут что-то типа библиотечки (хранилища) где можно хранить готовые, отлаженные функции. Ведь по прошествию времени вопросы повторяются (получить IP адрес, поиск строки в файле, сортировка массивов.....). А так всем удобно, и по несколько раз на один и тот же вопрос отвечать не надо, и кому что надо предварительно там поищет не задавая лишних вопросов. |
Сообщ.
#88
,
|
|
|
Цитата sten_11 Тока почему-то народ сначала вопросы задает, и только после того как его "пошлют" смотрит FAQ. ... и кому что надо предварительно там поищет не задавая лишних вопросов... |
Сообщ.
#89
,
|
|
|
В FAQ не хватает информации, как сделать цвет фона формы прозрачым.
(Похожий на стил Vista) |
Сообщ.
#90
,
|
|
|
Было бы хорошо, если бы в FAQ был еще help по DSPACK. Уже который день роюсь в нете, более или менее приличные примеры нашел тока на Delphi...(ито, ввиду того, что эти примеры находятся в самом DSPACK).
|
Сообщ.
#91
,
|
|
|
Цитата trainer @ С рабочим вариантом можно ознакомиться здесь. За скорость не ручаюсь. Ссылка на рабочий вариант не работает просмотрел весь топик, свежих не нашел. Вопрос: кто-нибудь может огласить, что из того, что "к внесению в FAQ" уже сделано? Может, я хочу помочь наполнению, но "рабочий вариант" не видно, и не видно, что еще осталось добавить. Мог бы помочь с 3D:OpenGL/DirectX for beginners, WinAPI немного. С удовольствием расскажу с примерами о преимуществах stdlib (iterators,allocator,containers). Жду новостей с фронта |
Сообщ.
#92
,
|
|
|
Нехватает описание по компоненту SynEdit. Ну или хотябы перевод на C++ демо примеров из пакета с SynEdit
|
Сообщ.
#93
,
|
|
|
Неплохо бы в FAQ сделать полное разъяснение компонента TRichEdit, он на самом деле не сожный, а вопросов по нему полным полно....
|
Сообщ.
#94
,
|
|
|
Хочу в 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" |
Сообщ.
#95
,
|
|
|
Что-то я немного почитал FAQ, и ни одного вопроса, на которые я натыкался, где есть ссылка наружу - она не открылась, было что-то типа или 404 иои "Извините, но наш сайт ещё не создан".
Помню точно про потоки было остальные вопросы - не помню, я уже закрыл окна А ещё хотелось бы в FAQ видеть ответ на вопрос как в билдере с регулярными выражениями работать. |
Сообщ.
#96
,
|
|
|
Цитата brother79 @ А ещё хотелось бы в FAQ видеть ответ на вопрос как в билдере с регулярными выражениями работать. А почему бы не воспользоваться включенной в IDE библиотекой boost? В частности boost::regex ? http://www.boost.org/ |
Сообщ.
#97
,
|
|
|
Цитата Kitty @ А почему бы не воспользоваться включенной в IDE библиотекой boost? чего-чего? в какой это версии билдера в него boost включен? |
Сообщ.
#98
,
|
|
|
Цитата 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/ |
Сообщ.
#99
,
|
|
|
не знаю предлагали или нет , но неплохо было бы найти( или тем кто шарит самим сделать) сборник видео(ролики как на ютюбе) по испльзованию indy компонентов. Не так что положил на форму и сделал 1 действие,а более глубокий анализ.
ps видео смотреть быстрее получается ,чем книги читать. И быстрее и понятнее. |
Сообщ.
#100
,
|
|
|
Не хватает отдельного раздела на форуме, где можно выкладвать ссылки на новости, обновления, web-семинары, советы, статьи, уроки и т.д., найденные в интернете для С++ Builder.
В разделе Делфи, такой раздел есть: Новости CodeGear, а у нас нет подобного типа: Новости Embarcadero :unsure: |
Сообщ.
#101
,
|
|
|
Было бы отлично найти в FAQ про создание COM клиента к стороннему приложению в Билдере.
Пошаговое руководство, в Билдере ведь свои методы работы, насколько я понял, отличные от вижуал студии. Много чего перерыл, но до сих пор не разобрался. |
Сообщ.
#102
,
|
|
|
WinAPI везде одинаковый (CoInitialize, CoCreateInstance(Ex), CoGetClassObject)
|
Сообщ.
#103
,
|
|
|
нужен нормальный фак по тому как сделать поддержку плагинов в проге.
Чтобы полный ноль с первого раза прочитал и понял все. А не расшифровывал чье-то хамство или невежество. |