SoftHelp - ваш помощник в мире софта!                                                                             Обновлен

SoftHelp - ваш помощник в мире софта!Здесь могла быть ваша реклама!

Главная | Новости | Архив | Глоссарий | Советы | C++ Builder | FAQ | Download | Guestbook | Форум | Ссылки | About
ГЛОССАРИЙ
A|B|C|D|E|F
G|H|I|J|K|L|M|N
O|P|Q|R|S|T|U
V|W|X|Y|Z|0-9
FEEDBACK
   Форум
   Гостевая книга
   Почтовая форма
   Электронная почта
РАССЫЛКА
Новости сайта SoftHelp
ПОИСК
НА
РЕКЛАМА





СЧЕТЧИКИ



be number one
Часто задаваемые вопросы по C++ Builder.

Tip#1
Интересная и опасная особенность: в массиве char элементы нумеруются с 0, а в типе String с 1.

Tip#2
При переносе программ с системы на систему обычно возникает множество проблем. Одна из наиболее заметных - изменение разрешения экрана. Если программа создавалась при одном разрешении, а исполняется при другом, то размер ее окна, букв, кнопок и т.п. будет неправильный. Этого можно частично избежать, вставив следующий код в событие OnCreate необходимой формы:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
//эта структура будет содержать разрешение экрана на системе
struct res{float x,y;}res;

/*здесь будет хранится коэфицент, показывающий во сколько раз
текущее разрешение больше исходного*/
struct factor{float x,y;}factor;

//считать текущее разрешение
res.x=Screen->Width;
res.y=Screen->Height;

//вычислить коэфицент. Если программа пишется при другом разрешении,
//то нужно только подставить его вместо 1024 и 768
factor.x=1024/res.x;
factor.y=768/res.y;

int cc=ControlCount-1; //количество объектов на форме
while(cc!=-1) //для каждого объекта выполняем следующие операции
{
Controls[cc]->Left/=factor.x; //правильно располагаем по горизонтали
Controls[cc]->Top/=factor.y; //…по вертикали
Controls[cc]->Width/=factor.x; //растягиваем до нужной ширины
Controls[cc]->Height/=factor.y; //…высоты
cc--;
}

//теперь растягиваем саму форму
Form1->Width/=factor.x;
Form1->Height/=factor.y;

//изменяем размер шрифтов; не забудьте поставить свойство формы Scaled=true
Form1->PixelsPerInch=Screen->PixelsPerInch;
}
Все структуры здесь используются для понятности, в реальном коде их выгоднее заменить на вектора.


 Все вопросы и предложения шлите ведущему раздела Chingachgook-у



Главная || Новости || Архив || Глоссарий || Советы || C++ Builder || FAQ || Download || Гостевая книга || Форум || Ссылки || About || Пишите нам
Хостинг от uCoz