Вопрос № 40306: Здравствуйте, эксперты!
Есть такая проблема:
я написал прогу, которая при старте windows проверяет не наступил ли случаем
понедельник. Если наступил, то выводит в Мемо текст из файла мемо.txt
(файл находится в каталоге рядом с исполня...Вопрос № 40315: Уважаемые!
Спасите!
Замучился искать документацию по midi-формату,
может у кого есть ссылки?
или инфа?
Интересует структура файла, и как можно издать midi-звук из delphi,
не пользуясь готовым файлом?
Желательно по русски,<...Вопрос № 40323: Добрый вечер.
Помогите решить вопрос. Есть на форме memo1, memo2, memo3, Edit1 и кнопка.
В каждый из Мемо загружаю разный текст. Нужно произвести поиск.
Т.е. ввожу в Edit например слово «Коля», проверяется сначала memo1, если текст не най...Вопрос № 40332: Здравствуйте! Подскажите, пожалуйста, как сделать хороший help к приложению? Может, есть какие-нибудь программы, которые упростят задачу?...Вопрос № 40338: Здравствуйте! Подскажите, пожалуйста, как при создании отчета в Excel сразу вывести его на печать, не показывая? Заранее спасибо!!!...Вопрос
№ 40341: Здравствуйте!
Подскажите как правильно сделать вычисление циклом
От центра окружности с заданным колличеством точек и смещением 1-ой точки,
нужно найти каждую координату точки по осям X и Y
Вывести в мемо.
procedure TForm1.Bu...
Вопрос № 40.306
Здравствуйте, эксперты!
Есть такая проблема:
я написал прогу, которая при старте windows проверяет не наступил ли случаем
понедельник. Если наступил, то выводит в Мемо текст из файла мемо.txt
(файл находится в каталоге рядом с исполняемой программой)
Если я засовываю ярлик в автозагрузку, то проблем не возникает, а если пишу в реестр windows, то она она при загрузке ищет файл мемо.txt в профиле юзера(%userprofile%) и говорит что его там нет (и, действительно, нет!)
Очень надо запускать через реестр, чтобы всякие юзеры не выкинули ярлык из автозагрузки.
Абсолютный путь к файлу писать очень не желательно,
текст может часто меняться(писать его внутри проги не надо)
Вопрос: что делать?
(Delphi7, WinXP)
Отправлен: 14.04.2006, 20:41
Вопрос задал: Mo-skin (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, Mo-skin!
Просто вычисляйте абсолютный путь во время выполнения программы. Если я правильно понял, текстовый файл находится в каталоге с программой. Тогда всё просто:
Видимо, при запуске Windows указывает текущую директорию как %userprofile%.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Tamashev Denis M
Здравствуйте, Mo-skin!
Вопрос неочень понял !
Вот код прописания в реестор в раздел авто загрузки !
var
REG:Tregistry;
begin
REG:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
ReG.OpenKey('SOFTWAREMicrosoftWindowsCurrentVersionRun',true);
REg.WriteString('programma','C:Windowshello.exe');
reg.Free;
//Добавти Registry в uses !!!
Ответ отправил: Tamashev Denis M (статус: 2-ой класс)
Ответ отправлен: 14.04.2006, 20:52 Оценка за ответ: 3
Отвечает: Diman_A
Здравствуйте, Mo-skin!
Ты не написал, как ты загружаешь файл. Если он у тебя постоянно в каталоге программы и имеет постоянное имя, можно получить путь к нему так:
ExtractFilePath(Application.ExeName) + 'мемо.txt'
По поводу автозапуска из реестра: в журнале "Хакер" #81 (качай с www.wisesoft.ru) есть статья "Методы автозапуска". В ней описано большинство способов автозагрузки.
Ответ отправил: Diman_A (статус: 8-ой класс)
Ответ отправлен: 15.04.2006, 06:23 Оценка за ответ: 5
Вопрос № 40.315
Уважаемые!
Спасите!
Замучился искать документацию по midi-формату,
может у кого есть ссылки?
или инфа?
Интересует структура файла, и как можно издать midi-звук из delphi,
не пользуясь готовым файлом?
Желательно по русски,
help Microsoft Multimedia Programmer's Reference есть, но я с англицким не дружу!
Help! Help! Help!
Отправлен: 14.04.2006, 22:49
Вопрос задал: Mo-skin (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Bochvarov NikB
Здравствуйте, Mo-skin!
Посмотри www.alan-warriner.co.uk у него фрии TMidiGen.
Ответ отправил: Bochvarov NikB (статус: 7-ой класс)
Ответ отправлен: 15.04.2006, 03:23 Оценка за ответ: 5
Вопрос № 40.323
Добрый вечер.
Помогите решить вопрос. Есть на форме memo1, memo2, memo3, Edit1 и кнопка.
В каждый из Мемо загружаю разный текст. Нужно произвести поиск.
Т.е. ввожу в Edit например слово «Коля», проверяется сначала memo1, если текст не найдет memo2, потом memo3. Если в каком-то из memo этот текст найден, то нужно чтобы появлялось сообщение типо: «Коля» найден в Memo2.
С Уважением, Максим
Отправлен: 15.04.2006, 00:42
Вопрос задал: Maximus (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Полховский Александр Владимирович
Здравствуйте, Maximus!
Поиск текста в memo осуществляйте функцией Pos для всех memo по очереди перебором строк в цикле for (ну или в каком удобнее).
for n:=1 to memo1.Lines.Count do
if Pos(edit1.Text, memo1.Lines[n-1])>0
then application.messageBox(pansichar('"'+edit1.Text+'" найдено в memo1'), 'Ура !');
for n:=1 to memo2.Lines.Count do
if Pos(edit1.Text, memo2.Lines[n-1])>0
then application.messageBox(pansichar('"'+edit1.Text+'" найдено в memo2'), 'Ура !');
for n:=1 to memo3.Lines.Count do
if Pos(edit1.Text, memo3.Lines[n-1])>0
then application.messageBox(pansichar('"'+edit1.Text+'" найдено в memo3'), 'Ура !');
--------- Спасём нашу хрупкую планету !
Отвечает: Mo-skin
Здравствуйте, Maximus!
Предлагаю сделать так:
информацию о том, что Коля в мемо2, а так-же что он начинается
с третьего символа 5-й строки выводить в Edit2
Короче смотри пример - там все понятно должно быть,
только мемо у меня всего два , думаю, третий сам припишешь!
Приложение:
--------- Чем больше женщину мы меньше,- тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус: 1-ый класс)
Ответ отправлен: 15.04.2006, 12:54
Вопрос № 40.332
Здравствуйте! Подскажите, пожалуйста, как сделать хороший help к приложению? Может, есть какие-нибудь программы, которые упростят задачу?
Отвечает: Diman_A
Здравствуйте, Андрющенко Вячеслав Васильевич!
Если тебе нужна справка в chm формате, то попробуй прогу htm2chm http://yarix.by.ru/htm2chm-3.0.9.3-en.exe Ссылку не проверял, если битая, то просто поищи на сайте http://yarix.by.ru/. Она компилирует ранее сделанные html-ки в chm. Только html нужно делать не в word-е, а то размер получается больше, чем надо.
Ответ отправил: Diman_A (статус: 8-ой класс)
Ответ отправлен: 15.04.2006, 06:23
Отвечает: AnD1
Здравствуйте, Андрющенко Вячеслав Васильевич!
Посмотрите здесь - статья как и на чем сделать help - http://www.xakep.ru/magazine/xs/053/048/1.asp
Ответ отправил: AnD1 (статус: 4-ый класс)
Ответ отправлен: 15.04.2006, 15:18
Вопрос № 40.338
Здравствуйте! Подскажите, пожалуйста, как при создании отчета в Excel сразу вывести его на печать, не показывая? Заранее спасибо!!!
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Андрющенко Вячеслав Васильевич!
Нашел пример (проверял аналогичный для WORDа, думаю этот тоже должен работать).
Пример взят из справки программы Delphi World 6 (http://delphiworld.narod.ru/) -
скачай - не пожалеешь.
Здравствуйте!
Подскажите как правильно сделать вычисление циклом
От центра окружности с заданным колличеством точек и смещением 1-ой точки,
нужно найти каждую координату точки по осям X и Y
Вывести в мемо.
procedure TForm1.Button1Click(Sender: TObject);
var
t: real; // Колличество точек
g: real; // Градусы для смещения 1-ой точки
m: real; // Минуты
s: real; // Секунды
xx: real; // Координата Х центра окружности
yy: real; // Координата Y центра окружности
c: integer; // челое число
d: integer; // дробное число
r: real; // Радиус
n: real;
v: real; // вычисления
xxa: real; // вычисления
yya: real; // вычисления
begin
// получить исходные данные из полей ввода
xx:= StrToFloat(Edit1.Text); // Координата Х центр окружности
yy:= StrToFloat(Edit2.Text); // Координата Y центр окружности
g:= StrToFloat(Edit3.Text); // Градусы (смещение 1-ой точки)
m:= StrToFloat(Edit4.Text); // Минуты
s:= StrToFloat(Edit5.Text); // Секунды
t:= StrToFloat(Edit6.Text); // Колличество точек
r:= StrToFloat(Edit7.Text); // Радиус
// предварительные преобразования
c:= Trunc(t); // это целая часть числа t
d:= Trunc(t/2) mod 10000; // это дробная часть числа t
// вычисление
v:=360/t+((g+(m/60+(s/3600)))*pi/180);// Угол от колличества точек
for n = 1 to t
then
// begin
xx:= r*cos(v);// Радиус на косинус угла v
//xxa:= xx+1; // Шаг на следующую точку по х
yy:= r*sin(v);// Радиус на синус угла v
//yya:= yy+1; // Шаг на следующую точку по y
// вывод результата
Memo1.Lines.Add(FloatToStrF(xxa,yya,ffFixed,5,4) + '');// вывод по осям X и Y
end;
//end;
Отправлен: 15.04.2006, 10:27
Вопрос задал: Serhik_z (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Ерёмин Андрей
Здравствуйте, Serhik_z!
Если я правильно понял, нужно рассчитать координаты каждой из точек окружности... В этом случае на помощь приходит геометрическое уравнение окружности: X2 + Y2 = R2.
Соответственно, просчёта никаких градусов и не нужно.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Полховский Александр Владимирович
Здравствуйте, Serhik_z!
Вам нужно находить координаты точки, имеющей определёное смещение относительно оси Y.
Для начала найдём интервал в градусах, на который будет увеличиваться смещение:
deltaD:=360/N;//N - количество точек
Теперь выведем формулу для рассчёта координат:
X=xx+R*cos(g+deltaD*t);
Y=yy+R*sin(g+deltaD*t);
Если мы используем все углы в градусах, то для делфи это будет выглядеть так (в делфи параметрами функций sin и cos являются углы в радианах, а не в градусах):
for t:=0 to N-1 do
begin
xxa:=xx+R*cos(pi*(g+deltaD*t)/180);
yya:=yy+R*sin(pi*(g+deltaD*t)/180);
memo1.Lines.Add(FloatToStrF(xxa)+' : '+Floattostr(yya));
end;
Только t объявляйте как целочисленную, ибо это количество точек, что не может быть дробным числом. Если же имеется в виду количесиво целых отрезков, на которые надо поделить окружность, то возможен вариант и с t:real. Тогда нужно разбить t на целую часть и на дробную часть (как Вы и сделали), цикл пустить по целому значению, а после цикла подсчитать ещё одно значение для исходного t (т.е. дробного), либо для нулевого смещения (результат будет таким же).
--------- Спасём нашу хрупкую планету !