C++Builder
   Начало   Форум Помощь Войти Регистрация  
Страниц: [1] 2 3 4 5 6 ... 10
 1 
 : 07 Сентябрь 2018, 20:20:29 
Автор leoboec - Последний ответ от leoboec
Добрый день подскажите можно ли и с мощью какого компонента реализовать вот какую задачу:
есть 2 формы. На 1 форме вводится текст в Edit на второй есть Panel на которой Image по размеру они растянуты на форму. и во далее мне надо чтобы текст из Edit с 1 формы попал на вторую. НО текст может состоять из 20-50 символов примерно. Мне надо чтобы шрифт как бы "автоматом" подстраивался под количество букв, чтобы эта срока оставалась одной строкой (без переноса) и чтобы она не вылазила за пределы Image который как фон формы в прицнипе. Реально ли это?! и если да то какими средствами и компонентами?!

 2 
 : 09 Август 2018, 11:05:14 
Автор SilverFish - Последний ответ от SilverFish
RAD Studio August 2018 Roadmap
https://community.embarcadero.com/article/news/16638-rad-studio-august-2018-roadmap

August 2018 Roadmap Commentary from Product Management
https://community.embarcadero.com/blogs/entry/august-2018-roadmap-commentary-from-product-management

 3 
 : 14 Июль 2018, 19:20:53 
Автор Sergey1985 - Последний ответ от Sergey1985
И еще сразу же в дополнении : Зачем в функциях в качестве аргументов использовать не указатели, а указатели на указатели. Это дело вкуса или так работать будет лучше

 4 
 : 14 Июль 2018, 19:13:44 
Автор Sergey1985 - Последний ответ от Sergey1985
Всем доброго времени суток. Имеется кодик
Код
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct Node
{
int d;
Node *next;
Node *prev;
};
//---------------------------------------------------------------------------
Node *first(int d);
void add(Node **pend, int d);
Node *find(Node *const pbeg, int i);
bool remove(Node **pbeg, Node **pend, int key);
Node *insert(Node *const pbeg, int key, int d);
 
Node *pbeg;
Node *pend;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
       : TForm(Owner)
{
}
//---------------------------------------------------------------------------
// &#212;&#238;&#240;&#236;&#232;&#240;&#238;&#226;&#224;&#237;&#232;&#229; &#239;&#229;&#240;&#226;&#238;&#227;&#238; &#253;&#235;&#229;&#236;&#229;&#237;&#242;&#224;
Node *first(int d)
{
Node *pv = new Node;
pv->d = d;
pv->next = 0;
pv->prev = 0;
return pv;
}
 
// &#196;&#238;&#225;&#224;&#226;&#235;&#229;&#237;&#232;&#229; &#226; &#234;&#238;&#237;&#229;&#246; &#241;&#239;&#232;&#241;&#234;&#224;
void add(Node **pend, int d)
{
Node *pv = new Node;
pv->d = d;
pv->next = 0;
pv->prev = *pend;
(*pend)->next = pv;
*pend = pv;
}
 
// &#207;&#238;&#232;&#241;&#234; &#253;&#235;&#229;&#236;&#229;&#237;&#242;&#224; &#239;&#238; &#234;&#235;&#254;&#247;&#243;
Node *find(Node *const pbeg, int d)
{
Node *pv = pbeg;
while (pv)
{
 if (pv->d == d) break;
 pv = pv->next;
}
return pv;
}
 
// &#211;&#228;&#224;&#235;&#229;&#237;&#232;&#229; &#253;&#235;&#229;&#236;&#229;&#237;&#242;&#224;
bool remove (Node **pbeg, Node **pend, int key)
{
if (Node *pkey = find(*pbeg, key))
 {
  if (pkey == *pbeg)
   {
     *pbeg = (*pbeg)->next;
     (*pbeg)->prev = 0;
   }
   else
    if (pkey == *pend)
     {
       *pend = (*pend)->prev;
       (*pend)->next = 0;
     }
    else
     {
      (pkey->prev)->next = pkey->next;
      (pkey->next)->prev = pkey->prev;
     }
     delete pkey;
     return true;
 }
 return false;
}
 
// &#194;&#241;&#242;&#224;&#226;&#234;&#224; &#253;&#235;&#229;&#236;&#229;&#237;&#242;&#224;
Node *insert(Node *const pbeg, Node **pend, int key, int d)
{
if (Node *pkey = find(pbeg, key))
{
 Node *pv = new Node;
 pv->d = d;
 // &#211;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#232;&#229; &#241;&#226;&#255;&#231;&#232; &#237;&#238;&#226;&#238;&#227;&#238; &#243;&#231;&#235;&#224; &#241; &#239;&#238;&#241;&#235;&#229;&#228;&#243;&#254;&#249;&#232;&#236;
 pv->next = pkey->next;
 // &#211;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#232;&#229; &#241;&#226;&#255;&#231;&#232; &#237;&#238;&#226;&#238;&#227;&#238; &#243;&#231;&#235;&#224; &#241; &#239;&#240;&#229;&#228;&#251;&#228;&#243;&#249;&#232;&#236;
 pv->prev = pkey;
 // &#211;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#232;&#229; &#241;&#226;&#255;&#231;&#232; &#239;&#240;&#229;&#228;&#251;&#228;&#243;&#249;&#229;&#227;&#238; &#243;&#231;&#235;&#224; &#241; &#237;&#238;&#226;&#251;&#236;
 pkey->next = pv;
 // &#211;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#232;&#229; &#241;&#226;&#255;&#231;&#232; &#239;&#238;&#241;&#235;&#229;&#228;&#243;&#254;&#249;&#229;&#227;&#238; &#243;&#231;&#235;&#224; &#241; &#237;&#238;&#226;&#251;&#236;
 if (pkey != *pend)
  (pv->prev) = pv;
  // &#206;&#225;&#237;&#238;&#226;&#235;&#229;&#237;&#232;&#229; &#243;&#234;&#224;&#231;&#224;&#242;&#229;&#235;&#255; &#237;&#224; &#234;&#238;&#237;&#229;&#246; &#241;&#239;&#232;&#241;&#234;&#224;
  // &#229;&#241;&#235;&#232; &#243;&#231;&#229;&#235; &#226;&#241;&#242;&#224;&#226;&#235;&#255;&#229;&#242;&#241;&#255; &#226; &#234;&#238;&#237;&#229;&#246;
  else
   *pend = pv;
   return pv;
}
return 0;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 pbeg = first(1);
 pend = pbeg; // &#239;&#229;&#240;&#226;&#251;&#233; &#253;&#235;&#229;&#236;&#229;&#237;&#242; &#255;&#226;&#235;&#255;&#229;&#242;&#241;&#255; &#232; &#239;&#238;&#241;&#235;&#229;&#228;&#237;&#232;&#236;
 
 for (int i = 2; i<6; i++)
  add(&pend, i);
 
  insert(pbeg, &pend, 2, 200);
  if (!remove(&pbeg, &pend, 5))
   Memo1->Lines->Add("&#205;&#229; &#237;&#224;&#233;&#228;&#229;&#237;");
 
   Node *pv = pbeg;
   while(pv)
    {
      Memo1->Lines->Add(IntToStr(pv->d));
      pv = pv->next;
    }
}
//---------------------------------------------------------------------------
 

Поясните плиз (у самого видать серого вещества не хватает) как работают вот эти строчки кода
(pkey->prev)->next = pkey->next;
(pkey->next)->prev = pkey->prev;
в функции remove
как вообще возможна такая конструкция (pkey->prev)->next

 5 
 : 09 Июнь 2018, 08:54:38 
Автор Sergey1985 - Последний ответ от Sergey1985
Елки палки точно. Спасибо за ответ. Смеющийся

 6 
 : 08 Июнь 2018, 14:37:23 
Автор Sergey1985 - Последний ответ от OVE
Мне кажется как-то так:
Код:
class TMyClass
{
   private:
       int FMyColor;
   protected:

   void __fastcall SetMyColor(int NewColor){FMyColor=NewColor;
                                          // и что-то свое дописать можно};

   public:
  __property int MyColor={read=FMyColor, write=SetMyColor};

};

 7 
 : 07 Июнь 2018, 10:54:23 
Автор Sergey1985 - Последний ответ от Sergey1985
Добрый день. Пытаюсь написать что то похожее на VCL но только для консоли. Предположим есть класс
(многое убрал пока из него чтоб не мешалось)
class TLabel
{
   public:
   char Caption[255];
   unsigned char TextColor;
  void SetTextColor(unsigned char color);
};

void TComponent::SetTextColor(unsigned char color)
{
    TextColor = color;
    textcolor(TextColor);
    cprintf(Caption,"%s");
};

после инициализации

TLabel *l;
int main()
{
   l = new TLabel();
 
}
нужно чтобы при изменении свойства
l->TextColor = RED;
вызывался автоматически метод
SetTextColor(unsigned char color); с TextColor в качестве аргумента т.е.
SetTextColor(TextColor);

Возможно ли такое реализовать?
Смотрел в сторону перегрузки операторов но мне кажется что это не то.


 8 
 : 06 Май 2018, 12:18:38 
Автор avnalobin - Последний ответ от avnalobin
На днях пришло обновление Windows 10 до билда 1803 и регистрация билдера слетела. Это происходит из-за того, что идентификатор юзера меняется? Если использовать "c:\Program Files (x86)\Borland\CBuilder6\Bin\BCB6RegClean.exe" а затем "c:\Program Files (x86)\Borland\CBuilder6\Bin\BCB6Reg.exe", то Билдер сам то начинает запускаться, но слетают все установленные в нем компоненты, есть какой то путь восстановить Билдер после обновления билда Вин10? Эта свистопляска раз в полгода надоела уже.

 9 
 : 06 Апрель 2018, 16:08:14 
Автор Sergey1985 - Последний ответ от Asher
Здравствуйте.

Для понимания процесса компоновки необходимо понять разницу между объявлением и определением.
Определение связывает имя с реализацией, что может быть либо кодом либо данными:
•   определение переменной побуждает компилятор зарезервировать некоторую область памяти, возможно задав ей некоторое определенное значение;
•   определение функции заставляет компилятор сгенерировать код для этой функции.
Объявление говорит компилятору, что определение функции или переменной (с определенным именем) существует в другом месте программы, вероятно в другом .c файле. При этом определение также является объявлением — фактически это объявление, в котором другое место программы совпадает с текущим.

 10 
 : 06 Апрель 2018, 14:39:17 
Автор SilverFish - Последний ответ от SilverFish
https://ridero.ru/books/c_builder_osnovy_programmirovaniya/
https://www.ozon.ru/context/detail/id/138161897/

Страниц: [1] 2 3 4 5 6 ... 10



....

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines
Страница сгенерирована за 0.093 секунд. Запросов: 20.