Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1000
от 07.12.2007, 10:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 441, Экспертов: 64
В номере:Вопросов: 5, Ответов: 8


Вопрос № 111842: Приветствую. У меня такой вот вопросик есть по Делфи. (очень важный для меня...) Я - начинающий Делфист. Решил сделать программу для автозапуска с диска. Ну, в общем, все как надо сделал; кнопки, оформление, музыку пустил при открытие формы....
Вопрос № 111854: Просмотрев некоторое количество книг, пришел к выводу, что при компиляции, переменные в сегменте данных должны выравниваться в соответствии с их размером (word - по четным адресам, integer - по адресам, кратным 4, exetended - по адресам, кратным 8 и ...
Вопрос № 111857: Добрый день уважаемые эксперты. Я пытаюсь самостоятельно изучить Delphi, так как имеется опыт работы с Turbo Pascal. Учусь по книге, в которой изложена просто теория. Дайте, пожалуйста, ссылки на учебники для скачивания по этому языку, в которых есть...
Вопрос № 111899: Здравствуйте, уважаемые эксперты! Каким образом можно сделать скриншот содержимого экрана и сохранить в файл *.bmp, НО причем так, чтобы на картинке отображались ПРОЗРАЧНЫЕ ОКНА, т.е. так, как это делает клавиша Print Screen, а через bi...
Вопрос № 111944: Здравствуйте. Помогите пожалуйста решить маленькую проблему. У меня есть файл IP.txt в нем в столбик хранятся IP адреса. В моей программе есть функция которая показывает IP адрес компьютера, в результате пусть будет это IP: string. Нужно сделать ...

Вопрос № 111.842
Приветствую. У меня такой вот вопросик есть по Делфи. (очень важный для меня...)
Я - начинающий Делфист. Решил сделать программу для автозапуска с диска. Ну, в общем, все как надо сделал; кнопки,
оформление, музыку пустил при открытие формы. Все работает, все запускается, НО: записал я программу и все файлы, что
прилагаются к ней, на диск, запускаю - НЕ РАБОТАЕТ! (когда папку с программой в компьютере не перемещал, работала, а
когда удалил, перестала) Не работает - и все! Выдает сообщение об ошибке: "Exception EMCIDeviceError in module Project1.exe at 0005AA2C.
Ошибка при инициализации MCI." Но я помню, что недавно я написал недавно подобную программу, и все нормально работало.
На диск записал - все было нормально.
Если кто-то знает, в чем тут дело, ПОЖАЛУЙСТА, ПОДСКАЖИТЕ,БУДУ ОЧЕНЬ РАД.

Приложение:

Отправлен: 01.12.2007, 11:40
Вопрос задал: Чечин Георгий Александрович (статус: 4-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Сычёв Павел Алексеевич
Здравствуйте, Чечин Георгий Александрович!
Я думаю, что если у вас эта программа работала до записи на диск, а счас нет, то вы в ней писали не относительные пути (например, к музыке, судя по ошибке), а обсолютные, т.е. вместо
ExtractfileDir(Application.ExeName)+'1.wav' писали 'C:Project1.wav'

Итог - Попробуйте везде заминить пути на относительные
Ответ отправил: Сычёв Павел Алексеевич (статус: 1-ый класс)
Ответ отправлен: 01.12.2007, 18:05
Оценка за ответ: 5
Комментарий оценки:
Спасибо огромное, если это сработает, то будет вообще супер! Прямо счас попробую что-то сделать...


Вопрос № 111.854
Просмотрев некоторое количество книг, пришел к выводу, что при компиляции, переменные в сегменте данных должны выравниваться в соответствии с их размером (word - по четным адресам, integer - по адресам, кратным 4, exetended - по адресам, кратным 8 и т.д.). Однако, при работе с Delphi 7 я обнаружил, что компилятор Delphi не выравнивает данные больше, чем на 4 байта. Вопрос: как заставить компилятор выполнять выравнивание хотя бы на 8 байтов (для соответствующих переменных). Dcc32 не предлагать (это тема другого вопроса).
Отправлен: 01.12.2007, 13:28
Вопрос задал: Ddogg (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 24)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Ddogg!

Тогда Вам нужно взять компьютер VAX-11, операционную систему VAX-VMS и т.д.,
которые выравнивали как данные, так и команды с точностью до байта. Правда с потерей производительности.

Delphi система 32-разрядная, поэтому будет выравнивать по минимальному адресуемому элементу - Int32.
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 01.12.2007, 13:39
Оценка за ответ: 2
Комментарий оценки:
ответ неправильный


Вопрос № 111.857
Добрый день уважаемые эксперты. Я пытаюсь самостоятельно изучить Delphi, так как имеется опыт работы с Turbo Pascal. Учусь по книге, в которой изложена просто теория. Дайте, пожалуйста, ссылки на учебники для скачивания по этому языку, в которых есть упражнения и очень желательно - задачи с вариантами их решения (для самопроверки). Заранее очень Вам признателен.
Отправлен: 01.12.2007, 14:34
Вопрос задал: Sokrat (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Дегтярев Антон Александрович
Здравствуйте, Sokrat!
http://www.programmersclub.ru/book - на мой взгляд отличные книги
---------
Знаете для чего нужен Яndex? для проверки работы интернета
Ответ отправил: Дегтярев Антон Александрович (статус: 3-ий класс)
Ответ отправлен: 01.12.2007, 14:39
Оценка за ответ: 5
Комментарий оценки:
Спасибо!!!


Вопрос № 111.899
Здравствуйте, уважаемые эксперты!
Каким образом можно сделать скриншот содержимого экрана и сохранить в файл *.bmp, НО причем так, чтобы на картинке отображались ПРОЗРАЧНЫЕ ОКНА, т.е. так, как это делает клавиша Print Screen, а через

bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, GetDC(0), 0, 0, SRCCOPY);

это не проходит так, как мне необходимо.
Отправлен: 01.12.2007, 19:52
Вопрос задал: Александр Леонидович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mishell
Здравствуйте, Александр Леонидович!
как вариант можно послать команду нажатия на Print Screen:
keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
после этого "вытащить" из буфера изображение:
bmp.Handle:=Clipboard.GetAsHandle(CF_bitmap);
и созхранить его в файл:
bmp.SaveToFile('C: est.bmp');
Ответ отправил: Mishell (статус: 8-ой класс)
Ответ отправлен: 03.12.2007, 11:34
Оценка за ответ: 5
Комментарий оценки:
Отлично! Спасибо!


Вопрос № 111.944
Здравствуйте.
Помогите пожалуйста решить маленькую проблему. У меня есть файл IP.txt в нем в столбик хранятся IP адреса. В моей программе есть функция которая показывает IP адрес компьютера, в результате пусть будет это IP: string. Нужно сделать проверку, если IP:string совпадает с одним из адресов в файле, значит скажем showmessage (‘IP найден’) иначе не найден.
P.S. Я писать начала. Загружаю файл в memo. А вот как проверку устроить не знаю :-(

Приложение:

Отправлен: 02.12.2007, 04:25
Вопрос задала: Комова Анна Николаевна (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Комова Анна Николаевна!
На самом деле МЕМО Вам не нужен, разве что Вы хотите полюбоваться собственными глазами на сам файл. :)
Просто для поиска в файле Вам подойдёт TStringList, начали Вы совершенно правильно:

Procedure FindIP(IP: string);
Var
FileOfIp: TStringList; //Здесь будет хранится файл с IP-шниками
i: integer;
Flag: Boolean; //Это флаг результата поиска
Begin
Flag:=False;
i:=0;

FileOfIp:=TStringList.Create;
FileOfIp.LoadFromFile('IP.txt'); //Загружаем файл IP-шников

//Проводим поиск, сравнивая каждую строчку файла с тем IP, который мы передали в процедуру в качестве параметра
While (not Flag) or (i<=FileOfIp.Count-1) Do
Begin
Flag:=IP=Trim(FileOfIp.Strings[i]);
Inc(i);
End;

//Любуемся результатом :)
If Flag Then
MessageBox(0, 'Ваш IP в файле найден.', 'Ура!', MB_OK+MB_ICONINFORMATION)
Else
MessageBox(0, 'Простите, очаровательная маде муазель, ничего не нашёл...', 'Увы...', MB_OK+MB_ICONSTOP);

FileOfIp.Free;
End;
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 02.12.2007, 06:47
Оценка за ответ: 4

Отвечает: Стома С.С.
Здравствуйте, Комова Анна Николаевна!

Процедуру проверки вам вставил и предлагаю вам на рассмотрение ваш вариант кода с коментариями
и свой выбирайте

Приложение:

Ответ отправил: Стома С.С. (статус: 2-ой класс)
Ответ отправлен: 03.12.2007, 11:41

Отвечает: Genia007
Здравствуйте, Комова Анна Николаевна! Проверка делается очень просто. К примеру по нажатию кнопки:

var i:word;
begin
for i:=0 to memo1.Lines.Count-1 do
if edit1.Text = memo1.Lines.Strings[i] then
begin
label1.caption:='IP найден';
break ;// немедленное прекращение цикла
end
else
label1.caption:='IP ненайден';
end;
Ответ отправил: Genia007 (статус: 1-ый класс)
Ответ отправлен: 03.12.2007, 13:43
Оценка за ответ: 5

Отвечает: Сычёв Павел Алексеевич
Здравствуйте, Комова Анна Николаевна!
Пример достаточно простой, но без мемо (не вижу в нём смысла, но если надо - добвьте наверх).

Приложение:

Ответ отправил: Сычёв Павел Алексеевич (статус: 1-ый класс)
Ответ отправлен: 03.12.2007, 17:28


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.65 от 04.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное