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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 112
от 01.05.2005, 02:40

Администратор:Калашников О.А.
В номере:Вопросов: 6, Ответов: 12


Вопрос № 20206: Помогите написать програмку для принятия/отправки данных на LPT порт. Читал много руководств, качал драйвер, но не работает прочему то и все. Если не сложно напишите с коментарием. P.S. у меня Delphi 7....
Вопрос № 20207: Маленький опрос: Кому какая книга из разряда "Delphi не для чайников" нравится? (ответ аргументируйте)!...
Вопрос № 20212: Проблема такая. Делаю инсерт в таблицу при помощи компонента TQuery. Напишу вкратце: Query1.SQL.Clear; Query1.SQL.Append('insert into t (field1) values (''01.01.2000 18:18:27'')'); Query1.ExecSql; Вываливается ошибка. При анализе ...
Вопрос № 20237: Я создаю иконку в Tray самостоятельно. (Ну без компонента). Пример в приложении. Но вот проблема. Можно ли сделать чтоб при надатии на меню если кликать куданить не по меню то она скрывалось? А то просто меню появляется но потом не исчезает до на...
Вопрос № 20242: Здравствуйте, уважаемые эксперты. Вопросы такие: как можно получить полные имена всех pas-файлов в текущем каталоге (в котором находится выполняемый exe-файл)? Как можно защитить исходники паролем? т.е. чтобы они открывались в Delphi, но сраз...
Вопрос № 20247: Вопрос таков: Мне надо выделить область памяти(динамической конечно же) размером, скажем 1МБ, а потом в нем тоже создавать и удалять области памяти. Как это возможно осуществить? Заранее благодарен за удачные идеи!...

Вопрос № 20206
Помогите написать програмку для принятия/отправки данных на LPT порт.
Читал много руководств, качал драйвер, но не работает прочему то и все. Если не сложно напишите с коментарием.
P.S. у меня Delphi 7.
Отправлен: 25.04.2005, 02:47
Вопрос задал: dfdfdf (статус: 9-ый класс)
Всего ответов отправлено: 2

Отвечает: Malish
Здравствуйте, dfdfdf!
Это без спец процедур для принтера:
var
hLpt: THandle;
ret: DWORD;
Address: byte;
Data: byte;
const
IOCTL_PAR_SET_WRITE_ADDRESS = $16001C;
procedure TForm1.FormCreate(Sender: TObject);
begin
hLPT := CreateFile('LPT1', GENERIC_WRITE, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
CloseHandle(hLpt);
end;
procedure TForm1.Button1Click(Sender: TObject);
Var S1:PChar;
begin
//Caption:=IntToStr(EOF);
S1 := 'This is without driver print'+#10;
WriteFile(hLpt, S1^, Length(S1), ret, nil);
Edit1.Text := IntToStr(ret);
end;
Захочешь узнать больше о LPT я перешлю тебе инфу и помогу разобраться что к чему. Я сейчас пишу прогу для работы с нестандартным устройством (тепловизором) с режимом ЕРР. Так что немного разобрался :)
Ответ отправил: Malish (статус: Студент)
Отправлен: 25.04.2005, 11:00
Оценка за ответ: 5
Комментарий оценки:
Разобраться было бы неплохо! Я тоже пишу нечто типа этого. Если не сложно кинь описание на nightmail@list.ru.

Отвечает: VBA
Здравствуйте, dfdfdf!
Скачай ShablonXP (напиши в любом поисковике).
Это драйвер и шаблон программы на Delphi для работы с LPT-портами.
Ответ отправил: VBA (статус: 1-ый класс)
Отправлен: 25.04.2005, 17:07


Вопрос № 20207
Маленький опрос: Кому какая книга из разряда "Delphi не для чайников" нравится? (ответ аргументируйте)!
Отправлен: 25.04.2005, 02:51
Вопрос задал: dfdfdf (статус: 9-ый класс)
Всего ответов отправлено: 2

Отвечает: Malish
Здравствуйте, dfdfdf!
"Delphi не для чайников" - одназначно не нравится. Очень тупо написано.
Я учился по А. Жуков "Изучаем Delphi" школьный компьютерный клуб компас издание Питер. После этого я сижу на справочнике Борис Карпов " Delphi. Специальный справочник". Еще наплохие книги автора Архангельский.
Ответ отправил: Malish (статус: Студент)
Отправлен: 25.04.2005, 11:25
Оценка за ответ: 5

Отвечает: VBA
Здравствуйте, dfdfdf!
Архангельский Программирование в Delphi X.
Есть описание практически всего(DDE, COM, Базы данных и т.д.)
Бобровский Delphi 5.
Разжованы все компоненты и их свойства.
Ответ отправил: VBA (статус: 1-ый класс)
Отправлен: 25.04.2005, 16:39
Оценка за ответ: 5


Вопрос № 20212
Проблема такая.
Делаю инсерт в таблицу при помощи компонента TQuery. Напишу вкратце:
Query1.SQL.Clear;
Query1.SQL.Append('insert into t (field1) values (''01.01.2000 18:18:27'')');
Query1.ExecSql;
Вываливается ошибка. При анализе выяснилось следующее чудо.
Значение Query1.Sql[0] равно '01.01.2000 18:18:27' (как и положено быть).
Значение Query1.Text равно '01.01.2000 18? (а тут фигня полная).
При замене символов ":" на другие, все нормально проходит.
При чем не все символы ":" так преображаются странно, но некоторые заменяются на "?" и все дальнейшие символы либо пропадают вовсе, либо идут через символы перевода строки $D$A, что естественно вызывает ошибку при вставке в БД.
Я так понимаю, что символы ":" трактуются Query как параметры, что как будь-то это параметризованный запрос. Как тогда указать, чтобы символ ":" воспринимался именно как обычный символ , а не управляющий символ?
P.S: при переходе на ADOQuery такого косяка не наблюдается. Только не надо советовать переходить на АДО, т.к.:
1) при работе с АДО встречался с проблемой, когда строковые поля усекаются до 8 символов при выборке из БД по непонятным причинам. При чем делаю запрос к одной таблице - получаю нормальные строки, при обращении к другой - усеченные. Поля в таблице имеют одинаковый тип данных.
2) А также при смене МДака глючили компоненты АДО.
Заранее всем откликнувшимся спасибо.
Отправлен: 25.04.2005, 09:48
Вопрос задал: guv (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: VBA
Здравствуйте, guv!
Возможно не совпадают региональные настройки с форматом данных в базе данных.
Ответ отправил: VBA (статус: 1-ый класс)
Отправлен: 25.04.2005, 17:10

Отвечает: rusfaq.ru
Здравствуйте, guv!
Можно попробовать заключать дату в одинарные кавычки, или использовать бинд-переменные.
Ответ отправил: rusfaq.ru (статус: 4-ый класс)
Отправлен: 25.04.2005, 21:00
Оценка за ответ: 4
Комментарий оценки:
Дата итак в кавычках. А про бинды - попробовать можно. Но все оказалось банальнее (хелп не до конца прочитал). Свойство ParamCheck=False - отключить проверку параметров (по умолчанию параметры включены).

Отвечает: ImDeath
Мое почтение, guv!
а как на счет:
Query1.SQL.Text := 'insert into t (field1) values (''01.01.2000 18:18:27'')';
Query1.ExecSql;
Ответ отправил: ImDeath (статус: 2-ой класс)
Отправлен: 26.04.2005, 23:03


Вопрос № 20237
Я создаю иконку в Tray самостоятельно. (Ну без компонента).
Пример в приложении. Но вот проблема. Можно ли сделать чтоб при надатии на меню если кликать куданить не по меню то она скрывалось? А то просто меню появляется но потом не исчезает до нажатия. Очень не приятно. Заранее спасибо.
А вот еще вопросики:
1. Как изменить настройки Windows Firewall из моей программы? А то блокирует уже в XP SP 2.
2. Как мне в меню создать рисунки заданного размера? Для смайликов.
3. Как мне узнать версию моего файла программы? FileVersion не работает выдает ошибку гад. :(

Приложение:

Отправлен: 25.04.2005, 20:04
Вопрос задал: Delphin (статус: 2-ой класс)
Всего ответов отправлено: 1

Отвечает: Stamm
Здравствуйте, Delphin!
Отвечу на третий Вопрос:
Попробуй функцию, указанную в приложении. Если не работает, проверь включена ли информация о проекте(ProjectOptionsVersion Info).Ксати, эта фукнция определяет версию любого файла. Для своего файла - FileVersion(application.ExeName);

Приложение:

Ответ отправил: Stamm (статус: 1-ый класс)
Отправлен: 26.04.2005, 17:16


Вопрос № 20242
Здравствуйте, уважаемые эксперты.
Вопросы такие: как можно получить полные имена всех pas-файлов в текущем каталоге (в котором находится выполняемый exe-файл)?
Как можно защитить исходники паролем? т.е. чтобы они открывались в Delphi, но сразу после загрузки выдавался запрос пароля?
Спасибо за ответы.
Отправлен: 25.04.2005, 21:47
Вопрос задал: Lichkaty Alexander (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: VBA
Здравствуйте, Lichkaty Alexander!
Используй функцию FindFirst() и FindNext();
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
function FindNext(var F: TSearchRec): Integer;
Path - Путь поиска. В твоем случае: ExtractFilePath(Application.ExeName).
Attr - Атрибуты файлов (faReadOnly, faHidden, faSysFile, faVolumeID, faDirectory, faArchive, faAnyFile).
F - структура, задающая различные режимы поиска файлов.
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;
Ответ отправил: VBA (статус: 1-ый класс)
Отправлен: 26.04.2005, 11:21

Отвечает: And1
Здравствуйте, Lichkaty Alexander!
1. Функции FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer; и FindNext(var F: TSearchRec): Integer;
Path - директория поиска
Attr - Атрибуты (только чтение, скрытый, системный и т.п.)
F - режим поиска (по времени, размеру и др.)
2. Delphi не может установить пароль на исходник, можно только зашифровать сами исходники (если хотите, могу выслать исходник программы-шифратора алгоритм RC4, только укажите e-mail)
Ответ отправил: And1 (статус: 1-ый класс)
Отправлен: 26.04.2005, 14:55

Отвечает: ImDeath
Мое почтение, Lichkaty Alexander!
А можно узнать, зачем?
Ответ отправил: ImDeath (статус: 2-ой класс)
Отправлен: 26.04.2005, 23:09


Вопрос № 20247
Вопрос таков: Мне надо выделить область памяти(динамической конечно же) размером, скажем 1МБ, а потом в нем тоже создавать и удалять области памяти. Как это возможно осуществить? Заранее благодарен за удачные идеи!
Отправлен: 26.04.2005, 01:20
Вопрос задал: Master135 (статус: 3-ий класс)
Всего ответов отправлено: 1

Отвечает: And1
Здравствуйте, Master135!
Смотря для какого типа данных. И реализовать всё это лучше на ассемблере (ассемблерными вставками), быстрее работать будет ;-). А вообще, кажется, существуют специальные API-функции для выделения (работы/удаления) памяти вашему приложению.
Ответ отправил: And1 (статус: 1-ый класс)
Отправлен: 26.04.2005, 15:03


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться

В избранное