Вопрос № 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