Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ Delphi. ВСрсия 1.0.6Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 3

Автор Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½ ΠžΠ·Π΅Ρ€ΠΎΠ²

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;

 End;


Begin

 Case F.Mode Of

 fmInput:

  Read(TStreamFileRecord(F.UserData));

 fmOutput:

  Write(TStreamFileRecord(F.UserData));

 End;

End;


Function StreamFileFlush(var F: TTextRec): Integer;

Begin

 Result:= 0;

End;


Function StreamFileClose(var F : TTextRec): Integer;

Begin

 With TStreamFileRecord(F.UserData) Do Begin

  FreeMem(Buffer);

  FileClose(FileHandle);

 End;

 Result:= 0;

End;


Procedure AssignStreamFile(var F: Text; Filename: String);

Begin

 With TTextRec(F) Do Begin

  Mode:= fmClosed;

  BufPtr:= @Buffer;

  BufSize:= Sizeof(Buffer);

  OpenFunc:= @StreamFileOpen;

  InOutFunc:= @StreamFileInOut;

  FlushFunc:= @StreamFileFlush;

  CloseFunc:= @StreamFileClose;

  StrPLCopy(Name, FileName, Sizeof(Name) - 1);

 End;

End;


end.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ BMP Π² JPEG Π² Delphi 3

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Delphi 3, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ BMP-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² JPEG-Ρ„Π°ΠΉΠ»Π΅?

Допустим, Image1 – ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TImage, содСрТащий растровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ вашСго изобраТСния Π² JPEG-Ρ„Π°ΠΉΠ»:

var

 MyJpeg: TJpegImage;

 Image1: TImage;

begin

 Image1:= TImage.Create;

 MyJpeg:= TJpegImage.Create;

 Image1.LoadFromFile('TestImage.BMP');  // Π§Ρ‚Π΅Π½ΠΈΠ΅ изобраТСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

 MyJpeg.Assign(Image1.Picture.Bitmap);  // НазначаниС изобраТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ MyJpeg

 MyJpeg.SaveToFile('MyJPEGImage.JPG');  // Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° дискС изобраТСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JPEG

end;

ДСкомпиляция Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Wave ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Π΅ΡΡ‚ΡŒ Π»ΠΈ тСхнология прСобразования Wave-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…? К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΌΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ (ΠΌΠ΅Ρ‚ΠΎΠ΄) сТатия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ вмСстС с Wave-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

Π£ мСня Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ΄ D1/D2, которая Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ WAV-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ вытаскиваСт исходныС Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡ… Π²ΠΎΡΡΡ‚Π°Π½Π°Π²ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°ΡˆΠΈΡ‚Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сТатия.

unit LinearSystem;


interface

{============== Π’ΠΈΠΏ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ WAV ==================}

type wavheader = record

 nChannels       : Word;

 nBitsPerSample  : LongInt;

 nSamplesPerSec  : LongInt;

 nAvgBytesPerSec : LongInt;

 RIFFSize        : LongInt;

 fmtSize         : LongInt;

 formatTag       : Word;

 nBlockAlign     : LongInt;

 DataSize        : LongInt;

end;


{============== ΠŸΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… сэмпла ========================}

const MaxN = 300;  { максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ сэмпла }

type SampleIndex = 0..MaxN+3;

type DataStream = array[SampleIndex] of Real;

var N: SampleIndex;


{============== ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ сопровоТдСния ======================}

type Observation = record

 Name       : String[40];  {Имя Π΄Π°Π½Π½ΠΎΠ³ΠΎ сопровоТдСния}

 yyy        : DataStream;  {Массив ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅}

 WAV        : WAVHeader;   {БпСцификация WAV для сопровоТдСния}

 Last       : SampleIndex; {ПослСдний доступный индСкс yyy}

 MinO, MaxO : Real;        {Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ yyy}

end;


var K0R, K1R, K2R, K3R: Observation;

 K0B, K1B, K2B, K3B : Observation;


{================== ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ===================}

var StandardDatabase: String[80];

 BaseFileName: String[80];

 StandardOutput: String[80];

 StandardInput: String[80];


{=============== ОбъявлСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ==================}

procedure ReadWAVFile(var Ki, Kj : Observation);

procedure WriteWAVFile(var Ki, Kj : Observation);

procedure ScaleData(var Kk: Observation);

procedure InitallSignals;

procedure InitLinearSystem;


implementation

{$R *.DFM}


uses VarGraph, SysUtils;

{================== Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ WAV-Ρ„Π°ΠΉΠ»Π° ===================}

const MaxDataSize : LongInt = (MaxN+1)*2*2;

const MaxRIFFSize : LongInt = (MaxN+1)*2*2+36;

const StandardWAV : WAVHeader = (

 nChannels       : Word(2);

 nBitsPerSample  : LongInt(16);

 nSamplesPerSec  : LongInt(8000);

 nAvgBytesPerSec : LongInt(32000);

 RIFFSize        : LongInt((MaxN+1)*2*2+36);

 fmtSize         : LongInt(16);

 formatTag       : Word(1);

 nBlockAlign     : LongInt(4);