Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(Часть 2) Я начинающий, подскажите пожалуйста как...

1
15 декабря 2007 года
kot_
7.3K / / 20.01.2000
Данная тема предназначена для размещения вопросов начинающих программистов.
Прежде чем задать вопрос здесь, вы обязаны использовать
  1. Поиск по форуму, используя ключевые слова из вашего вопроса. Как правильно использовать поиск - читайте здесь
  2. Список наиболее часто задаваемых вопросов (FAQ)
  3. Поиск по предыдущей теме
Учитывайте пожалуйста, что вопрос который лично вам кажется сложным, в большинстве случаев на форуме рассмотрен достаточно подробно. Не соблюдение этих правил, приведет к тому, что ваше сообщение будет удалено, а вы получите нарушение.
Кроме того, прежде чем размещать сообщение, ознакомьтесь с правилами.
При размещении вопросов начинающих помимо указанной темы, будет выдаваться нарушение, а тема удаляться.
Страницы:
37K
29 июня 2009 года
dufifa2
34 / / 14.09.2008
Привет.
хочу сделать Tcanvas для разрабатываемого компонента, наследуемого от TButton;
Прописываю:
Цитата:
TCanvas *c = new TCanvas();
c->Handle = GetDC(this->Handle);
c->TextOutA(0,10,"Dan");


Потом просто создаю и вызываю функцию с созданием Canvas:
TButton1* b = new TButton1(this);
b->Parent = this;
b->Rep();
//----------------
К сожалению не работает... А как правильно??
Заранее спасиб ))

246
29 июня 2009 года
GIZMO
1.8K / / 30.07.2004
Цитата: dufifa2

однако компилятор не знает что такое Component!!


нет у TComponet св-ва Component поэтому и не знает

37K
29 июня 2009 года
dufifa2
34 / / 14.09.2008
Т.е. пример не правильный и устаревший?? А как же правильно...
1.9K
30 июня 2009 года
George22
91 / / 09.12.2007
Привет Всем!
Зачем в Билдере 6-ом рядом с закладками Unit1.cpp и Unit1.h
закладка Diagram? Алгоритм что-ли рисовать...
Искал в Инете - ничего не нашел.
1.9K
30 июня 2009 года
George22
91 / / 09.12.2007
И еще вопрос:
Запускаю процесс:
Код:
_PROCESS_INFORMATION ProcInfo;

CreateProcess( "C:\\MK.exe",
                                NULL,
                                NULL,
                                NULL,
                                false,
    NORMAL_PRIORITY_CLASS,
                                NULL,
                                NULL,
                         &StartInfo,
                          &ProcInfo);


Почему вот так не могу его закрыть?
 
Код:
PostMessage(ProcInfo.hProcess,WM_CLOSE,0,0);

Спасибо всем.
9.3K
30 июня 2009 года
iridum
175 / / 26.08.2007
Потому что PostMessage требует хендл окна а не процесса, надо найти окно процесса, а потом указать его аргументом PostMessage
14
30 июня 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: George22

Зачем в Билдере 6-ом рядом с закладками Unit1.cpp и Unit1.h
закладка Diagram?


Составлять типа-UML схемы

7.5K
02 июля 2009 года
Dmitryl
55 / / 19.06.2007
Использовал пример Загрузка файла из Интернета с помощью WinSock.
Участок код
 
Код:
// Принимаем данные
int len;
do
{
if (SOCKET_ERROR == (len = recv (s, (char *) &buff, MAX_PACKET_SIZE, 0) ) )
return;
Memo1->Lines->Add(buff);
}
while (len!=0);

качает страницу не полностью.
Скажите пожалуйста: "А почему?".
1.9K
13 июля 2009 года
George22
91 / / 09.12.2007
Нужно программно периодически без браузеров обращаться к HTTP-серверу к странице на которой есть таблица с цифрами, получить эти цифры и построить круговую диаграмму. Подскажите, пожалуйста, с помощью какого компонента из 6 Bulderа легче всего это сделать?
Диаграмму с помощью TChart умею делать, а в WEB я не силен.
11
13 июля 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: George22
Нужно программно периодически без браузеров обращаться к HTTP-серверу к странице на которой есть таблица с цифрами, получить эти цифры и построить круговую диаграмму. Подскажите, пожалуйста, с помощью какого компонента из 6 Bulderа легче всего это сделать?
Диаграмму с помощью TChart умею делать, а в WEB я не силен.


в FAQ-е есть вопрос "как скачать файл из интернета" его смотри.
потом придется парсить хтмл страницу. (можно через DOM IE парсить)

1.9K
13 июля 2009 года
George22
91 / / 09.12.2007
Sorry, а что такое парсить?
11
13 июля 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: George22
Sorry, а что такое парсить?


parsing - синтаксический анализ, синтаксический разбор;

32K
25 июля 2009 года
Saurus777
5 / / 04.10.2007
Здраствуйте, подскажите пожайлуста как при наведении мышкой на файл в текстовое поле формы (у нее нету фокуса так наводим курсор на файл и выделяем его) получить его имя...
288
26 июля 2009 года
nikitozz
1.2K / / 09.03.2007
Цитата: Saurus777
Здраствуйте, подскажите пожайлуста как при наведении мышкой на файл в текстовое поле формы (у нее нету фокуса так наводим курсор на файл и выделяем его) получить его имя...



Где "находится" файл и на что вы наводите мышку. Если на ListView, то GetItemAt.

32K
26 июля 2009 года
Saurus777
5 / / 04.10.2007
файл находится на рабочем столе, пример у мен есть файлы на рабочем столе или я обозревателем открываю диск Д: к примеру, там есть файлы, так вот нужно когда я мышкой щелкаю на любой из них, то чтобы программа отлавливала это выделение файла и бросала в тектовое поле его имя и путь
1.9K
26 июля 2009 года
GreenRiver
451 / / 20.07.2008
Цитата: Saurus777
файл находится на рабочем столе, пример у мен есть файлы на рабочем столе или я обозревателем открываю диск Д: к примеру, там есть файлы, так вот нужно когда я мышкой щелкаю на любой из них, то чтобы программа отлавливала это выделение файла и бросала в тектовое поле его имя и путь


А зачем такие сложности если не секрет? Может быть Вас устроят такие варианты:
1. Список файлов отображается в вашей программе и вы щелкаете по нужному (то, о чем говорит nikitozz)
2. По нажатию на кнопку открывается диалоговое окно выбора файла TOpenDialog, после чего выбирается файл
3. Нужный файл "перетаскивается" в окно Вашей программы

32K
26 июля 2009 года
Saurus777
5 / / 04.10.2007
спасибо за совет но это я понимаю ка сделать, мне бы так как я выше написал( а зачем просто интерестно как это все реализовать) :)
246
26 июля 2009 года
GIZMO
1.8K / / 30.07.2004
Цитата: Saurus777
спасибо за совет но это я понимаю ка сделать, мне бы так как я выше написал( а зачем просто интерестно как это все реализовать) :)


Сабклассить эксплорер, конкретно окно с названием класса - SysListView32. Сделать это можно только "внутри" процесса explorer.exe, поэтому нужно туда внедриться - ловушка, удаленный поток или написать расширение оболочки реализовав в нем IQueryInfo (при наведении на файл в эксплорере, загрузит длл и выдаст все про файл под мышкой)

50K
29 августа 2009 года
Дерево
6 / / 28.08.2009
Ребята, подскажите как организовать такую вот вещь: "Вывод содержимого файла произвести постранично"?
Код такой и к нему надо приляпать этот дуратский вывод:
Код:
char fname[20];
 puts("Enter name file:\n");
 gets(fname);
 if((fp=fopen(fname,"r")) == NULL)
  {
        printf("Error");
        return;
  }

 double n;
 for(i=0; i<ogr; i++)
  {
        fscanf(fp,"%lf",&n);   <-- как тут организовать постраничный вывод?
        printf("%lf", n);
  }


BorlandC 3.1
297
30 августа 2009 года
koodeer
1.2K / / 02.05.2009
to Дерево:
http://www.cyberforum.ru/cpp-beginners/thread38354.html
50K
01 сентября 2009 года
Дерево
6 / / 28.08.2009
У меня снова возник наитупейший вопрос.
Задача следующего рода: Дана строка. Нужно словечки в ней поставить в алфавитном порядке, а потом ещё отсортировать по длине.
Фигня в том, что использую strtok, но это зараза работает только с указателями, а мне нужен массив. Да и нигде не нашел на вашем форуме про сортировку по длине и алфавиту. Вроде можно как-то через метод пузырька, но как-то не работает он.
Вообще получил вот такое*, а дальше не знаю как действовать. Может надо в динамический массивы идти или что-то другое??
*код:
Код:
#include<stdio.h>
#include<string.h>

int main()
{
 char str [] ={"Pippipipip pypypypypyp rararraarara draniki beliahiki"};
 char *word;
 char *words[]={0};
 int i=0;

 word=strtok(str, " ");
 while(word)
 {
        words=word;
        i++;
 }

return 0;
}

И все же как-то можно проще делать, но увы...
И ещё у меня тупой вопрос: А есть авторы, которые... там скажем.. пишет лучше, чем Подбельский?
Да, вот пытался ещё сделать через qsort, но там вообще лес дикий..

Добавил qsort для алфавита, но не запускается. В чем может быть проблема? Пишет: not enough memory.

Код:
#include<stdio.h>
#include<string.h>
#include <stdlib.h>

int compare(const void *a, const void *b)
{
 unsigned long *pa=(unsigned long *)a,
               *pb=(unsigned long *)b;
 return strcmp((char *)*pa, (char *) *pb);
}

void main()
{
 char str [] ={"Pippipipip pypypypypyp rararraarara chebureki plushki"};
 char *word;
 char *words[]={0};
 int i=0;

 word=strtok(str, " ");
 while(word)
 {
        words=word;
        i++;
 }

 int n = sizeof(words)/sizeof(words[0]);
 i=0;
 qsort((void *)
  words,
  n,
  sizeof(words[0]),
  compare
  );
  printf("\n pocle cort al:");
  for(i=0; i<n; i++)
   printf("\n words [%d] = %s",
          i,words);


return;
}
297
01 сентября 2009 года
koodeer
1.2K / / 02.05.2009
to Дерево
С функцией strtok работаем немного иначе.
Не забываем задавать размер массиву.
Код:
#define SIZE 20

char str[] = "Pippipipip pypypypypyp rararraarara draniki beliahiki";
char *word;
char *words[SIZE];
int i=0;

word=strtok(str, " ");
while(word)
{
    words=word;
    i++;
    word=strtok(NULL, " ");
}

В i теперь имеем количество слов. Таким образом, строку
 
Код:
int n = sizeof(words)/sizeof(words[0]);

можно заменить на
 
Код:
int n = i;

Далее по тексту.
50K
02 сентября 2009 года
Дерево
6 / / 28.08.2009
Koodeer, большое спасибо за помощь!
16K
02 сентября 2009 года
iRain
72 / / 12.03.2008
Гаспада - необходима функция, которая определяет парное число или нет. Если стандартная такова имеется, то буду очень благодарен. Если нет, то буду думать.
7.5K
03 сентября 2009 года
Dmitryl
55 / / 19.06.2007
Есть программка, которая через COM-порт связывается с устройством.
На Windows 2000 SP2 работает, а на Windows Server 2003 R2 не приходит ответ от устройства:
 
Код:
if(!ClearCommError(handle, &temp, &ComState)) throw Exception("9",0);
        if(temp != 0) throw Exception("13",0);

        [COLOR="DarkOrange"]ReadFile(handle, buf_out, 10, &numbytes_ok, &Overlap);[/COLOR]

        if(WaitForSingleObject(Overlap.hEvent, 5000) == WAIT_TIMEOUT)
                throw Exception("10",0);


После ReadFile(это первый ReadFile в ходе обмена) происходит вызов обработчика исключения по таймауту. Там где Windows Server 2003 R2, я тестировал на двух портах; и там и там одно и тоже.
Может для сервера следует использовать в ходе взаимодействия некоторые другие функции? Подскажите пожалуйста!
14
04 сентября 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: Dmitryl

После ReadFile(это первый ReadFile в ходе обмена) происходит вызов обработчика исключения по таймауту.


Почему не проверяете ошибки?

7.5K
04 сентября 2009 года
Dmitryl
55 / / 19.06.2007
Цитата:
Почему не проверяете ошибки?


После ReadFile
GetLastError() == ERROR_IO_PENDING, т.е. асинхронное чтение стартовало успешно.

7.5K
07 сентября 2009 года
Dmitryl
55 / / 19.06.2007
Из официального документа "Moving Windows NT 4 and Windows 2000 Applications to Windows Server 2003" узнал:
Цитата:

При миграции приложений на Windows Server 2003 (а также клиентских приложений - на Windows XP) следует создать для каждого приложения файл "манифеста" - файл в XML-формате, имеющий расширение .man и содержащий перечисление всех необходимых для исполнения приложения файлов DLL с указанием их версий (в "манифесте" должны быть записаны те версии файлов DLL, которые использовались при разработке и тестировании приложения). При запуске на Windows Server 2003 исполняемого EXE-файла будут загружаться только указанные в манифесте версии DLL.


Но информации о создании этого манифеста не нашел...

14
08 сентября 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: Dmitryl
Но информации о создании этого манифеста не нашел...


Вам надо почитать в MSDN статьи Side-by-side assemblies и связанные.

20K
13 сентября 2009 года
Smoke_VSOP
4 / / 27.07.2006
Всем привет, у меня проблема:
есть надобность обработать неск. десятков страниц, скачиваемых программой из Сети. Есть массив элементов типа AnsiString со ссылками на нужные страницы и массив элементов типа TMemoryStream. Одна процедура сохраняет одну страницу в один поток. Есть цикл вызовов этой процедуры, по окончании которого, каждый элемент TMemoryStream содержит одну страницу. После обработки всех элементов нужно содержимое каждого переместить в элемент массива типа TStringList. Собственно проблема:
При попытке использовать

LoadFromStream();

говорит, что нужен указатель на TStream, а не TMemoryStream. При попытке создать массив типа TStream, говорит, что не может и что-то там про абстрактный класс.

Вопрос: Как перенести данные из одного массива в другой?
Не сохранять же 55 потоков в 55 файлов...
14
14 сентября 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: Smoke_VSOP

При попытке использовать
LoadFromStream();


чет я запутался. это чей метод, пишите вместе с именем класса

Цитата: Smoke_VSOP

говорит, что нужен указатель на TStream, а не TMemoryStream.


не верю! (с) TMemoryStream - потомок TStream а значит может его подменить везде где требуется TStream.

1
14 сентября 2009 года
kot_
7.3K / / 20.01.2000
Цитата: Phodopus

не верю! (с) TMemoryStream - потомок TStream а значит может его подменить везде где требуется TStream.


уж поверь. Приведение типов никто не отменял. :) Аффтор на него забил - за что и наказан.

14
14 сентября 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: kot_
уж поверь. Приведение типов никто не отменял. :) Аффтор на него забил - за что и наказан.


:eek: хде ты это увидел?! :) онж кода не привел? или у тебя пасутся стада телепатов под окном? :D

20K
15 сентября 2009 года
Smoke_VSOP
4 / / 27.07.2006
Погуглил "Приведение типов в C++"

Лучшая практика по приведению типов: не делать этого. Потому что, если в программе потребовалось приведение типов, значит в этой программе с большой долей вероятности что-то неладно.
(С)Елена Сагалаева

Раз так, то я, похоже, некорректно подошёл к проблеме. Надо подумать ещё... Спасибо, КОТ!
1
15 сентября 2009 года
kot_
7.3K / / 20.01.2000
ну почему лучшая? именно для этого и делается наследование, именно по этому и указатели используются. Читай нормальные книги. В твоем случае приведение типов - это как раз правильное использование.
14
15 сентября 2009 года
Phodopus
3.3K / / 19.06.2008
Слушайте мужики, вчера пришел домой, запустил злобный буилдеръ 6, скормил TStringList::LoadFromStream() указатель на TMemoryStream и все прекрасно работает. Вы о чем ваще?! :eek:
1
15 сентября 2009 года
kot_
7.3K / / 20.01.2000
ну так забухай, ёпт :)
20K
15 сентября 2009 года
Smoke_VSOP
4 / / 27.07.2006
действительно, когда у нас единичный экземпляр класса TStringList, он нормально кушает указатель, но в моём случае:

TMemoryStream *Streams;
TStringList *Lists;

Streams=new TMemoryStream[33];
Lists=new TStringList[33];

Lists[0].LoadFromStream(Streams[0]);

Пишет:

Build
Cannot convert 'TMemoryStream' to 'TStream *'
Type mismatch in parameter 'Stream' (wanted 'TStream *', got 'TMemoryStream')

В чём же суть?
246
15 сентября 2009 года
GIZMO
1.8K / / 30.07.2004
Цитата: Smoke_VSOP
действительно, когда у нас единичный экземпляр класса TStringList, он нормально кушает указатель, но в моём случае:

TMemoryStream *Streams;
TStringList *Lists;

Streams=new TMemoryStream[33];
Lists=new TStringList[33];

Lists[0].LoadFromStream(Streams[0]);

Пишет:

Build
Cannot convert 'TMemoryStream' to 'TStream *'
Type mismatch in parameter 'Stream' (wanted 'TStream *', got 'TMemoryStream')

В чём же суть?



он же пишет конкретно - "не могу привести ОБЪЕКТ TMemoryStream к УКАЗАТЕЛЮ TStream", т.к. ты передаешь в функцию объект, а не указатель. Разберись с массивами и указателями в С++
т.о.
Lists[0].LoadFromStream(Streams); //(Streams+0),(Streams+1) и т.д.

20K
15 сентября 2009 года
Smoke_VSOP
4 / / 27.07.2006
Понял, Спасибо! Про
//(Streams+0), (Streams+1) и т.д.

не понял сути, сделал
Lists[0].LoadFromStream(&Streams[0]);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог