C++Builder
   Начало   Форум Помощь Войти Регистрация  
Страниц: [1] 2 3 4 5 6 ... 10
 1 
 : 18 Октябрь 2018, 19:54:25 
Автор leoboec - Последний ответ от Ravil
не совсем конечно понятно, что вы хотите получить в итоге,  но думаю , что можно попробовать использовать Label растянуть его максимально и задать Alignment=taCentr;

 2 
 : 17 Октябрь 2018, 23:08:47 
Автор Ravil - Последний ответ от Ravil
Доброй всем ночи ребят.Улыбка Имеется Query1, frxReport1,frxDBDataset1. В поле kolvo есть значения которые бы указывали на количество дубликатов страниц каждой строки. К примеру
Query 1
PN | Naimenovanie           |  Kolvo |
 1  | Материнская плата   |    10   |
 2  | ОЗУ 4 GB ARTV         |     5    |
 3  | БП 550W ACR           |     2    |
При Report1->ShowReport();
Должны отобразится 10 страниц 1 строки, 5 страниц 2 строки, 2 страницы 3 строки.
Лазил в инете нарыл что надо: TfrxReportPage.PageCount = 2., но не знаю как присобачить это все к задаче.За ранее всем спасибо.

 3 
 : 10 Октябрь 2018, 13:28:41 
Автор Fedel - Последний ответ от Fedel
Немного разобрался (компилируется и лента отображается) с Windows Ribbon Framework for Delphi. В 32 битной версии CBuilder надо выкинуть из линковки Runtime package этой компоненты UIRibbonPackage.bpl. А в 64 битной компилятор все время ругается на нехватку пакета UIRibbonPackage.bpi. Когда чистишь файл проекта, то ругается на нехватку UIRibbonPackage.a. Во время компиляции всплывает окно, можно отказаться от этой библиотеки, и все будет работать. Но это чертовски неудобно.

 4 
 : 09 Октябрь 2018, 01:51:30 
Автор Fedel - Последний ответ от Fedel
Всем привет!

Что-то потянуло меня снова по программировать в CBuilder, но только в новом 10.2.3. И сразу возникли вопросы.

Embarcadero вынуждена убрать свои Ribbon компоненты из поставки и скорей всего их развивать не будет. Их конечно можно скачать с GetIT, однако стоит ли это делать?

Решил попробовать Windows Ribbon Framework for Delphi. Вроде бы с таким конкретным названием, но и под CBulder подходит. Ну, компонента вроде бы ставиться. Радует что это близко к идеологии MS, но все-таки не совсем голыми руками. Однако, данный компонент у меня заработал в Delphi (дай бог, там примеры с исходниками), но вот с CBuilder проблемы - ругается, что не может прочесть ресурс APPLICATION. Вроде бы ресурс есть в exe файле. Что-то я не понимаю?! Может кто подскажет что-то по этой компоненте?

Или посоветует другие? Есть ли что скачать для 10.2.3?

Пока-пока.

 5 
 : 27 Сентябрь 2018, 20:02:25 
Автор Sergey1985 - Последний ответ от OVE
Как вариант, можно посылать сообщение главной форме (SendMessage или PostMessage), а в главной форме ловить его, и выполнять какие-то действия.

 6 
 : 26 Сентябрь 2018, 13:25:28 
Автор Sergey1985 - Последний ответ от Sergey1985
Доброго времени суток. В классе TThread есть метод Synchronize. Как ее можно реализовать самому если я создаю поток при помощи WinAPI
DWORD WINAPI Thread_RxD_Func(LPVOID classPtr)

Использовать в проекте класс TThread уже не могу.

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

 8 
 : 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

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

 10 
 : 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

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



....

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