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

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


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

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

Выпуск № 800
от 05.05.2007, 02:35

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


Вопрос № 84654: Здравствуйте! Не могли бы вы порекомендовать какой-нибудь компонент для извлечения иконок из exe и dll файлов....
Вопрос № 84669: Здравствуйте, уважаемые эксперты! Обращаюсь к вам за помощью. На Delphi необходимо реализовать редактор текстов. В общем, все страндартные кнопки (открыть, печать, сохранить, поиск, замена и т. д.) у меня получились. Это было не очень сложно....
Вопрос № 84673: Доброго времени! Возник вопрос по поводу nt сервисов в Delphi. Когда я создаю буквально пустой сервис, устанавливаю его и запускаю он работает, а если я на onStart onStop и т.д. добавляю кието действия то при запуске система пишет что сервиз ...
Вопрос № 84694: Здраствуйте. Я никак не могу понять, что у меня не так? Выдает ошибку и в Delphi 7 и в Borland Developer Studio 2006. Подскажите, что исправить. Фотка ошибки - http://neo500.narod.ru/error.jpg...
Вопрос № 84735: Здравствуйте! У меня есть класс. Нужно, чтобы он стал компонентом. Что для этого нужно сделать? Уже все забыл на эту тему, поэтому такой вопрос....

Вопрос № 84.654
Здравствуйте! Не могли бы вы порекомендовать какой-нибудь компонент для извлечения иконок из exe и dll файлов.
Отправлен: 29.04.2007, 07:31
Вопрос задал: Red Spirit (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Савенко Вадим Иванович
Здравствуйте, Red Spirit!
Для извлечения иконок имеются функции ExtractAssociatedIcon и ExtractIcon. Информацию по их применению можете найти через Яндекс. Еще имеется компонент SysImageList (www.delphiarea.com)
Ответ отправил: Савенко Вадим Иванович (статус: Студент)
Ответ отправлен: 29.04.2007, 09:19
Оценка за ответ: 4

Отвечает: LEXASOFT
Здравствуйте, Red Spirit!

Функция ExtractIcon позволяет извлечь иконку из exe, dll и ico-файлов. Если указанная иконка отсутствует, функция возвращает 0. Количество иконок, содержащихся в файле, можно узнать, указав в качестве последнего параметра –1.
uses ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
var
ic: TIcon;
i, count: integer;
w: integer;
begin
if OpenDialog1.Execute = false then
Exit;
Form1.Canvas.FillRect(Form1.Canvas.ClipRect);
count := ExtractIcon(Application.Handle,
PChar(OpenDialog1.FileName), -1);
ic := TIcon.Create;
w := Form1.Width div 32;
for i := 0 to count - 1 do
begin
ic.Handle := ExtractIcon(Application.Handle,
PChar(OpenDialog1.FileName), i);
Form1.Canvas.Draw(32 * (i mod w), 32 * (i div w), ic);
end;
ic.Destroy;
end;
Ответ отправил: LEXASOFT (статус: 2-ой класс)
Ответ отправлен: 30.04.2007, 05:23
Оценка за ответ: 5
Комментарий оценки:
Хороший пример, но компилятору не нравится, когда в параметрах функции указываешь -1.


Вопрос № 84.669
Здравствуйте, уважаемые эксперты!
Обращаюсь к вам за помощью.
На Delphi необходимо реализовать редактор текстов. В общем, все страндартные кнопки (открыть, печать, сохранить, поиск, замена и т. д.) у меня получились. Это было не очень сложно. а вот специфические кнопки не получаются.
1. Нужно на панель добавить кнопку, позволяющую переставить строки по правилу первая – последняя, вторая – предпоследняя, третья с начала – третья с конца.
2. На панель добавить кнопку, позволяющую сохранить в файле ‘proba.txt’ K строк начиная с L-ой.
Буду очень благодарна за ответ.
Отправлен: 29.04.2007, 12:07
Вопрос задал: Alenkakiss (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Bingo
Здравствуйте, Alenkakiss!
Все достаточно просто, если в качестве редактора использовать TMemo. В основном работа идет со свойством TStrings.
1. Перестановка строк:
----
procedure TForm2.Button1Click(Sender: TObject);
var i:longint;s:string;
begin
for i := 0 to (memo1.Lines.Count - 1)div 2 do begin
s:=memo1.Lines.Strings[i];
memo1.Lines.Strings[i]:=memo1.Lines.Strings[memo1.Lines.Count - 1-i];
memo1.Lines.Strings[memo1.Lines.Count-1-i]:=s;
end;
end;
----
2. Сохранение в файл:
----
procedure TForm2.Button2Click(Sender: TObject);
const k=3;l=2;
var i:longint;
begin
assignfile(output,'C:proba.txt');
rewrite(output);
for I := l-1 to l+k-2 do begin
writeln(memo1.Lines.Strings[i]);
end;
closefile(output);
end;
-----
Думаю, Вы сможете самостоятельно разоборбраться с процедурами.
---
Удачи!
---------
C темным пивом в светлое будущее!
Ответ отправил: Bingo (статус: 4-ый класс)
Ответ отправлен: 29.04.2007, 13:49
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое за ответ! Очень доступно и понятно все объяснили.


Вопрос № 84.673
Доброго времени!
Возник вопрос по поводу nt сервисов в Delphi.
Когда я создаю буквально пустой сервис, устанавливаю его и запускаю он работает, а если я на onStart onStop и т.д. добавляю кието действия то при запуске система пишет что сервиз запущет а затем останвлен изза того что ему нечего делать!!
Читал хелпы и даже пробовал переписать оттуда пример но сервис всеравно останавливаетса.
Отправлен: 29.04.2007, 12:54
Вопрос задал: Даниил (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: din
Здравствуйте, Даниил!
1. Мой Вам совет изначально сделайте полную реализацию в обычном приложении и затем переносите свою логику в сервис, это сильно сокращает затрачиваемое время.
2. Раз уж Вы сделали уже сервис, то в свойствах для данной службы разрешите взаимодействие с рабочим столом (Свойства->Вход в Систему-> галочка "Разрешить взаимодействие с рабочим столом" ), после этого Вы можете обрабатывать исключения или просто отслеживать работу выводя информацию через обычный ShowMessage.
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: din (статус: Практикант)
Ответ отправлен: 29.04.2007, 13:51


Вопрос № 84.694
Здраствуйте.

Я никак не могу понять, что у меня не так? Выдает ошибку и в Delphi 7 и в Borland Developer Studio 2006. Подскажите, что исправить. Фотка ошибки - http://neo500.narod.ru/error.jpg

Приложение:

Отправлен: 29.04.2007, 15:55
Вопрос задал: Alxx (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Denisss

Здравствуйте, Alxx!

Нужно прописать в uses модуль IdSocketHandle.

Удачи!
Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
WWW: Хлама много, по сути ничего...
ICQ: 281599577
----
Ответ отправлен: 29.04.2007, 23:12
Оценка за ответ: 5


Вопрос № 84.735
Здравствуйте!
У меня есть класс. Нужно, чтобы он стал компонентом. Что для этого нужно сделать? Уже все забыл на эту тему, поэтому такой вопрос.
Отправлен: 29.04.2007, 21:07
Вопрос задал: Troyan (статус: 9-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: monah
Здравствуйте, Troyan!
Для этого необходимо в Делфи создать компонент. Меню Component/New и затем перенести Ваш класс в полученый модуль. После этого выбрать пункт install для установки компонента в палитру Делфи. Если нет необходимости его устанавливать в палитру, то можно просто создать его как наследника от TComponent, но в этом случае он не будет достпуен для редактирования на этапе разработки кода. Вобщем же, тема настолька обширна, что охватить ее в одном ответе не представляется возможным.
---------
festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 29.04.2007, 22:26
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Denisss
Здравствуйте, Troyan!

Чтобы Ваш класс стал компонентом, он должен быть наследником класса TComponent (type TMyClass = class(TComponent)). Кроме того, нужно в модуль добавить процедуру регистрации этого класса:

...
procedure
Register;

implementation

procedure
Register;
begin
RegisterComponents('Имя_закладки', [Имя_класса]);
end;
...

После этого нужно установить компонент:
Component - New Component..., указать файл с классом (компонентом) (Unit file name) и нажать Install....
Если в Вашем классе нет ошибок, то он нормально инсталлируется в виде компонента, о чем Delphi Вас оповестит.

Удачи!
Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
WWW: Хлама много, по сути ничего...
ICQ: 281599577
----
Ответ отправлен: 29.04.2007, 23:04
Оценка за ответ: 5
Комментарий оценки:
Спасибо


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 (beta) от 02.05.2007
Яндекс Rambler's Top100

В избранное