Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 60 из 116<  1 ... 57  58  59  60  61  62  63 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
BloodMaX это типа шутка была...

_________________
Ку ку



Партнер
 

Member
Статус: Не в сети
Регистрация: 11.10.2005
Откуда: Б. Калитва
Daemon, 3dNikita так вы можешь подробно рассказать или дать ссылку, а то где бы я не спросил так и отвечают!


 

Member
Статус: Не в сети
Регистрация: 09.04.2005
Откуда: Харьков [UA]
Могу :) Рассказываю для 2006:

File->New->VCL Forms Applications
File->New->Form

Возвращаешься к первому юниту, переходишь к коду. В секцию uses добавляешь Unit2.

Переходишь опять к форме, кидаешь батон, тыкаешь на него, и пишешь:

Код:
begin
Form2.Create(Application);
Form2.ShowModal;
end;


Т.е. мы вызываем метод Create, а затем и ShowModal объекта Form2. А Form 2 это то, что я говорил — смотрим в Unit2:

Код:
type
  TForm2 = class(TForm)
...
var
  Form2: TForm2;


Мог что-то упустить, ибо немного нетрезв :oops:

_________________
«Будем жить!» — В. Кипелов
OverSoft CPU Informer — наш ответ всем! http://forums.overclockers.ru/viewtopic.php?t=83579


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
To all
Люди, есть проблема некоторая.
Я пишу один плагинчик для проги All My Movies (если кто знает, что это за прога - плагинчик нужен в основном мне, но вроде тоже некоторые им пользуются). Дык вот, есть один код, который позволяет несколько сжимать картинку по горизонтали и вертикали, проводить сглаживание краев и изменять качество JPEG. Как отдельный код все работает просто на ура, в плагине раньше работало, сейчас не хочет. Разработчик AMM говорит, что ничего не менял в моторчике работы с плагинами.
Плиз, посмотрите часть кода, може я чего-то намудрил или можно как-нибудь оптимизировать.

Код:
Function OptimizingComplete(FileName: String; Optimizing: Boolean;
                            Quality, MaxWidth: Integer): Integer;
Var
  TempFileName: String;
  Bit: TJPEGImage;
  NewWidth, NewHeight, BitWidth, BitHeight: Integer;
  Bitmap: TBitmap;
  OldFileSize, NewFileSize: Integer;
  R: TRect;
Begin
  TempFileName := FileName + '.tmp';
  Result := 0;

  Bit := TJPEGImage.Create(Nil);
  Bit.Visible := False;
  Bitmap := Nil;
  OldFileSize := GetFileSize(FileName);
  Bit.LoadFromFile(FileName);
  BitWidth := Bit.Picture.Bitmap.Width;
  BitHeight := Bit.Picture.Bitmap.Height;
  If MaxWidth > 0 Then
    If (BitWidth > MaxWidth) Or (BitHeight > MaxWidth) Then
    Begin
      SetMaxValueInBitmap(BitWidth, BitHeight, MaxWidth, NewWidth,
                          NewHeight);
      Bitmap := TBitmap.Create;
      Bitmap.Width := NewWidth;
      Bitmap.Height := NewHeight;
      Bitmap.PixelFormat := Bit.Picture.Bitmap.PixelFormat;
      Stretch(Bit.Picture.Bitmap, Bitmap, Lanczos3Filter, 3.0);
      Bit.Width := NewWidth;
      Bit.Height := NewHeight;
      Bit.Picture.Bitmap.Width := NewWidth;
      Bit.Picture.Bitmap.Height := NewHeight;
      Bit.Picture.Bitmap.Assign(Bitmap);
      Bit.Update;
    End;

  If Optimizing Then AntiAliasing(Bit.Picture.Bitmap, 4);
  Bit.Quality := Quality;
  Bit.NumOfColors := TrueColor;
  Bit.DCTMethod := Integ;
  Bit.Progressive := True;
  Bit.Dither := FS;
  Bit.FastProcessing := False;
  Bit.SaveToFile(TempFileName);
  NewFileSize := GetFileSize(TempFileName);
  Bit.Free;
  If Bitmap <> Nil Then Bitmap.Free;

  Result := NewFileSize - OldFileSize;
  MoveFile(TempFileName, FileName);
End;

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!


 

Member
Статус: Не в сети
Регистрация: 27.01.2005
Откуда: Москва
Фото: 4
Народ как считать и представить атрибуты подгружаемого файла?

_________________
Молчание - золото.
Смерть, не повод нарушать присягу.


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
123kis
Или через FindFirstFile можно найти атрибуты (только не забудь закрывать FindClose).

Пример. Прочесть дату последнего обращения к файлу (если конечно в виндовозе такая фича включена)

Код:
var
  FileHandle: THandle;
  LocalFileTime: TFileTime;
  DosFileTime: DWORD;
  LastAccessedTime: TDateTime;
  FindData: TWin32FindData;
begin
  FileHandle := FindFirstFile('AnyFile.FIL', FindData);
  if FileHandle <> INVALID_HANDLE_VALUE then
  begin
    Windows.FindClose(Handle);
    if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
    begin
      FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
      FileTimeToDosDateTime(LocalFileTime,
        LongRec(DosFileTime).Hi, LongRec(DosFileTime).Lo);
      LastAccessedTime := FileDateToDateTime(DosFileTime);
      Label1.Caption := DateTimeToStr(LastAccessedTime);
    end;
  end;
end;


Или так.

Используем функцию SetFileAttributes() и GetFileAttributes(). Задаём ей два параметра: сначала имя файла, затем задаваемые атрибуты. Например, так можем файл сделать "только для чтения"

SetFileAttributes('C:\file.txt', faReadOnly);

Можно задавать следующие значения:
faReadOnly
faHidden
faSysFile
faVolumeID
faDirectory
faArchive
faAnyFile

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!


 

Member
Статус: Не в сети
Регистрация: 11.10.2005
Откуда: Б. Калитва
3dNikita писал(а):
Могу

Спасибо!
3dNikita писал(а):
Мог что-то упустить, ибо немного нетрезв


Да, наверно чтото упустил не работает, Уменя Delpi 2005.


 

Member
Статус: Не в сети
Регистрация: 27.01.2005
Откуда: Москва
Фото: 4
Пасибо Максим!ТОка мне надо их не задать а представить для обработки и дополнения инфы из файла в БД по дате создания файла!

_________________
Молчание - золото.
Смерть, не повод нарушать присягу.


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
123kis
НУ еще раз - можно через FindFileFirst (пример написал).
FindData.dwFileAttributes - будут тебе тут все, атрибуты (побитово) сам сумеешь выделить.
Либо попробовать с помощью FindFirst (тоже самое, что и предыдущее).

Примерный пример использования:
Код:
    Result := FindFirst(Path, Attr, SearchRec);
    while Result = 0 do
    begin
      ProcessSearchRec(SearchRec);
      Result := FindNext(SearchRec);
    end;
    FindClose(SearchRec);

А так, SearchRec это переменная типа рекорд следующего типа:
Код:
  TSearchRec = record
    Time: Integer;
    Size: Integer;
    Attr: Integer;
    Name: TFileName;
    ExcludeAttr: Integer;
    FindHandle: THandle platform;
    FindData: TWIN32FindData platform;
  end;

Тут точно все то что надо

To All
Мне кто-нибудь ответит на мой вопрос?

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Максим а какой ответ ты хочешь получить? Такую программу не каждый испольщует, это раз. А оптимизировать можно - если не использовать делфовский класс для работы с jpeg.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
Daemon
А я и не дельфовский класс использую. По работе использую собственный класс по работе с JPEG.
И он точно работает, так же как и тот код, который положил сюда.

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!


 

Member
Статус: Не в сети
Регистрация: 27.01.2005
Откуда: Москва
Фото: 4
Пасибо Максим!Я просто чайникоподоюный еще:-)

_________________
Молчание - золото.
Смерть, не повод нарушать присягу.


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Подскажите как в Windows взять точное время до миллисекунд, а то функция Now возвращает, но у нее погрешность вплоть до секунды. Вот в таком коде

Код:
S1:=FormatDateTime('hh.mm.ss.z',Now);
Sleep(10);
S2:=FormatDateTime('hh.mm.ss.z',Now);


S1 и S2 бывает показывают одно и тоже, несмотря на Sleep(10), а большую задержку ставить нельзя - слишком долго процесс будет идти.

P.S. - Просто мне надо файлы записывать по времени, а имя файла - это время записи.


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Aleksoid1978
Aleksoid1978 писал(а):
Подскажите как в Windows взять точное время до миллисекунд

Для разницы в ms можно и с помощью New и с помощью GetTickCount.

Aleksoid1978 писал(а):
а то функция Now возвращает, но у нее погрешность вплоть до секунды. Вот в таком коде

Драсте вам… :)
Прям как в том анекдоте: "а хто всрався? – невестка…" :lol:
По твоему коду у меня возвращается: S1 = 14.44.27.484 -> S2 = 14.44.27.500
И для GetTickCount разность резалтов ~ +/- 1 ms.
Так что если у тебя твой вышеприведенный код выдает одинаковый резалт с учетом Sleep(10), то это "твое" аппаратно/софтовое мутево.
Добавлено спустя 6 минут, 23 секунды
Aleksoid1978 писал(а):
S1 и S2 бывает показывают одно и тоже, несмотря на Sleep(10)

&
Aleksoid1978 писал(а):
но у нее погрешность вплоть до секунды.

Дык я не понял, то у тебя ваааще разницы нет, то целая секунда или как?


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
Aleksoid1978
Пользуйся GetTickCount. Если будет опять одинаковое время, то значит аппаратная часть прикалывается. У меня без мелкомягкого патча так же выдается одинаковое время (из-за двухядерника прикол с таймером идет такой в моем случае)

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Нет, GetTickCount в топку, лучше QueryPerformanceCounter.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
Daemon
Ему бы сначала разобраться с GetTickCount :)

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!


 

подскажите хорошие сайты, где можно скачать проги на дельфи, курс обучения дельфи и.т.д., тока на русском языке


 

Member
Статус: Не в сети
Регистрация: 11.11.2004
Откуда: Челябинск
Куча примеров идет в комплекте со средой

_________________
пишу я программу... и вдруг на клавиатуру выползает bug, буквально


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 60 из 116<  1 ... 57  58  59  60  61  62  63 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan