Вопрос № 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 Комментарий оценки: Спасибо