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

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


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

Ежедневная рассылка сайта Мастера DELPHI

DELPHIMASTER.ru

Выпуск от 10.10.03 09:04

Новые компоненты   |x|
  • Component File I/O (streaming) Routines v.1.03 (173kb) (09.10.03 11:34)
    Модуль дает возможность писать и читать компонент(ы) в/из файл(а). Формат файла может быть файлом ресурса windows, разновидностью DFM (object binary) файла или DFM (object text) файл. Для чтения/записи компонентов используется возможности компонентов Delphi работать с потоками. Необходимо только выбрать нужный компонент, а все операции происходят автоматически. Это простое в использовании и хорошее решение для хранения настроек всей формы или нескольких компонентов. Вам никогда больше не потребуется работать с реестром, ini-файлом или базой данных для хранения натроек программы.

    Новая версия компоненты
    С исходными текстами
    Компонента из раздела: Tools: Base classes
    Источник: www.torry.net   Автор: Erwin Haantjes
    -= · Tools · =- [Перевел: Владимир Андреев]

  • Для уменьшения объема писем здесь публикуется не весь список новых компонент, потому заглядывайте и на сайт!
Кое-что из нашей кладовки   |x|
  • PopupPanel webpauk kvl1@roma.zp.ua   (09.10.03 18:53)
    Наследник TPanel. 2 свойства: (primary) если к Panel привязан PopupMenu, то при нажатии на кнопку оно инициируется; (secondary) если PopupMenu отсутствует то кнопка обрабатывает событие OnClickButton.
    »»» Скачать: исходные тексты (2кб) демонстрационный EXE файл (195кб) посмотреть скриншот
  • TeleBase 2.1 Dimaz-z Dimaz-z@narod.ru   (06.10.03 18:04)
    Основные возможности: Поиск по базе данных, импортирование записей из другой базы данных, печать таблицы, звонилка, напоминание о днях рождения, отправка Email, отправка/приём SMS, экспорт таблиц в HTML...
    »»» Скачать: исходные тексты демонстрационный EXE файл посмотреть скриншот
  • интерпретатор "типа-бэйсика" и прокси-сервер (updated 2) Ketmar_ ketmar@kiit.net   (08.10.03 17:51)
    инерпретатор языка, похожего на структурный basic. и, как пример использования, прокси-сервер.

     прокси почти полностью переписан. теперь код должен быть понятнее и красивее %-) уже работает с ua.fm, но наблюдаются странные баги с www.liveinternet.ru %-( откуда баги -- я не понял, разбираться лень %-) следующие апдейты (если будут) начну, видимо, выкладывать где-нибудь на каком-нибудь сайте %-)
     кстати, при определённой сноровке из проксика можно сделать простенький web-сервак. исходник менять не надо, дотаточно пошаманить над скриптами. всё необходимое можно вычитать в примере скриптов, поставляемом с прокси.
     кстати, после изменения кода скрипта перезапускать прокси не обязательно, он поймёт, что скрипт изменился и перечитает его. то же самое справедливо для *.rc-файлов.

     сразу предупреждаю: прокси -- кривой. работает, но через неправильное нижнее отверстие.
     интерпретатор, кажется, достаточно стабилен. впрочем, сами понимаете, глубоко не тестировался.
     код -- не образец.
     докуентации нет. кому захочется -- разбирайтесь.
     лицензия -- GNU GPL.
    »»» Скачать: исходные тексты (77кб)
Лучшее из нашего FAQ   |x|
Мне нужно сделать такую прогу, которая будет работать как командная строка в windows2000. Только параметры для команды должны вводится в editы
unit admin;

interface

uses Windows, Classes, syncobjs, SysUtils;

type
TConsole=class(TThread)
private
FWnd:THandle;
FMsg:Cardinal;
ChildStdInWr,ChildStdoutRd:THandle;
FCS:TCriticalSection;
FCommandList:TStringList;
procedure CreateConsole;
protected
procedure Execute;override;
public
constructor Create(AWnd:THandle; AMsg:Cardinal);reintroduce;
procedure AddCommand(s:string);
end;

implementation

{ TConsole }

constructor TConsole.Create(AWnd:THandle; AMsg:Cardinal);
begin
FWnd:=AWnd;
FMsg:=AMsg;
FCS:=TCriticalSection.Create;
FCommandList:=TStringList.Create;
inherited Create(false);
end;

procedure TConsole.AddCommand(s:string);
begin
FCS.Enter;
try
  FCommandList.Add(s+#13#10);
finally
  FCS.Leave;
end;
end;

procedure TConsole.Execute;
var
buffer:Pointer;
bytesRead:DWORD;
begin
CreateConsole;
while not Terminated do
begin
  sleep(200);
  PeekNamedPipe(ChildStdoutRd,nil,0,nil,@bytesRead,nil);

  //?eoaai
  if bytesRead>0 then
  begin
    GetMem(buffer,bytesRead+1);
    try
      if not ReadFile(ChildStdoutRd,buffer^,bytesRead,bytesRead,nil) then
        RaiseLastWin32Error;
      PChar(buffer)[bytesRead]:=#0;
      SendMessage(FWnd,FMsg,Integer(PChar(buffer)),0);
    finally
      FreeMem(buffer);
    end;
  end;

  //Ieoai
  FCS.Enter;
  try
    while FCommandList.Count>0 do
    begin
      if not WriteFile(ChildStdinWr,PChar(FCommandList[0])^,Length(FCommandList[0]),bytesRead,nil) then
        RaiseLastWin32Error;
      FCommandList.Delete(0);
    end;
  finally
    FCS.Leave;
  end;
end;
end;

procedure TConsole.CreateConsole;
var
sa:TSecurityAttributes;
si:TStartupInfo;
pi:TProcessInformation;
comSpec:PChar;
bufLen:DWORD;
ChildStdoutWr, ChildStdInRd, Tmp1, Tmp2:THandle;
begin
sa.nLength:=sizeof(TSecurityAttributes);
sa.bInheritHandle:=true;
sa.lpSecurityDescriptor:=nil;

if not CreatePipe(ChildStdoutRd, ChildStdoutWr, @sa, 0) then
  RaiseLastWin32Error;
if not CreatePipe(ChildStdinRd, ChildStdinWr, @sa, 0) then
  RaiseLastWin32Error;

if not DuplicateHandle(GetCurrentProcess(), ChildStdoutRd, GetCurrentProcess(), @Tmp1, 0, False, DUPLICATE_SAME_ACCESS) then
  RaiseLastWin32Error;
if not DuplicateHandle(GetCurrentProcess(), ChildStdinWr, GetCurrentProcess(), @Tmp2, 0, False, DUPLICATE_SAME_ACCESS) then
  RaiseLastWin32Error;

CloseHandle(ChildStdoutRd);
CloseHandle(ChildStdinWr);
ChildStdoutRd:=Tmp1;
ChildStdinWr:=Tmp2;

bufLen:=GetEnvironmentVariable('ComSpec',nil,0);
GetMem(comSpec,bufLen);
GetEnvironmentVariable('ComSpec',comSpec,bufLen);

GetStartupInfo(si);
si.cb:=sizeof(TStartupInfo);
si.dwFlags:=STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
si.hStdInput:=ChildStdInRd;
si.hStdOutput:=ChildStdOutWr;
si.hStdError:=ChildStdOutWr;
si.wShowWindow:=SW_HIDE;
if not CreateProcess(nil,comSpec,nil,nil,true,CREATE_NEW_CONSOLE,nil,nil,si,pi) then
  RaiseLastWin32Error;
end;
end.

пример использования
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Admin,
StdCtrls;

type
TForm1 = class(TForm)
  Memo1: TMemo;
  procedure FormCreate(Sender: TObject);
private
  { Private declarations }
public
  { Public declarations }
  c:TConsole;
  procedure Z(var Msg:TMessage);message WM_USER+1;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
c:=TConsole.Create(Handle,WM_USER+1);
c.AddCommand('ping 192.168.1.23');
end;

procedure TForm1.Z(var Msg: TMessage);
var
p:PChar;
begin
p:=PChar(Msg.wParam);
OemToCharBuff(p,p,length(p));
Memo1.Lines.Add(p);
end;
end.

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
  • Искуственный интелект!
  • Windows 98 и Harddisk 80 Gb
    Начнем с того, что биос этот винт видит правильно, но вот уже FDISK видит всего 10 Gb. Пришлось воспользоваться ...
  • Форматирование таблицы формата Excel
    Спасибо всем кто попытался помочь мне! Я хочу программно из Delphi отформатировать так как понадобится таблицу Excel в ...
  • KOLOpenSaveDialog мешает закрыться приложению?
    Кооперативные приложения обмениваются собственными зарегистрированными сообщениями. Одно из таких сообщений - сообщение ...
  • Прокси
    Имеется: 1. Доступ в Интернет через локалку 2. Авторизация прокси по IP Вопрос: можно ли подставить нужный IP прокси (...
  • RichEdit, координаты символа
    Доброе время суток, Мастера! вопрос у меня такой - нужно получить координаты символа(подстроки) в определенной строке в ...
  • Эфекты от Winamp'а
    Уважаемые мастера,хочу узнать можно ли к плееру созданному на Делфи,подключить эффекты визуализации от Winamp'а. С ...
У нас большой выбор статей   |x|
Перевод и адаптация под DELPHI раздела Win32 SDK посвященного клавиатурным курсорам
Поскольку только одно окно может иметь в данный момент фокус ввода (быть активным), то в системе может быть только один курсор. Каждое окно, содержащее курсор, должно создавать его при получении фокуса, и освобождать при потере фокуса.
Все программы, написанные под Microsoft® Windows® могут создавать курсоры, отображать или скрывать их, перемещать их, а также изменять время мерцания...
Новинки книжного рынка   |x|
Веб-сервисы. Для профессионалов
Книга содержит описание новой и важной Интернет-технологии, которая активно завоевывает всеобщее признание, несмотря на то, что еще находится в стадии развития. Степень актуальности, достоверности и объективности информации, представленной в книге, очень высокая, поскольку книга написана членом нескольких рабочих групп консорциума W3C, занимающихся выработкой и утверждением новейших стандартов именно в этой области. Материал рассчитан на разработчиков программного обеспечения, связанных с технологиями распределенной обработки информации, и их руководителей.
Автор: Ньюкомер Э.
Другие сайты о DELPHI   |x|
САМЫЙ БОЛЬШОЙ КАТАЛОГ РЕСУРСОВ ПО ПРОГРАММИРОВАНИЮ
спешите добавить туда свой ресурс

» Оценка сайта: 3
Опрос населения :)
Что мешает плохому танцору?
»»» Эти штуки... ;)
»»» Танцовщица
»»» Крылья
»»» Оппозиция
»»» Что и хорошему
»»» Ничего мне не мешает!
Для души

Хокку дня
Каждую ночь перед сном
Читаю Алмазную Сутру
Жена обломившись, рыдает...

Афоризмы
"Каждого ждет удивительная судьба, но не каждого ей суждено дождаться." (Артур Васильев)

Фраза дня
Искусство вождения требует жертв

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Дюранго в Колорадо (США) считается преступлением появиться на улице в одежде, присущей другому полу.
В городе Лехай в Небраске (США) издано блестящее по идиотизму распоряжение, официально запрещающее продавать дырки от бубликов.

И на закуску коротенький анекдот
Учительница в школе грузит:
- Вы знаете, дети, если человек плохо видит одним глазом, то вторым, как правило, он видит гораздо лучше. Кто-нибудь может привести аналогичный пример?
Встает Вовочка и говорит:
- Знаете, Марь Ванна, если у кого-то одна нога короче, то другая, обычно, длиннее.

Фотоприколы.
Начните день с хорошего настроения!
http://www.delphimaster.ru/cgi-bin/prikol.pl?id=23588


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (merlin@delphimaster.ru)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное