Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

X-Program ПО, новости сайта и программирование в Delphi7


Информационный Канал Subscribe.Ru

Выпуск№18


Наши адреса:
www.x-program.narod.ru(наш официальный сайт последнее обновление 29.10.2004)
X-Program@narod. ru(наш Email пишите нам чтобы Вы хотели увидеть в нашей рассылке)

 

Здравствуйте уважаемые читатели! Вы, наверное, заметили. Что наш сайт с каждым разом становится всё хуже и хуже.
Поэтому мы даём вам шанс проявить себя в разработке дизайна для нашего сайта!
Если Вы согласились, то читайте далее.
Отправьте нам все, что сможете сделать, а именно: HTML страницы с красивым дизайном для нашего сайта, разнообразные кнопки для перехода по страницам, цветовые подборки ч все, что сможете сделать. Ответы присылайте на x-program@mail.ru

Заранее благодарны.  


Сегодня в выпуске:
1-Как определить размер рабочего стола без ТaskBarа
2-Как программно заменить обои на рабочем столе 4
3-64-битное кодирование
4-Алгоритм подсчёта времени, которое ушло на какую-либо операцию
5-Фото приколы

  • Как определить размер рабочего стола без ТaskBarа

  • Воспользуйтесь функцией SystemParametersInfo(), переслав ей в качестве параметров - SPI_GETWORKAREA и адрес структуры типа TRect, куда будут передан полученный результат: 
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      r: TRect;
    begin
      SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);
      Memo1.Lines.Add(IntToStr(r.Top));
      Memo1.Lines.Add(IntToStr(r.Left));
      Memo1.Lines.Add(IntToStr(r.Bottom));
      Memo1.Lines.Add(IntToStr(r.Right));
    end;
  • Как программно заменить обои на рабочем столе

  • procedure TForm1.FormCreate(Sender: TObject);
    var
    St : string;
    begin
    St := 'C:\MyWallPaper.Bmp';
    SystemParametersInfo(SPI_SETDESKWALLPAPER,UINT(St), nil, SPIF_SENDCHANGE);
    end;
  • 64-битное кодирование

  • { 64-битное декодирование файлов }
    { Arne de Bruijn }
    uses dos;
    var

    Base64: array[43..122] of byte;
    var

    T: text;
    Chars: set of char;
    S: string;
    K, I, J: word;
    Buf: pointer;
    DShift: integer;
    F: file;
    B, B1: byte;
    Decode: array[0..63] of byte;
    Shift2: byte;
    Size, W: word;
    begin
    FillChar(Base64, SizeOf(Base64), 255);
    J := 0;
    for I := 65 to 90 do
    begin
    Base64[I] := J;
    Inc(J);
    end;
    for I := 97 to 122 do
    begin
    Base64[I] := J;
    Inc(J);
    end;
    for I := 48 to 57 do
    begin
    Base64[I] := J;
    Inc(J);
    end;
    Base64[43] := J;
    Inc(J);
    Base64[47] := J;
    Inc(J);
    if ParamCount = 0 then
    begin
    WriteLn('UNBASE64 <mime-файл> [<выходной файл>]');
    Halt(1);
    end;
    S := ParamStr(1);
    assign(T, S);
    GetMem(Buf, 32768);
    SetTextBuf(T, Buf^, 32768);
    {$I-}reset(T);
    {$I+}
    if IOResult <> 0 then
    begin
    WriteLn('Ошибка считывания ', S);
    Halt(1);
    end;
    if ParamCount >= 2 then
    S := ParamStr(2)
    else
    begin
    write('Расположение:');
    ReadLn(S);
    end;
    assign(F, S);
    {$I-}rewrite(F, 1);
    {$I+}
    if IOResult <> 0 then
    begin
    WriteLn('Ошибка создания ', S);
    Halt(1);
    end;
    while not eof(T) do
    begin
    ReadLn(T, S);
    if (S <> '') and (pos(' ', S) = 0) and (S[1] >= #43) and (S[1] <= #122) and
    (Base64[byte(S[1])] <> 255) then
    begin
    FillChar(Decode, SizeOf(Decode), 0);
    DShift := 0;
    J := 0;
    Shift2 := 1;
    Size := 255;
    B := 0;
    for I := 1 to Length(S) do
    begin
    case S[I] of
    #43..#122: B1 := Base64[Ord(S[I])];
    else
    B1 := 255;
    end;
    if B1 = 255 then
    if S[I] = '=' then
    begin
    B1 := 0;
    if Size = 255 then
    Size := J;
    end
    else
    WriteLn('Ошибка символа:', S[I], ' (', Ord(S[I]), ')');
    if DShift and 7 = 0 then
    begin
    Decode[J] := byte(B1 shl 2);
    DShift := 2;
    end
    else
    begin
    Decode[J] := Decode[J] or Hi(word(B1) shl (DShift + 2));
    Decode[J + 1] := Lo(word(B1) shl (DShift + 2));
    Inc(J);
    Inc(DShift, 2);
    end;
    end;
    if Size = 255 then
    Size := J;
    BlockWrite(F, Decode, Size);
    end;
    end;
    Close(F);
    close(T);
    end.
  • Алгоритм подсчёта времени, которое ушло на какую-либо операцию

  • var
    OperBegin, OperEnd: TTimeStamp;
    Total: LongWord;

    begin
    OperBegin := DateTimeToTimeStamp(Now); {запоминается момент начала операции}

    {Здесь размещается код операции}

    OperEnd := DateTimeToTimeStamp(Now); {запоминается момент окончания операции}
    Total := OperEnd.Time - OperBegin.Time;
    end;
  • Фото приколы

  • №1 http://www.delphimaster.ru/cgi-bin/prikol.pl?id=4692

    №2 http://www.delphimaster.ru/cgi-bin/prikol.pl?id=615

    №3 http://www.delphimaster.ru/cgi-bin/prikol.pl?id=364

    №4 http://www.delphimaster.ru/cgi-bin/prikol.pl?id=491

    №5 http://www.delphimaster.ru/cgi-bin/prikol.pl?id=365


    http://subscribe.ru/
    http://subscribe.ru/feedback/
    Подписан адрес:
    Код этой рассылки: comp.soft.prog.program
    Отписаться

    В избранное