Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» FAQ по Borland C++ Builder

Автор: Sprehenbreher
Дата сообщения: 15.04.2005 21:47
без всякого сервера. просто, чтобы можно было сохранять и извлекать русский текст в таблицу. например, в таблицу фокс про. компоненты стандартные
Автор: Kott
Дата сообщения: 10.05.2005 15:23
В нужном тебе драйвере в BDE установить необходимо в LANGDRIVER русскую кодировку (какую именно - зависит от типа базы которую ты грузить). Кстати, в дизигнере все равно карябица будет...
Автор: spike
Дата сообщения: 25.05.2005 09:36
как выделить цветом или перевести курсор и выделить текст select в Memo ?
Автор: Dim2004
Дата сообщения: 25.05.2005 10:49

Цитата:
как выделить цветом

В Memo - никак.


Цитата:
или перевести курсор и выделить текст select в Memo ?

SelStart, SelLength.
Автор: modulo
Дата сообщения: 11.06.2005 17:10
у меня два вопроса:
1. как сохранить шрифт, используемый в программе, чтобы он так же отображался на других машинах
2. как сделать чтобы прога не отображалась на панели задач, а была либо на панеле где часы (забыл как эта херь называется), или вообще нигде
Автор: flamy
Дата сообщения: 12.06.2005 07:08
У меня есть очень глупый вопрос по-поводу эдитора в борланде.
как его заставить показывать номер строки напротив самих строк. Я знаю что номер строки, соответствующей положению курсора показвывается внизу, мне надо что бы это показывалось на против соответствующей строки, это мелочь - но мне она очень нада.
Автор: mr_eoi
Дата сообщения: 12.06.2005 07:32
spike
10:36 25-05-2005
Цитата:
как выделить цветом или перевести курсор и выделить текст select в Memo ?

Если есть возможность, используй TRichEdit и сообщение EM_SETCHARFORMAT.
Автор: ShIvADeSt
Дата сообщения: 12.06.2005 12:23
modulo

Цитата:
1. как сохранить шрифт, используемый в программе, чтобы он так же отображался на других машинах
2. как сделать чтобы прога не отображалась на панели задач, а была либо на панеле где часы (забыл как эта херь называется), или вообще нигде

По первому. Реализовать сохранение настроек программы в ини файл, и при переносе программы переносить и его, если же надо сохранение натсроек шрифта во время разработки, то при переносе он и так сохранится.
По второму. Либо самому разобраться с работай Shell_NotifyIcon, либо поставить RxLib и воспользоваться из него компонентой RxTrayIcon (вроде так называется) либо скачать любой компонент для работы с треем, ключевое слово Tray (кстати еще в Билдер 3 был пример работы с треем).
Автор: modulo
Дата сообщения: 13.06.2005 07:54
ShIvADeSt
да настройки-то шрифта остаются, но у другого юзера нет этого шрифта, можно его как-нибудь засейвить в самой программе?
Автор: OdesitVadim
Дата сообщения: 13.06.2005 10:35
modulo
возьми его с своей системы и оставь в папке с проектов. Винда должна найти. Если нет, то прийдётся делать установку шрифта. Засейвить в проге? можна, в ресурси добавить, но доставать оттуда всёравно ручками прийдётся
Автор: greenfox
Дата сообщения: 14.06.2005 10:25
Hi all! у меня несколько ламерских (скорее всего) вопросов.
1. Можно ли как в момент брейка посмотреть значния объявленых мной переменных!? (смотрел в настр-дубугинг-переменные, но там что-то не то пишется...)
2. В программе есть вызов "ShowMessage" (что бы не рисовать свои формы) - можно ли как сказать системе что бы она показывала их не по центру экрана, а по центру родительской формы!?
3. Можно как изменить цвет определённой ячейки (цвет фона) в компоненте TStringGrid!? (ну или хотя бы выделить их не группой, а одиночные в разных участках - дя подсветки неправильных ответов)

заранее спасибо за ответы.
Автор: OdesitVadim
Дата сообщения: 14.06.2005 10:44
greenfox

Цитата:
1. Можно ли как в момент брейка посмотреть значния объявленых мной переменных!? (смотрел в настр-дубугинг-переменные, но там что-то не то пишется...)

Можно, если не отключена отладочная информация. Поищи в настройках проекта

Цитата:
. В программе есть вызов "ShowMessage" (что бы не рисовать свои формы) - можно ли как сказать системе что бы она показывала их не по центру экрана, а по центру родительской формы!?

есть MessageDlgPos. Там и возможностей побольше, и позицию задать можно. По центру? - прийдётся ручками координати сосчитать.

Цитата:
Можно как изменить цвет определённой ячейки (цвет фона) в компоненте TStringGrid!? (ну или хотя бы выделить их не группой, а одиночные в разных участках - дя подсветки неправильных ответов)

Можно. Надо только написать обработчик DrawCell (Кажеться так он называется) Среда к тебе будет обращаться, когда её нужно клеточку отрисовать, а твой обработчик анализируя данные (номер строки столбца передаётся) решаеш что делать. Например добавив строку вида
if (Col==3) StringGrid1->Canvas->Pen->Color = clRed; else StringGrid1->Canvas->Pen->Color = clBlack;
Получиш текст красным шрифтом в третей колонке. (не пробуй строку вставлять напрямую и ругать меня что не работает - я на С каждый день не пишу, возможны маленькие описки. Но идея верная)
Автор: greenfox
Дата сообщения: 14.06.2005 11:20
OdesitVadim
спасибо за помощь, сегодня обязательно гляну.

У меня ещё вопрос, а есть какой тип данных (по мимо char и string там) где бы цифры 1 и 01 различались!? Или только как строки обрабатывать что бы не потерять 0!?
Автор: OdesitVadim
Дата сообщения: 14.06.2005 11:41
greenfox

Цитата:
01
- это не цифра, это число
только строки или массивы символов.
Правда можно сделать структуру, в которой записывать сколько нулей добавить, но как хочеш.
Автор: greenfox
Дата сообщения: 15.06.2005 09:16
OdesitVadim

Цитата:
- это не цифра, это число
только строки или массивы символов.
нет ну понятно, просто написал так... Ясно... бум сравнивать строки...

Мне собственно надо только из TStringGrid сравнить 2 ячейки для этого... пытался обычным методом
Код: strcmp(StringGridErr->Cells[i-1][1], StringGridErr->Cells[i-1][2])
Автор: EZH
Дата сообщения: 15.06.2005 09:30
greenfox
c_str() как раз и приводит AnsiString к char* - принятое в С представление строк с '\0' на конце.
Автор: greenfox
Дата сообщения: 15.06.2005 11:23
EZH
понял, спасибо.
Автор: ad1981
Дата сообщения: 15.06.2005 16:05
как вырубить подсчет Warnings при компиляции?

проблема такова, что я доделываю один очень крупный проект, в котором предыдущие прогеры не задумывались о таких вещах, как Warnings, мне же этим заниматься тоже не в кайф, работает типа и ладно но таким вот образом существует в проге больше 4000 этих самых варнингов, при этом основные временные затраты Билдера уходят именно на подсчет варнингов...
Автор: OdesitVadim
Дата сообщения: 15.06.2005 17:39
ad1981
Каждый варнинг - потенциальная ошибка
Тем более в С. Лучше просмотреть.
А скрывается от глаз просто.
Project - > Options -> вкладка Compiler Mesage.
А там их целый список. Снимаеш галочки напротив тех, которые те глаза музолят.
Также там есть одна галочка, которая снимает все Warnings вместе.

Я обычно пытаюся убрать их. Один раз даже ошибку в алгоритме нашёл
Автор: ad1981
Дата сообщения: 16.06.2005 06:27
OdesitVadim
ну во первых вкладки Compiler Message близко не наблюдается... есть вкладка Compiler с панелькой Warnings, выставление значение None на которой ни к чему не приводит...
Автор: greenfox
Дата сообщения: 20.06.2005 09:56
OdesitVadim

Цитата:
if (Col==3) StringGrid1->Canvas->Pen->Color = clRed; else StringGrid1->Canvas->Pen->Color = clBlack;
посмотрел я этот вариант - к сожалению для типа TStringGrig такое похоже не прокатит Я у него не нашёл таких свойств... это у DrawGrid есть такое...


Ещё хотел спросить:
1. В паблике формы объявляется переменная
Код: public:
int i = 1;
Автор: dan2k5
Дата сообщения: 20.06.2005 20:21

Цитата:
public:
int i = 1;


В классе нельзя инициализировать переменные, ипользуй инициалицию в конструкторе.
Автор: EZH
Дата сообщения: 20.06.2005 20:50
greenfox
Canvas у TStringGrid есть, т.к. она наследник TCustomControl

2. Форма позиционируется только при создании. Твоя дочерняя форма видимо создается один раз, автоматически при запуске приложения. Создавай её динамически.
Автор: ShIvADeSt
Дата сообщения: 21.06.2005 01:05
greenfox

Цитата:
посмотрел я этот вариант - к сожалению для типа TStringGrig такое похоже не прокатит Я у него не нашёл таких свойств... это у DrawGrid есть такое...

Смотри событие OnDrawCell. Сам точно знаю, что будет работать, делал не один раз.
Попробуй (Sender as TDrawGrid) и далее с ним работать. Хотя и напрямую должно работать.
Автор: greenfox
Дата сообщения: 21.06.2005 13:38
dan2k5

Цитата:
В классе нельзя инициализировать переменные, ипользуй инициалицию в конструкторе.
да, странно... я вроде как читал в учебнике дпо С++ что можно... наверно что-то попутал...

EZH

Цитата:
2. Форма позиционируется только при создании. Твоя дочерняя форма видимо создается один раз, автоматически при запуске приложения. Создавай её динамически.
прошу прощения за ламерсикй вопрос - а это как? Насколько я понимаю методом close() она только закрывается, а создаётся при создании всегоприложения (ну по умолчанию, вызываю я её show())!? Впринципе я конечно могу вызывать show() а потом просто мнять координаты окна в зависимости от того где родительская форма расположена - но может можно как попроще...

ShIvADeSt

Цитата:
Смотри событие OnDrawCell. Сам точно знаю, что будет работать, делал не один раз.
да я туда в общем то и пихал {StringGrid1->Canvas->Pen->Color = clRed} но что-то всё равно цвет не менялся... Пороюсь конечно ещё в справке на TCustomControl - может что откопаю...


Автор: EZH
Дата сообщения: 21.06.2005 13:48
greenfox
Значит она у тебя точно создается автоматически. Залезь в свойства проекта - там есть два списка форм - имеющиеся и автоматически создаваемые. Убери нужную форму из автоматических.

Потом в коде главной формы пиши примерно по такому образцу:

Код:
TFrmAbout *frmAbout = new TFrmAbout(this);
try
{
if (frmAbout->ShowModal()==mrOk)
{
// ...
}
}
__finally { delete frmAbout; }
Автор: greenfox
Дата сообщения: 21.06.2005 13:58
EZH
суть метода ясна, но проблема в том, что при уничтожении\создании формы все переключатели на ней автоматом будут установлены в дефолтовое положение (наск я понял) - а у меня программа оттуда некоторые значения берёт (наверно неоптимально\направильно - но вот так вот я накодил ) Так что наверно мне будет проще show() а потом координаты окна править ...
+ ещё вопрос по том методу что ты описал - а если мне надо после нажатия кнопки ОК сначало считать данные с формы а потом её закрыть - это как будет выглядеть!?
Автор: EZH
Дата сообщения: 21.06.2005 14:13
greenfox
Так ты и должен всё считать внути if (...), притом только если нажали OK, а форма удаляется только аж при delete frmAbout, до этого она доступна со всеми своими методами и свойствами.

По поводу считывания с формы - я ж тебе об этом и пишу. Хорошим стилем программирования считается хранить все данные отдельно от представления. Т.е. ты должен создавать свои какие-то структуры/классы, где и будешь хранить все рабочие данные. Перед вызовом формы надо устанавливать все её контролы из этих структур в нужное состояние, затем ShowModal, если юзер нажал OK, тогда считываешь инфу обратно в рабочую структуру, иначе ничего не считываешь.

По началу может показаться заморочено, но на самом деле надо себя приучить к такому и в проектах всё будет четко и понятно, не будет бардака.
Автор: greenfox
Дата сообщения: 21.06.2005 15:03
EZH
что то лыжи не едут
в главной форме пишу
Код:
TFormPrimers *FormPrimers = new TFormPrimers(this);
try {FormPrimers->ShowModal();}
__finally { delete FormPrimers;}
Автор: EZH
Дата сообщения: 21.06.2005 15:43
greenfox
Не надо Close, пиши просто ModalResult = mrOk или у кнопки такое свойство выставь.

Добавлено:
Ошибки в след раз цитируй.

Страницы: 12345678910111213141516171819202122232425262728

Предыдущая тема: ms exchange


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.