Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обучение и начало програмирования на С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Открыть новую тему     Написать ответ в эту тему

KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WWWovan
http://bcb.fud.ru/bcb/Sreda/Borland/Bcb5/object/TPaintBox/TPaintBox.shtml
А начинать отсюда

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 22:21 14-11-2005
WWWovan



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Имееться обьект класса  

Цитата:
class CDocTemplate
{
public:
    CDocRows    *TopRows;
    CDocRows    *TableRows;
    CDocRows    *AfterTableRows;
    CDocRows    *BottomRows;
public:
                CDocTemplate(){
                    TopRows         = new CDocRows;
                    TableRows       = new CDocRows;
                    AfterTableRows  = new CDocRows;
                    BottomRows      = new CDocRows;
                }
                ~CDocTemplate(){
                    delete TopRows          ;
                    delete TableRows        ;
                    delete AfterTableRows   ;
                    delete BottomRows       ;
                }

Следующим участком кода реализуеться печать(TPrinter *Prntr;)

Цитата:
Prntr->Printers->Strings[Prntr->PrinterIndex]+" "+IntToStr(Prntr->PrinterIndex);
    Prntr->PrinterIndex = cbPrinters->ItemIndex;
    Prntr->Orientation = poPortrait;
    Prntr->Copies = StrToIntDef(edCopies->Text,1);
 
    pbPrintProgress->Position = 0;
    pbPrintProgress->Visible = true;
    tmrShow->Enabled = true;
    SDrawData DrawData = {Prntr->PageWidth/210, Prntr->PageHeight/297};
 
   
 
    if(Templ!=NULL)
    {
        Prntr->BeginDoc();
        Prntr->Canvas->Brush->Style = bsClear;
        Templ->Draw(Prntr->Canvas, &DrawData);
        Prntr->EndDoc();
    }

Как сделать, что при обьеме печатаемой информации больше чем на страницу печать осуществлялась на новую(в моем варианте все лишнее обрезает)
Заранее огромное спасибо за помощь.

----------
Не несу ответственность за случайно допущенные орфографические ошибки.

Всего записей: 578 | Зарегистр. 15-11-2003 | Отправлено: 16:20 23-11-2005
WWWovan



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди, неужели никто не может помочь? . Очень нужно.

----------
Не несу ответственность за случайно допущенные орфографические ошибки.

Всего записей: 578 | Зарегистр. 15-11-2003 | Отправлено: 11:24 02-12-2005
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WWWovan
На сколько я понимаю, это в Борланд С++ Билдере.
Тогда это должно помочь.
И тут ещё.

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 12:37 02-12-2005 | Исправлено: KADABRA, 12:39 02-12-2005
iMMortal_Inc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди хелп.
Дайте плз ссылочки на простые книги о С++ (типа про Visual Studio .NET 2003 - 2005).
 
Я тут немного почитал от автора С++, так основы понял, но дальше...

Всего записей: 4 | Зарегистр. 27-12-2005 | Отправлено: 02:50 27-12-2005
mmiichae



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iMMortal_Inc
Про книги лучше спрашивать в теме http://forum.ru-board.com/topic.cgi?forum=93&bm=1&topic=0892&start=1000

Всего записей: 698 | Зарегистр. 17-10-2003 | Отправлено: 03:23 27-12-2005
WWWovan



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Имеется следующая задача:
В таблице в одном поле хранится номер группы, а во втором номер родительской группы для данной(если конкретизовать, то это группы товара).
Нужно сделать выборку номеров группы вместе с всеми ее подгруппами.
Как это правильно сделать?
Одним из вариантов решения вижу графы, обход в глубину.
Но не совсем четко представляю как реализовать их с динамическими масивами.

----------
Не несу ответственность за случайно допущенные орфографические ошибки.

Всего записей: 578 | Зарегистр. 15-11-2003 | Отправлено: 18:27 13-02-2006
dyr farot

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
простейший вариант -- берем std::map<int, std::set<int> > и строим дерево.
потом рекурсивно его обходим и добавляем все номера в список

Всего записей: 697 | Зарегистр. 03-08-2004 | Отправлено: 12:25 14-02-2006
WWWovan



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dyr farot

Цитата:
простейший вариант -- берем std::map<int, std::set<int> > и строим дерево.  
потом рекурсивно его обходим и добавляем все номера в список

Можно немного подробнее?

----------
Не несу ответственность за случайно допущенные орфографические ошибки.

Всего записей: 578 | Зарегистр. 15-11-2003 | Отправлено: 10:17 15-02-2006
dyr farot

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
делается выборка всех групп.
первым параметром в мапу пишется родительская группа, во второй добавляются ее дети.
потом берем из мапы все группы, у которых нет родителя ( группы верхнего уровня ) -- у них parent 0 ( или -1 ( как напишеш ) )
и проходиш по полученному set' у вызывая рекурсивную функцию

Всего записей: 697 | Зарегистр. 03-08-2004 | Отправлено: 12:53 15-02-2006
NNS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос в следующем. У меня Visual Studio 2005. Как мне в основном окне созданной программы (windows application), сделать кнопку. Те. в созданой по умолчанию Студией виндовс программе в главном окне (этой программы) нужно вывести кнопку. Как это сделать. Подскажите пожалуйста по доходчивей. Я полный чайник в програмировании на С++ под виндоус.  
 
ЗЫ Посоветуйте, пожалуйста где можно почитать на русском, о виндоус програмировании на С++. Только чтоб книга была написанна "на человеческом", т.е. чтоб даже чайник понял.

Всего записей: 137 | Зарегистр. 03-01-2005 | Отправлено: 13:33 03-03-2006
Stroodder



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NNS
Ну если впервые на си, попробуй создать MFC-приложение - там и сориентируешься.  
А ссылки на литературу начинали постить с первых веток, полистай.

----------
Шерше ля варез...

Всего записей: 666 | Зарегистр. 21-10-2004 | Отправлено: 08:01 04-03-2006
NNS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть отрывок кода:
 
.......
 
char n;
ifstream fin("my.txt");
 
while (n!='*') {
fin.get(n);
}
 
.......
 
При запуске программы выводит следующее
 
Run-time check Failure #3 - The variable 'n' is being used without being defined.
 
Сосбсно что ему не нравится, ведь переменная n определенна.

Всего записей: 137 | Зарегистр. 03-01-2005 | Отправлено: 21:15 06-03-2006
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
NNS
Попробуй перед циклом написать fin.get(n);

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 21:23 06-03-2006
NNS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH
О! Спасибо! Только вот странно почему переменной должно быть присвоенно значение до ее использования в цикле...
 
Еще вопрос: в файл test.txt запмсан следующий текст:
Строка 1
Строка 2
 
Вот текст программы
....
char a[225], b[255];
ifstream fin("test.txt");
 
fin.getline(a,255);
fin.getline(b,255);
 
cout << a << endl;
cout << b << endl;
....
 
 
В результате на экран выводится
 
Строка 1
 
А вместо "Строка 2" выводится "пустое место". Я думаю надо каким то образом после первого чтения строки, переидти на новую строчку и только после этого читать "Строка 2". Я прав? Если да, то как это сделать.

Всего записей: 137 | Зарегистр. 03-01-2005 | Отправлено: 17:15 07-03-2006
wInuX

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Только вот странно почему переменной должно быть присвоенно значение до ее использования в цикле...

потому что ты используешь значение переменной в условии цикла, а она при первом проходе не инициализирована.
 

Цитата:
А вместо "Строка 2" выводится "пустое место". Я думаю надо каким то образом после первого чтения строки, переидти на новую строчку и только после этого читать "Строка 2". Я прав? Если да, то как это сделать.

Вообщето нет. более того у меня под gcc выводится так как ты хотел:
Строка1
Строка2
 
Ты каким компилятором пользуешься?

Всего записей: 155 | Зарегистр. 19-05-2005 | Отправлено: 17:37 07-03-2006
NNS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wInuX
 

Цитата:
Ты каким компилятором пользуешься?  

Visual Studio.
 
Я допустил ошибку.
 
в файле записанно
 
Строка 1
22 33
Строка 2
 
А текст программы следующий:
 
char a[225], b[255];
long c, d;
ifstream fin("test.txt");
fin.getline(a,255);
fin >> c;
fin >> d;
fin.getline(b,255);
cout << a << endl;
cout << c << endl;
cout << d << endl;
cout << b << endl;
 
Он выводит массив а, числа с и d, а массив "b"  не выводит.

Всего записей: 137 | Зарегистр. 03-01-2005 | Отправлено: 18:05 07-03-2006
wInuX

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Так происходит потому что после чтения двух чисел указатель еще не перешел на новую строчку. считай еще раз строку в b. Или считай вторую строку с помощью getline. потом создай потой и считай из нее два числа

Всего записей: 155 | Зарегистр. 19-05-2005 | Отправлено: 18:29 07-03-2006
NNS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо! Помогло!

Всего записей: 137 | Зарегистр. 03-01-2005 | Отправлено: 22:02 07-03-2006
Tantalov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите кто-нибудь!!!
Мне в универе задали написать прогу на С++ Builder 6.0 для обработки цифрофой фотографии. Меня интересует если в С++ Builder функции для вызова RGB-матриц для пикселя?
Если их нет, то как подключить функцию mpixel() из MatLab, что бы она производила считывание с с рисунка, который находится на форме.
Заранее благодарен!

Всего записей: 1 | Зарегистр. 14-03-2006 | Отправлено: 10:32 14-03-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обучение и начало програмирования на С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru