VR
Virtual Reality On-line   Как?
Новости   |     Журнал    |    Хаkер   |     Магазин   |   Проекты
[   Вход    ]
[Kарта сайтa]
[ Download  ]
[  Конкурс  ]
[  Анекдоты ]
[  Ссылки   ]
[  Реклама  ]
[ Почтальон ]
[ О проекте ]






TopList
Каком к верху:

У меня в ящике начинают накапливаться вопросы. Это говорит о том, что многие приходят на страничку не просто так, а народ действительно интересуется. Начиная с этого номера, я ввожу новый раздел "Каком к верху", в котором буду публиковать ответы на вопросы "Как?". Если ты хочешь задать свой вопрос, то пиши мне сюда Почтальон. Пожалуйста, конкретизируй свои вопросы. Если твои вопросы будут маленькими и конкретными, то они попадут сюда, и ты их увидишь очень скоро. Иначе мне придётся писать отдельную статью, а такого у меня очень много и не известно, когда я напишу тебе ответ.


  • Как определить размер файла?

    Для этого есть три способа. Первый - открыть файл и перейти в конец. Переход по файлу возвращает текущую позицию, а раз текущая позиция это конец, то это и будет размер:

    var
     f:HFILE;
    FileSize:Integer;
    begin
    // Открываем файл только для чтения (этого достаточно)
    f:=_lopen(PChar(FileName), OF_READ);
    // Получаем размер файла
    FileSize :=_lseek(f,0, FILE_END);
    //Закрываем файл
    _lclose(f);
    end;
    

    Второй способ - через поиск, который так же возвращает размер.

    var
     SearchRec:TSearchRec;
    Begin
    // Ищем файл
     if FindFirst(ExpandFileName(FileName),faAnyFile,SearchRec)=0
    // Забираем размер
     FilrSize:=SearchRec.Size
    //Закрываем поиск
     FindClose(SearchRec);
    end;
    

    Третий способ - это получить размер файла напрямую через функцию GetFileSize.

    function GetFileSize(
    hFile: THandle; 
    lpFileSizeHigh: Pointer)
    : DWORD; stdcall; 
    
    В качестве первого параметра будет указатель на файл, а второй - указатель на число DWORD, куда засунут старший байт размера файла. Не пугайся, старший байт тебе врятли понадобиться, очень редко встречаются файлы больше 2 гига. Поэтому можно смело использовать в качестве второго параметра nil.
  • Как мне быстро очистить Canvas у Bitmap?

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

    Canvas.Brush.Color := ClWhite;
    Canvas.FillRect(Canvas.ClipRect);
    

  • Как написать тест внутри Bitmap с прозрачным фоном?

    Для этого нужно просто выставить у Bitmap стиль закраски Brush.Style в bsClear

    begin
     //Выставляем цвет текста
      Image1.Picture.Bitmap.Canvas.Font.Color := clBlue;
    //Выставляем прозрачную закраску
     Image1.Picture.Bitmap.Canvas.Brush.Style:=bsClear;
     Image1.Picture.Bitmap.Canvas.TextOut(1, 1, 'Прозрачная надпись');
    

  • Как мне узнать полный путь к запущенной мной программе?

    Имя запущенной проги храниться в Application.ExeName. Чтобы вытащить путь нужно использовать функцию ExtractFilePath. Вот пример:

    Str:=ExtractFilePath (Application.ExeName);

    После этого, в переменной Str будет путь к твоей проге.


  • Как из иконки сделать Bitmap?

    Вот тебе работающая процедура. Все функции используемые здесь мы уже проходили, поэтому я даже не буду приводить комментарии.

    var
     Icon : TIcon;
    begin
     Icon := TIcon.Create;
     Icon.LoadFromFile('Имя файла с исонкой');
     Bitmap.Height := Icon.Height;
     Bitmap.Width := Icon.Width;
     Bitmap.Canvas.Draw(0, 0, Icon);
     Icon.Free;
    end;
    

    На сегодня хватит. Это были наиболее интересные вопросы. Напоминаю, если ты хочешь задать вопрос, то пиши его сюда: Почтальон.


  • Copyright©: Horrific aka Флёнов Михаил
    Design by FMk group©