Вопрос № 52280: Здравствуйте уважаемые эксперты !
Подскажите:
1) есть ли готовый драйвер для Delphi, с помощью которого можно вести обмен данными с устройством через порт USB из программы;
2) можно ли вообще из программы написанной на Delphi вести обмен...Вопрос № 52290: Эксперты, подскажите - не знаю с чего начать...
Нужно на форме сделать матрицу (размерность запрашивается) и по щелчку на ячейке матрицы она либо меняла цвет либо как то по другому отображала - по повторному щелчку инвертировалась. (т.е. сос...Вопрос № 52317: В свойствах проекта задаеться информация о разработчике, версии продукта, build... А как сделать что бы эти вседения можно было отобразить в программе? Если можно то с небольшим примером....Вопрос № 52357: Здравствуйте,
уважаемые эксперты!
Вопрос такой: Есть Label фиксированных размеров, с установленным начальным шрифтом и AutoSize:=false.
Как проверить помещается ли текст в Label? И если не помещается, то уменьшать размер шрифта до тех пор, п...Вопрос № 52374: Здравствуйте, Уважаемые эксперты!
В папке с моей программой находится текстовый файл как его скопировать в папку Temp Windows'a. Проблема заключается в том, как найти путь к этой папке Temp. Явное указание пути типа C:WindowsTemp не подход...
Вопрос № 52.280
Здравствуйте уважаемые эксперты !
Подскажите:
1) есть ли готовый драйвер для Delphi, с помощью которого можно вести обмен данными с устройством через порт USB из программы;
2) можно ли вообще из программы написанной на Delphi вести обмен данными с устройством через порт USB и если да, то как это запрограммировать ?
Заранее всех благодарю.
Геннадий.
Отправлен: 16.08.2006, 08:11
Вопрос задал: Geb2003 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Савенко Вадим Иванович
Здравствуйте, Geb2003!
Посмотрите здесь:
http://www.vr-online.ru/download.php?det=41
Это компонент с исходниками, размер 518 Кб.
Ответ отправил: Савенко Вадим Иванович (статус: 7-ой класс)
Ответ отправлен: 16.08.2006, 08:35 Оценка за ответ: 5
Вопрос № 52.290
Эксперты, подскажите - не знаю с чего начать...
Нужно на форме сделать матрицу (размерность запрашивается) и по щелчку на ячейке матрицы она либо меняла цвет либо как то по другому отображала - по повторному щелчку инвертировалась. (т.е. состояние ячейки тока два выделена не выделена). И что бы состояние яцейки можно было изменить не только щелчком но и программно...
Ну например в Image Editor тот что в комплекте с Delphi идет - только мне нужно гораздо проще... Подскажите может компонент какой готовый есть или в какую сторону копать? Буду благодарен за любые ответы !
Отправлен: 16.08.2006, 09:18
Вопрос задал: Sniffer (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Sniffer!
Непонятно назначение матрицы, но можно сделать так:
1. Объявить безразмерный массив типа TButton,
2. Ввести програмно кол-во элементов матрицы.
3. С помощью SetLength() установить размер массива по введенным значениям.
4. Записать процедуру для OnClick кнопок. В ней будет что-то типа следующего:
Procedure ButtonsOnClick(Sender: TObject);
Begin
If (Sender As TButton).Color=clBtnFace Then {Это стандартный цвет}
(Sender As TButton).Color:=clBlue {Меняем цвет на другой}
Else
(Sender As TButton).Color=clBtnFace; {Иначе опять стандартный ставим}
End;
4. Програмно создать кнопки на форме. Здесь размеры и координаты Вы уж сами подберете. При создании назначаем им нашу процедуру:
Var
MyButtons: array of TButtons;
Begin
SetLength(MyButtons, Row, Column);
For i:=0 To Row Do
For j:=0 To Column Do
Begin
MyButtons[i, j]:=TButton.Create(Form1);
MyButtons[i, j].Parent:=Form1;
{Далее определяем координаты и размеры}
...
MyButtons[i, j].OnClick:=ButtonsOnClick; {Назначаем процедуру на нажатие кнопки}
MyButtons[i, j].Visible:=True;
End;
End;
Ну вот, в принципе, и все.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 16.08.2006, 10:36 Оценка за ответ: 5 Комментарий оценки: Спасибо !!!! Итнересный вариант !
Вопрос № 52.317
В свойствах проекта задаеться информация о разработчике, версии продукта, build... А как сделать что бы эти вседения можно было отобразить в программе? Если можно то с небольшим примером.
Отвечает: Ерёмин Андрей
Здравствуйте, Пепеляев Александр Павлович!
Вот, нашёл пример, как прочитать версию программы. Код функции в приложении. А использовать так: label1.Caption:=FileVersion('C:WINDOWSexplorer.exe');
По поводу остальных данных пока что ничего сказать не могу.
Удачи!
Приложение:
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Coupler
Здравствуйте, Пепеляев Александр Павлович!
Посмотрите здесь: www.delphiworld.narod.ru
По поводу Version info - в вопросе 50702:
http://rusfaq.ru/info/question/50702
Приложение:
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 16.08.2006, 12:59
Отвечает: Mexes
Здравствуйте, Пепеляев Александр Павлович!
Вот пример из хелпаря Delphi.
Поясню, что в второй параметр функции VerQueryValue должен иметь вид StringFileInfoAAAABBBBCCCC, где
AAAA - Win32 Language ID (Russian=$0419) - 4 цифры хекс-кода;
BBBB - Charset ID (win1251=$04E3) - 4 цифры хекс-кода;
CCCC - название ключа (CompanyName, FileVersion и т. п.) - строка.
Для более предметных знаний обратитесь к MSDN, функции:
GetFileVersionInfo
GetFileVersionInfoSize
VerFindFile
VerInstallFile
VerLanguageName
VerQueryValue
Приложение:
Ответ отправил: Mexes (статус: 1-ый класс)
Ответ отправлен: 16.08.2006, 18:15
Вопрос № 52.357
Здравствуйте, уважаемые эксперты!
Вопрос такой: Есть Label фиксированных размеров, с установленным начальным шрифтом и AutoSize:=false.
Как проверить помещается ли текст в Label? И если не помещается, то уменьшать размер шрифта до тех пор, пока текст полностью не поместится? Если это невозможно, то какие компоненты такое поддерживают? И чтобы была возможность выравнивать текст по центру как по вертикали, так и по горизонтали, а также перенос по словам.
Заранее спасибо.
Отвечает: Mexes
Здравствуйте, Белозеров Виталий!
Помещается ли текст можно проверить, сравнив Label.Width и Label.Canvas.TextWidth(Label.Caption).
Размер шрифта можно регулировать через Label.Font.Size, только надо указать TrueType-шрифт, например, Microsoft Sans Serif вместо MS Sans Serif (который стоит по умолчанию).
Вертикальное выравнивание переключается через Label.Layout. Перенос по словам - свойство WordWrap.
Свойства TLabel легко выясняются изучением свойств в Object Inspector.
Ответ отправил: Mexes (статус: 1-ый класс)
Ответ отправлен: 16.08.2006, 20:33 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Mo-skin
Здравствуйте, Белозеров Виталий!
Как вариант еще попробовать RichEdit с
color=clBtnFace, Borderstyle="bsNone," ReadOnly = True,
тогда вообще можно творить чудеса!
Ответ отправил: Mo-skin (статус: Посетитель)
Ответ отправлен: 16.08.2006, 21:41
Отвечает: Morgen_krsk
Здравствуйте, Белозеров Виталий!
С использованием RichEdit у вас возникают ряд других нюансов
1. Первое и самое главное XPManifest работать не будет как ни старайся :(
2. Выравнивание по вертикали по-моему установить в RichEdit нельзя (вру конечно извратиться можно всегда)
3. Можно будет выделить курсором текст внутри RichEdit, с Label такого ест-но нет. А если сделать RichEdit.Enabled := False, то потеряются цвета ....
Так что используйте Label как писал выше Mexes
Ответ отправил: Morgen_krsk (статус: 2-ой класс)
Ответ отправлен: 17.08.2006, 17:33
Вопрос № 52.374
Здравствуйте, Уважаемые эксперты!
В папке с моей программой находится текстовый файл как его скопировать в папку Temp Windows'a. Проблема заключается в том, как найти путь к этой папке Temp. Явное указание пути типа C:WindowsTemp не подходит.
Отправлен: 17.08.2006, 01:22
Вопрос задал: Solovej (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Mexes
Здравствуйте, Solovej!
В Windows этот путь определяется переменной окружения Temp.
TempPath:=GetEnvironmentVariable('Temp'); //Модуль SysUtils
Ответ отправил: Mexes (статус: 1-ый класс)
Ответ отправлен: 17.08.2006, 01:32
Отвечает: Савенко Вадим Иванович
Здравствуйте, Solovej!
Скопировать можно так:
uses ... ShellAPI;
function CopyFiles(Handle: HWND; FSource : string; FTarget : string; Move: boolean; AutoRename: Boolean) : Integer;
var
SHFileOpStruct : TSHFileOpStruct;
begin
with SHFileOpStruct do
begin
Wnd := Handle;
wFunc := FO_COPY;
pFrom := PChar(FSource);
pTo := PChar(FTarget);
fFlags := 0;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
Result := SHFileOperation( SHFileOpStruct );
end;
Ответ отправил: Савенко Вадим Иванович (статус: 7-ой класс)
Ответ отправлен: 17.08.2006, 07:57 Оценка за ответ: 5
Отвечает: D.M.
Здравствуйте, Solovej!
Вот еще один способ получить Temp папку
dirP: PChar; // Путь к папке temp
Res: Cardinal; // Вроде как длина полученной строки (могу наврать - точно не помню)
DirP := StrAlloc(MAX_PATH);
Res := GetTempPath(MAX_PATH,DirP );
--------- Зёзики руллллят :)
Ответ отправил: D.M. (статус: 2-ой класс)
Ответ отправлен: 17.08.2006, 19:33