Вопрос № 57232: Здравствуйте, уважаемые эксперты.
OS - Windows XP, работа с реестром.
Помогите написать программу, которая счтитывает все содержимое из реестра по адресу [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionThemeManager],
а затем ...Вопрос № 57238: Здравствуйте эксперты.
Возник вопрос по тому же чату.
Я не могу понят какой элемент управления используется в той же Mirc для отображения сообщения. Я пробовал Listbox =))) Не подходит.
Я пишу чат на чистом WinAPI и прошу помочь если вы з...Вопрос № 57243: Уважаемые эксперты, помогите пожалуйста заменить вызов функции malloc оператором new
вызовы такие:
indexes = malloc ((size_t)(n+1)*sizeof(tindex));
lpBits = (LPSTR) malloc (bmImgSize*sizeof (BYTE));
p_gray_palette = (L...Вопрос № 57245: доброго времение суток, уважаемые эксперты
У меня возникла такая неприятность.С полем EDIT у меня связана переменная типа int и есть обработчик EN_CHANGE в котором вызывается UpdateData(TRUE), и соответственно когда я стираю все что есть в поле E...Вопрос № 57249: Доброго времени суток!
Уважаемые эксперты, столкнулся с необходимостью нахождения
подкоренного выражения из целого положительного числа большой размерности.
К примеру:
double x = 40353607;
double i = SQR_manual(x); // Должно пол...Вопрос № 57251: Здравствуйте, уважаемые эксперты!
Написал в эту рассылку и в UNIX, так как не знаю, куда мой вопрос относится:)).
Как вы поняли, пишу под FreeBSD на Си. Программа про обработку сигнала по нажатию <Ctrl+c>.
При нажатии должна выводит...Вопрос № 57262: Здравствуйте!
Вопос по VCL. Подскажите, пожалуйста, как можно пуолучить указатель на компонент TStringGrid.
на строчку TStringGrid *s;
компилятор пишет
Undrfined Symbol "TStringGrid"
Undrfined Symbol "s"<...
Вопрос № 57.232
Здравствуйте, уважаемые эксперты.
OS - Windows XP, работа с реестром.
Помогите написать программу, которая счтитывает все содержимое из реестра по адресу [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionThemeManager],
а затем записывает полученые данные туда же.
Отправлен: 30.09.2006, 16:20
Вопрос задал: Zeitgeist (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
--------- Ошибка становится ошибкой, когда рождается как истина. Станислав Ежи Лец
Ответ отправил: Vaga (статус: 3-ий класс)
Ответ отправлен: 02.10.2006, 21:15
Вопрос № 57.238
Здравствуйте эксперты.
Возник вопрос по тому же чату.
Я не могу понят какой элемент управления используется в той же Mirc для отображения сообщения. Я пробовал Listbox =))) Не подходит.
Я пишу чат на чистом WinAPI и прошу помочь если вы знаете назовите название элемента.
С уважением,
Zmeu.
Отвечает: n0name
Здравствуйте, Tamashev Denis M!
Скорее всего вам подойдет RichEdit20A, я писал свой IRC-чат, и этот элемент нормально работал. В RichEdit'e можно изменять цвет написания, делать жирным, почеркнутым текст.
Ответ отправил: n0name (статус: 6-ой класс)
Ответ отправлен: 30.09.2006, 17:51 Оценка за ответ: 5 Комментарий оценки: А можно в нём выводит картинки допустим смайлы ? Или придётся мучатся с рисованием на окне =( ?
Вопрос № 57.243
Уважаемые эксперты, помогите пожалуйста заменить вызов функции malloc оператором new
вызовы такие:
indexes = malloc ((size_t)(n+1)*sizeof(tindex));
typedef struct tagLOGPALETTE {
WORD palVersion;
WORD palNumEntries;
PALETTEENTRY palPalEntry[1];
} LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE;
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO;
и в связи с этим второй вопрос. Как перегрузить malloc оператором new
чтобы корректно преобразовывались типы любых структур
(например таких которые приведены выше) Пожалуйста приведите код
Спасибо
Отправлен: 30.09.2006, 18:46
Вопрос задал: Texnokrat (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: dentist
Здравствуйте, Texnokrat!
ну по всей видимости выглядит это также только вместо malloc мы поставим new.
например вот так:
LPBITMAPINFOHEADER pbmInfoHeader = (LPBITMAPINFOHEADER) new (char[sizeof(BITMAPINFOHEADER)]);
а чем вам функция malloc неугодила? =)
--------- "Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 4-ый класс)
Ответ отправлен: 02.10.2006, 09:26
Отвечает: Sergey A. Wedensky
Здравствуйте, Texnokrat!
indexes = new tindex[n+1];
lpBits = new BYTE[bmImgSize];
p_gray_palette = (LPLOGPALETTE)new char[sizeof(LOGPALETTE)+NO_OF_PALETTE_ENTRIES*sizeof(PALETTEENTRY)];
// Только удалять нужно так:
// delete (char*)p_gray_palette;
pbmInfoHeader = new BITMAPINFOHEADER;
pbmInfo = (LPBITMAPINFO) new char[PalSize + sizeof(BITMAPINFOHEADER)];
// Опять же удаляем
// delete (char*)pbmInfo
Ответ отправил: Sergey A. Wedensky (статус: 3-ий класс)
Ответ отправлен: 02.10.2006, 10:11
Вопрос № 57.245
доброго времение суток, уважаемые эксперты
У меня возникла такая неприятность.С полем EDIT у меня связана переменная типа int и есть обработчик EN_CHANGE в котором вызывается UpdateData(TRUE), и соответственно когда я стираю все что есть в поле EDIT то выдается ошибка "Please enter an integer", как бы можно было обойти это?
Можно было бы строковую переменную связать с этим полем, но тогда каждый раз при обработке этих данных надо будет переводить их в int или float а потом обратно.
Заранее благодарен
Отправлен: 30.09.2006, 19:04
Вопрос задал: Mefisto (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: NextStep / www2
Здравствуйте, Mefisto!
Перед тем, как преобразовывать строку в число - проверьте не пустая ли она. Если она пустая, тогда присвойте ей значение "0", а затем уже преобразовывайте. Или можете не преобразовывать "0" в 0, а сразу обойти преобразование и присвоить переменной значение 0.
--------- Нет правил без исключений, правило без исключения - это исключение из правил.
Ответ отправил: NextStep / www2 (статус: Студент)
Ответ отправлен: 02.10.2006, 12:14
Отвечает: Delph
Здравствуйте, Mefisto!
IMHO, наиболее корректным будет вариант, когда программа считывает информацию со всей формы сразу (например, при нажатии пользователем кнопки "Применить", или что там у Вас определено для этих целей?). Для всех визуальных компонентов чтение (и перекодировка, если необходимо) вызывается именно в этот момент, здесь же идёт отслеживание и обработка ошибок при вводе. На каждое отдельное поле для ввода данных можно навесить проверку корректности вводимой информации (т.е. в числовом поле запретить ввод нечисловой
информации, я обычно просто отсекаю недопустимые символы). Вот эту проверку и подвесте на обработчик EN_CHANGE.
Если возникнут вопросы, обращайтесь.
Ответ отправил: Delph (статус: 1-ый класс)
Ответ отправлен: 02.10.2006, 12:24
Вопрос № 57.249
Доброго времени суток!
Уважаемые эксперты, столкнулся с необходимостью нахождения
подкоренного выражения из целого положительного числа большой размерности.
К примеру:
double x = 40353607;
double i = SQR_manual(x); // Должно получиться '7'
// 7^9 = 40353607
С уважением Sergey.
Отправлен: 30.09.2006, 19:38
Вопрос задал: Pep-sergey (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Pep-sergey!
Надо воспользоваться некоторыми математическими знаниями:
a ^ n = exp(n * ln(a))
Корень n-ой степени из a - это a ^ (1/n)
Соотв., корень n-ой степени из a равен exp(ln(a) / n) или, в вашем случае:
double x = 40353607;
double i = exp(ln(x) / 7.0);
Не забудьтен подключиться math.h или stdib.h - используемые функции где-то там находятся.
--------- Не узнаешь - не попробуешь.
Отвечает: Sergey A. Wedensky
Здравствуйте, Pep-sergey!
Не уверен, что правильно Вас понял, но корень 9 степени из x - это x^(1/9):
double i = pow(x, 1.0/9);
Ответ отправил: Sergey A. Wedensky (статус: 3-ий класс)
Ответ отправлен: 02.10.2006, 10:15
Вопрос № 57.251
Здравствуйте, уважаемые эксперты!
Написал в эту рассылку и в UNIX, так как не знаю, куда мой вопрос относится:)).
Как вы поняли, пишу под FreeBSD на Си. Программа про обработку сигнала по нажатию <Ctrl+c>.
При нажатии должна выводиться Фраза. Так вот, при нажатии на <Ctrl+c> выводится `^CФраза` (перед фразой значок `^C`). Кто-нибудь знает как убрать этот значок? Или это свойство операционной системы?
Отвечает: Хватов Сергей
Здравствуйте, Стомов Евгений!
Это - свойство драйвера tty. Чтобы от этого избавиться, надо в параметрах tty снять флаг ECHOCTL. Проще всего - с помощью программы stty:
stty -echoctl < /dev/нужный-tty
Програмно это делать несколько муторно, но как это делать, и вообще как работать с терминальными устройствами, описано в http://www.easysw.com/~mike/serial/serial.html (правда, по-английски)
Ответ отправил: Хватов Сергей (статус: 5-ый класс)
Ответ отправлен: 01.10.2006, 19:01
Вопрос № 57.262
Здравствуйте!
Вопос по VCL. Подскажите, пожалуйста, как можно пуолучить указатель на компонент TStringGrid.
на строчку TStringGrid *s;
компилятор пишет
Undrfined Symbol "TStringGrid"
Undrfined Symbol "s"
Отправлен: 30.09.2006, 21:44
Вопрос задал: Svanshe (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Santana
Здравствуйте, Svanshe!
по моему так
TStringGrid* MyGrid = new TStringGrid();
Ответ отправил: Santana (статус: 6-ой класс)
Ответ отправлен: 30.09.2006, 22:32
Отвечает: Sergey A. Wedensky
Здравствуйте, Svanshe!
Подозреваю, что Вы просто не подключили нужный header:
#include <Grids.hpp>
Ответ отправил: Sergey A. Wedensky (статус: 3-ий класс)
Ответ отправлен: 02.10.2006, 10:07