Валентин Озеров - Советы по Delphi. Версия 1.0.6

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.0.6» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.0.6: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.0.6»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Советы по Delphi. Версия 1.0.6 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.0.6», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

function DecToRoman(Decimal: Longint ): String;

const Romans: Array[1..13] of String = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M');

Arabics: Array[1..13] of integer = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);

var

i: Integer;

scratch: String;

begin

scratch:= '';

for i := 13 downto 1 do

while (decimal >= arabics[i]) do begin

Decimal:= Decimal – Arabics[i];

scratch:= scratch + Romans[i];

end;

Result:= scratch;

end;

Преобразование ICO в BMP

Решение 1

Попробуйте:

var

Icon: TIcon;

Bitmap: TBitmap;

begin

Icon:= TIcon.Create;

Bitmap:= TBitmap.Create;

Icon.LoadFromFile('c:\picture.ico');

Bitmap.Width:= Icon.Width;

Bitmap.Height:= Icon.Height;

Bitmap.Canvas.Draw(0, 0, Icon);

Bitmap.SaveToFile('c:\picture.bmp');

Icon.Free;

Bitmap.Free;

end;

Решение 2

Способ преобразования изображения размером 32×32 в иконку.

unit main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs,ExtCtrls, StdCtrls;

type TForm1 = class(TForm)

Button1: TButton;

Image1: TImage;

Image2: TImage;

procedure Button1Click(Sender: Tobject);

procedure FormCreate(Sender: Tobject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

Procedure Tform1.Button1Click(Sender: Tobject);

var winDC, srcdc, destdc : HDC;

oldBitmap : HBitmap;

iinfo : TICONINFO;

begin

GetIconInfo(Image1.Picture.Icon.Handle, iinfo);

WinDC:= getDC(handle);

srcDC:= CreateCompatibleDC(WinDC);

destDC:= CreateCompatibleDC(WinDC);

oldBitmap:= SelectObject(destDC, iinfo.hbmColor);

oldBitmap:= SelectObject(srcDC, iinfo.hbmMask);

BitBlt(destdc, 0, 0, Image1.picture.icon.width, Image1.picture.icon.height, srcdc, 0, 0, SRCPAINT);

Image2.picture.bitmap.handle := SelectObject(destDC, oldBitmap);

DeleteDC(destDC);

DeleteDC(srcDC);

DeleteDC(WinDC);

image2.Picture.Bitmap.savetofile(ExtractFilePath(Application.ExeName) + 'myfile.bmp');

end;

Procedure Tform1.FormCreate(Sender: Tobject);

begin

image1.picture.icon.loadfromfile('c:\myicon.ico');

end;

end.

Unix-строки (чтение и запись Unix-файлов)

Данный модуль позволяет читать и записывать файлы формата Unix.

unit StreamFile;

interface

Uses SysUtils;

Procedure AssignStreamFile(var f: text; FileName: String);

implementation

Const BufferSize = 128;

Type

TStreamBuffer = Array[1..High(Integer)] of Char;

TStreamBufferPointer = ^TStreamBuffer;

TStreamFileRecord = Record

Case Integer Of

1: (

Filehandle: Integer;

Buffer: TStreamBufferPointer;

BufferOffset: Integer;

ReadCount: Integer;

);

2: (

Dummy : Array[1..32] Of Char

)

End;

Function StreamFileOpen(var f : TTextRec): Integer;

Var

Status: Integer;

Begin

With TStreamFileRecord (F.UserData) Do Begin

GetMem(Buffer, BufferSize);

Case F.Mode Of

fmInput:

FileHandle:= FileOpen(StrPas(F.Name), fmShareDenyNone);

fmOutput:

FileHandle:= FileCreate(StrPas(F.Name));

fmInOut:

Begin

FileHandle:= FileOpen(StrPas(F.Name), fmShareDenyNone Or fmOpenWrite or fmOpenRead);

If FileHandle <> -1 Then status:= FileSeek(FileHandle, 0, 2); { Перемещаемся в конец файла. }

F.Mode:= fmOutput;

End;

End;

BufferOffset:= 0;

ReadCount:= 0;

F.BufEnd:= 0; { В этом месте подразумеваем что мы достигли конца файла (eof). }

If FileHandle = -1 Then Result := -1

Else Result:= 0;

End;

End;

Function StreamFileInOut(var F: TTextRec): Integer;

Procedure Read(var Data: TStreamFileRecord);

Procedure CopyData;

Begin

While (F.BufEnd < Sizeof(F.Buffer) - 2) And (Data.BufferOffset <= Data.ReadCount) And (Data.Buffer [Data.BufferOffset] <> #10) Do Begin

F.Buffer[F.BufEnd]:= Data.Buffer^[Data.BufferOffset];

Inc(Data.BufferOffset);

Inc(F.BufEnd);

End;

If Data.Buffer [Data.BufferOffset] = #10 Then Begin

F.Buffer[F.BufEnd]:= #13;

Inc(F.BufEnd);

F.Buffer[F.BufEnd]:= #10;

Inc(F.BufEnd);

Inc(Data.BufferOffset);

End;

End;

Begin

F.BufEnd:= 0;

F.BufPos:= 0;

F.Buffer:= '';

Repeat Begin

If (Data.ReadCount = 0) Or (Data.BufferOffset > Data.ReadCount) Then Begin

Data.BufferOffset:= 1;

Data.ReadCount:= FileRead(Data.FileHandle, Data.Buffer^, BufferSize);

End;

CopyData;

End Until (Data.ReadCount = 0) Or (F.BufEnd >= Sizeof (F.Buffer) - 2);

Result:= 0;

End;

Procedure Write(var Data: TStreamFileRecord);

Var

Status: Integer;

Destination: Integer;

II: Integer;

Begin

With TStreamFileRecord(F.UserData) Do Begin

Destination:= 0;

For II:= 0 To F.BufPos - 1 Do Begin

If F.Buffer[II] <> #13 Then Begin

Inc(Destination);

Buffer^[Destination]:= F.Buffer[II];

End;

End;

Status:= FileWrite(FileHandle, Buffer^, Destination);

F.BufPos:= 0;

Result:= 0;

End;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.0.6»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.0.6» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.0.6»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.0.6» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x