Вопрос № 43789: Добрый вечер.
Есть проблема.
При установке компонентов выдается ошибка
[Error] CORELBUT.PAS(25): Unit identifier 'CorelButton' does not match file name
[Fatal Error] dclusr.dpk(37): Could not compile used unit 'CorelbtnCORELBUT.PAS'<...Вопрос № 43793: Здравствуйте эксперты !
Вопрос такой к Вам:
есть у меня файл Exelевский, как мне использовать из программы, чтобы
работать с ним как с шаблоном, и подставлять свои значения только в определенные ячейки этого файла.
Буду рад приме...Вопрос № 43799: Здравствуйте, уважаемые эксперты!
У меня есть простая программа, которая последовательно перебирает все текстовые файлы {FindFirst, FindNext} в своей папке, открывает их, читает {AssignFile, Reset, ReadLn}, и, выудив какую-то информацию, сохраняе...Вопрос № 43829: Здравствуйте, господа Эксперты! Возник такой вопрос: имеется несколько Label`ов, при наведении каждый должен менять цвет и подчеркиваться. Можно ли прописать это в одно отдельную поцедуру, а не писать для каждого OnMouseEnter? Присвоить
через Object ...Вопрос № 43832: Здравствуйте, уважаемые эксперты.
Вы не подскажите, что это за структура - "TOverlapped"
Как и где ее используют?
Заранее благодарен....Вопрос № 43853: Здраствуйте эксперты! вопрос в следуещем: как сделать окно допустим в виде трапеции и чтобы оно не было видимым + на форму поместить *.gif рисунок. Желательно приведите пример. Заранее спасибо...
Вопрос № 43.789
Добрый вечер.
Есть проблема.
При установке компонентов выдается ошибка
[Error] CORELBUT.PAS(25): Unit identifier 'CorelButton' does not match file name
[Fatal Error] dclusr.dpk(37): Could not compile used unit 'CorelbtnCORELBUT.PAS'
итак любая компонента. Подскажите вчем моя ошибка или ошибка в установке.
Delphi 6
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Алексеев Александр Владимирович!
Я думаю, что дело в том, что основной unit компонента называется CORELBUT.PAS, а в тексте модуля стоит строка: unit CorelButton.
Сделайте оба имени одинаковыми - будет работать.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: 6-ой класс)
Ответ отправлен: 22.05.2006, 01:05 Оценка за ответ: 5 Комментарий оценки: Огромное спасибо. Все получилось
Вопрос № 43.793
Здравствуйте эксперты !
Вопрос такой к Вам:
есть у меня файл Exelевский, как мне использовать из программы, чтобы
работать с ним как с шаблоном, и подставлять свои значения только в определенные ячейки этого файла.
Буду рад примеру или ссылке на пример.
Заранее спасибо.
Дельфи 7.
Для записи в какую либо ячейку, просто присвойте ей соответствующее значение. Лучше всего Excel "понимает" строки, поэтому при записи чисел лучше присваивать IntToStr(integer);
Описанный метод подключения к экселю - позднее связывание. Метод не самый лучший. Если будете писать какие-то серьезные приложения, то используйте подключения к OLE Automation Servers с помощью компонент TExcelApplication, TExcelDocument etc. Тем более, что это худо-бедно описано в Delphi help, а так придется каждый раз лезть в инет, чтобы узнать, как сделать то-то и то-то.
Отвечает: RSV
Здравствуйте, Муратов Радик Анатольевич/Мустафа!
Работа с Excel хорошо описана на Королевстве Делфи ( http://www.delphikingdom.com/asp/section.asp?id=16 ) в статьях "По волнам интеграции"
Ответ отправил: RSV (статус: 1-ый класс)
Ответ отправлен: 23.05.2006, 14:13
Вопрос № 43.799
Здравствуйте, уважаемые эксперты!
У меня есть простая программа, которая последовательно перебирает все текстовые файлы {FindFirst, FindNext} в своей папке, открывает их, читает {AssignFile, Reset, ReadLn}, и, выудив какую-то информацию, сохраняет все в еще один некий файл в той же папке. Алгоритм обработки несложный. Фактически, файлы являются документами хтмл и программа читает внутренний текст некоторых тегов.
В частности, в приведенном ниже примере она обрабатывает ~700 файлов, каждый размером 30-100кб.
Внимание, вопорс: Почему на машинах c непринципиально различной конфигурацией, скорость принципиально различная?
Детали конфигураций в приложении.
Дополнительный вопорс: как переписать программу(мб использовать TFileStream?), чтобы на машине с более "медленной" конфигурацией работало не так медленно?
Буду рад получить полезные ссылки по тематике данного вопроса.
Отвечает: Николай Б.
Здравствуйте, Сухомлин Кирилл Владимирович!
Не согласен: конфигурация очень даже различается!
Если представить, что у Вас такие параметры:
проц: AMD Barton 2.2GHz / intel Celeron 2.0GHz
память: 2x512MB DDR400 / 512MB DDR400
....
то на первой машине уже выигрыш в скорости получается в 2 раза, особенно, если учитывать, что Delphi-приложения используют много ОЗУ.
А на изменении скорости:
проц: AMD Barton 3200+ GHz / intel Celeron 2.0GHz
память: 2x512MB DDR400 / 512MB DDR400
Получается остальной выигрыш.
Ещё хочу обратить Ваше внимание на следующее: процессор celeron 2.0 GHz слабее, чем проц. AMD 2.0 GHz! (т.к. у первого кэш меньше).
Удачи!
--------- Недавно прошёл тест на IQ. Результат отрицательный.
Ответ отправил: Николай Б. (статус: 9-ый класс)
Ответ отправлен: 22.05.2006, 06:10
Отвечает: sir henry
Здравствуйте, Сухомлин Кирилл Владимирович!
Категорически не согласен на счет непринципиального различия - оно более чем принципиальное. Celeron, даже по сравнению с Sempron с аналогичной частотой, работает заметно медленнней. П уж если речь идет о сравнении его AMD Barton, ну это примерно как Волга ГАЗ-24 и BMW пятерка. :)
Попробуйте загружать файлы в StringList. У этого компонента есть метод Find, который позволит Вам быстро отыскивать необходимые тэги. Мало того, в этом компоненте Вы можете обрабатывать строки в произврльном порядке, в отличие от непосредственно текстового файла, где все строки обрабатываются последовательно.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 22.05.2006, 06:25
Вопрос № 43.829
Здравствуйте, господа Эксперты! Возник такой вопрос: имеется несколько Label`ов, при наведении каждый должен менять цвет и подчеркиваться. Можно ли прописать это в одно отдельную поцедуру, а не писать для каждого OnMouseEnter? Присвоить через Object Inspector Event нельзя. Заранее спасибо!
Отправлен: 22.05.2006, 11:15
Вопрос задал: Neiroman (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Проходящий Мимо
Здравствуйте, Neiroman!
Присвоить через Object Inspector прекрасно получается, когда создаете обработку события для OnMouseEnter или OnMouseLeave в инспекторе появляется строка вида Label1MouseEnter. Нужно стать на Label2, напротив нужного события в инспекторе из выпадающего меню выбрать нужное, созданое для Label1. А в обработчиках событий ввести следующий код:
procedure TFMain.Label1MouseEnter(Sender: TObject);
begin
(Sender as TLabel).Font.Style := (Sender as TLabel).Font.Style + [fsUnderline];
(Sender as TLabel).Font.Color := clBlue;
end;
procedure TFMain.Label1MouseLeave(Sender: TObject);
begin
(Sender as TLabel).Font.Style := (Sender as TLabel).Font.Style - [fsUnderline];
(Sender as TLabel).Font.Color := clBlack;
end;
Удачи!
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 4-ый класс)
Ответ отправлен: 22.05.2006, 11:37
Отвечает: Caleb
Здравствуйте, Neiroman!
Не понятно одно, почему нельзя присваивать одно событие к остальным label'ам через Object Inspector?
создаете процедуру для одного Label'а и затем присваеваете ее к остальным.
У меня все работало. В общем в приложении показан пример, с присвоением процедуры обработки мыши в ручную (Программным методом).
Создайте новый проект, киньте на него 4 label'а (Только не переменовывайте их), затем замените текст проекта на тот, что в приложении и поставьте в Object Inspector событие onformCreate для Form1 равному процедуре formcreate
Удачи.
P.S. Если и Label'ы создавать в ручную, то программу можно организовать циклом и тогда несколько строк программы будет нормально работать хоть для 1000 динимически созданных label'oв.
Приложение:
Ответ отправил: Caleb (статус: 1-ый класс)
Ответ отправлен: 22.05.2006, 13:25
Отвечает: sir henry
Здравствуйте, Neiroman!
Если нельзя присвоить в DesignTime то сделайте это в RunTime. Просто напишите процедуру, выполняющую необходимый действия, а в коде модуля напишите:
Var
Labels: array[0..9] of TLabel;
Begin
For i:=0 To Length(Labels)
Label[i].OnMouseEnter:=MyProc;
End;
Где MyProc и будет написаная Вами процедура.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 22.05.2006, 13:52
Отвечает: Serg_6667
Здравствуйте, Neiroman!
Возможно такое решение:
создаете отдельную процедуру-обработчик. Например proc(....).
Параметры должны соответствовать.
В FormCreate или FormActivate прописываете:
label1.onmouseenter := proc;
label2.onmouseenter := proc;
label3.onmouseenter := proc;
Еще проще - зажимаете Shift, выделяете все нужные лэйблы, открываете Objecr Inspector вкладку Events и щелкаете в поле OnMouseEnter. Так тоже будет работать
Ответ отправил: Serg_6667 (статус: 1-ый класс)
Ответ отправлен: 22.05.2006, 16:37
Отвечает: RSV
Здравствуйте, Neiroman!
procedure TForm.LabelMouseEnter(Sender: TObject);
begin
TLabel(Sender).Color:= clNavy;
TLabel(Sender).Font.Color:= clYellow;
end;
Для каждого Label событие OnMouseEnter -> LabelMouseEnter.
Ответ отправил: RSV (статус: 1-ый класс)
Ответ отправлен: 23.05.2006, 14:37
Вопрос № 43.832
Здравствуйте, уважаемые эксперты.
Вы не подскажите, что это за структура - "TOverlapped"
Как и где ее используют?
Отвечает: sir henry
Здравствуйте, Solodov Evgeniy Vladimirovich!
Описание этой структуры Вы можете посмотреть в справке по WinAPI (прилагается к Дельфи). Эта структура используется как параметр к тем функциям, который оперируют асинхронным вводом/выводом, например GetOverlappedResult() - эта функция возвращает результат работы с файлом-портом-каналом. Т.е. можно пустить самотеком выполнятся какие-либо файловые операции, а самому время от времени проверять результат, а не ждать, когда этот результат будет, в случае синхронноно обращения к файлу.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 22.05.2006, 13:46 Оценка за ответ: 5 Комментарий оценки: спасибо за ответ
Вопрос № 43.853
Здраствуйте эксперты! вопрос в следуещем: как сделать окно допустим в виде трапеции и чтобы оно не было видимым + на форму поместить *.gif рисунок. Желательно приведите пример. Заранее спасибо
Отправлен: 22.05.2006, 14:09
Вопрос задал: Barbos (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Gh0stik
Здравствуйте, Barbos!
Смотрите приложение в котором как Вы и просили рисуется окно в виде трапеции.
По поводу "...чтобы оно не было видимым ..." - Form1.Visible:=False;
Приложение:
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаються события на земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: 8-ой класс)
Ответ отправлен: 22.05.2006, 16:03
Отвечает: Serg_6667
Здравствуйте, Barbos!
На счет прозрачности окна. Может, поможет.
http://soft32.ru/delphi.shtml?topic=app&title=transparent_win
Ответ отправил: Serg_6667 (статус: 1-ый класс)
Ответ отправлен: 22.05.2006, 16:48
Отвечает: Ерёмин Андрей
Здравствуйте, Barbos!
Окно нестадартной формы делается с помощью регионов - формируется группа необходимых контуров. А ещё есть хороший компонент: Shaped Form. Также прочтите вот эту статью: http://www.delphi.int.ru/?name=articles&action=view&articleid=4
Для размещения gif-изображения на форме воспользуйтесь следующим компонентом: Gif Image.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.