Вопрос № 54536: Здравствуйте уважаемые эксперты!!!
Скажите пожалуйста, как программно узнать дату создания и размер файла
(например, текстового)...Вопрос № 54566: Добрый день!
скажите пожалуйста, можно ли создать ДЛЛ-библиотеку на делфи используя лишь консольный компилятор DCC32.exe? Я смотрел его ключи, но ничгео похожего на создание ДЛЛ не нашёл (разве что делать сишный obj, а потом линковать линковщиком...Вопрос № 54577: Здравствуйте. Установил новый компонент ATViewer. Окно ".. successfuly installed" выдалось, все нормально. Если залезть в Components|Instaled Packages то увидим, что он и там зарегистрировался под ником ATViewer.
Если выделить строчку с его...Вопрос № 54591: Добрый день! Уважаемые Эксперты!!!
У меня к Вам несколько вопросов.
1 У меня база в Акцессе мне нужно импорт и экспорт (я написал код используя макросы) вы можете подсказать другой вариант /данный код работает с Акцесс 2000, с Акцесс97 не хоч...Вопрос № 54618: Людии! как в дельфе через едит1 переименовать файл?...Вопрос № 54635: Доброго дня. Есть мальнький вопросик. Как создать файл в своем формате для хранения уменьшенный изображений (thumbnails) и потом прочитать и отбразить. Хотелось
бы с примером (особенно для чтения) или ссылку где про это можно почитать....
Вопрос № 54.536
Здравствуйте уважаемые эксперты!!!
Скажите пожалуйста, как программно узнать дату создания и размер файла
(например, текстового)
Отправлен: 06.09.2006, 18:13
Вопрос задал: Piit (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Татьяна
Здравствуйте, Piit!
Для этого существует апи-функция GetFileInformationByHandle
Примерно так это выглядит в коде:
var
fhan : integer;
info : _BY_HANDLE_FILE_INFORMATION; // структура получения информации о файле
tm : _SYSTEMTIME; //системное время, структура, содержащая поля типа mDay..
begin
fhan := FileOpen('c: est.txt',fmopenread); //открываете файл, получаете его handle
GetFileInformationByHandle(fhan,info); //получаете необходимую информацию
FileTimeToSystemTime(info.ftCreationTime,tm); //преобразуете время создания в необходиму структуру
....
а далее обращаетесь к полям данной структуры
В этой же структуре вы можете получить и размер файла, однако его можно получить и немного легче, например так
fsize = fileseek(fhan,0,2); // говорит о том, что вы смещаетесь в файле на 0 байт с конца, т.е. позиция и будет говорить о размере
--------- Возможно все. И ничего возможно тоже.
Ответ отправила: Татьяна (статус: Студент)
Ответ отправлен: 06.09.2006, 19:22 Оценка за ответ: 5
Отвечает: Vanektoo
Здравствуйте, Piit!
function GetFileDate(FileName: string): TDateTime;
var
intFileAge: LongInt;
begin
intFileAge := FileAge(FileName);
if intFileAge = -1 then
Result := 0
else
Result := FileDateToDateTime(intFileAge)
end;
Ответ отправил: Vanektoo (статус: 1-ый класс)
Ответ отправлен: 06.09.2006, 19:52 Оценка за ответ: 5
Вопрос № 54.566
Добрый день!
скажите пожалуйста, можно ли создать ДЛЛ-библиотеку на делфи используя лишь консольный компилятор DCC32.exe? Я смотрел его ключи, но ничгео похожего на создание ДЛЛ не нашёл (разве что делать сишный obj, а потом линковать линковщиком)
Отправлен: 06.09.2006, 22:44
Вопрос задал: Вiктор (статус: 6-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: sir henry
Здравствуйте, Вiктор!
Вы немножко не туда смотрели. Компилятор тут не при чем. :)
Просто необходимо оформить исходник программы так, чтобы компилятор видел, что это DLL, а не что-либо другое. Принцип создания DLL универсален как для СиСи++, так и для Дельфи: library mydll; {Заметьте, что для DLL определяющее слово library}
uses SysUtils, Classes;
{Определяем функцию как stdcall}
function GetSimpleText(LangRus: Boolean): PChar; stdcall;
begin
{В зависимости от LangRus возвращаем русскую (True) либо английскую (False) фразу}
if LangRus then
Result := PChar('Привет, чувак!')
else
Result := PChar('Hi, gay!');
end;
{Директива exports указывает, какие функции будут экспортированы этой DLL}
exports GetSimpleText;
begin
end.
Вот и все. Теперь в командной строке задаете:
dcc32 mydll.dpr
и получаете DLL'ку. :)
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 07.09.2006, 07:31 Оценка за ответ: 5 Комментарий оценки: Спасибо, грамотный и профессиональный ответ. Работая с ассемблером я привык что большая часть настроек даётся через ключи. Паскаль учил ещё в школе, под дос, и до таких тонкостей как создание ДЛЛ не доходил. И ещё: я не использую *.DPR, я сразу кормлю dcc32 паскалевский файл. Я с консолью решил
работать как раз чтобы не морочиться со всякими дополнительными файлами, которых я не понимаю.
Вопрос № 54.577
Здравствуйте. Установил новый компонент ATViewer. Окно ".. successfuly installed" выдалось, все нормально. Если залезть в Components|Instaled Packages то увидим, что он и там зарегистрировался под ником ATViewer. Если выделить строчку с его названием и нажать кнопочку "Components", то увидим три красивейших компонента (имеется в виду красота самих иконок) под названиями TATBinHex, TATViewer и TWMP.
Галочка напротив самого этого psckage'а проставлена нормально, только одна незадача - а где он в палитре компонентов-то? Это что, библиотека? Но для библиотек окно components пустое. Да и вообще, это совершенно точно должен быть именно визуальный компонент.
Отправлен: 07.09.2006, 00:51
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Савенко Вадим Иванович
Здравствуйте, Blackie!
В D2005 они находятся на вкладке Samples. Думаю, что и в других версиях должны быть там же.
Ответ отправил: Савенко Вадим Иванович (статус: 10-ый класс)
Ответ отправлен: 07.09.2006, 05:58 Оценка за ответ: 4 Комментарий оценки: У меня не все компоненты на этой вкладке. Один обнаружился в ActiveX.
Вопрос № 54.591
Добрый день! Уважаемые Эксперты!!!
У меня к Вам несколько вопросов.
1 У меня база в Акцессе мне нужно импорт и экспорт (я написал код используя макросы) вы можете подсказать другой вариант /данный код работает с Акцесс 2000, с Акцесс97 не хочет работать выводить ошибку не зарегист класс/.
2 Используя запрос sql, выведеные данные dbgrid экспортировать и импортировать.
спасибо всем!!!
Приложение:
Отправлен: 07.09.2006, 08:31
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Werewolf
Здравствуйте, ERA!
Вариант 1
Используйте EhLib c http://www.ehlib.com/RUS/
там есть импорт экспорт и свой компонет доступа к базам ACCESS.
Вариант 2
Не пользуйтесь компонентами TAccessApplication они используют интерфейсы ACCESS версии которую Вы выбрали при установке Delphi. Вместо этого можно использовать
var
Access: Variant;
begin
// Открываем Access
try
Access := GetActiveOleObject('Access.Application');
except
Access := CreateOleObject('Access.Application');
end;
// Открываем базу данных
// Второй параметр указывает - будет ли база открыта в Exclusive режиме
Access.OpenCurrentDatabase('c:erkanatdase.mdb', True);
Access.DoCmd.TransferText(acimportdelim,'','temp1','c:erkanatdase2.txt','','','1251');
< ... >
// Закрываем базу данных
Access.CloseCurrentDatabase;
Ответ отправил: Werewolf (статус: Студент)
Ответ отправлен: 07.09.2006, 10:34 Оценка за ответ: 5 Комментарий оценки: Спасибо
Вопрос № 54.618
Людии! как в дельфе через едит1 переименовать файл?
Отправлен: 07.09.2006, 12:15
Вопрос задал: SAN (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Coupler
Здравствуйте, SAN!
Вместо 'новое имя файла' подставьте form1.edit1.text.
movefile (pchar('имя файла'),pchar('новое имя файла'));
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 07.09.2006, 12:59
Вопрос № 54.635
Доброго дня. Есть мальнький вопросик. Как создать файл в своем формате для хранения уменьшенный изображений (thumbnails) и потом прочитать и отбразить. Хотелось бы с примером (особенно для чтения) или ссылку где про это можно почитать.
Отправлен: 07.09.2006, 14:29
Вопрос задал: CjJoker (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Савенко Вадим Иванович
Здравствуйте, CjJoker!
То, что Вы называете уменьшенными копиями изображений, на самом деле
являются изображениями нормальных размеров. Просто они выводятся в
компонент TImage со свойством Stretch:= true.
Самый простой способ - хранить их в директории программы и сделать
для них отдельную директорию
uses
..., jpeg, ...;
var
PictureDir: string;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
PictureDir:= GetCurrentDir + 'Pictures';
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Image1.Picture.LoadFromFile(SkinDir + 'picture1.jpg');
end;
Ответ отправил: Савенко Вадим Иванович (статус: 10-ый класс)
Ответ отправлен: 07.09.2006, 18:07