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

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


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

Выпуск 33

Как с нами связаться:
E-Mail
X-Program@mail.ru
SMS
+79046560786
ICQ
322284039
Форум по Delphi
http://narod.yandex.ru/userforum/?owner=x-program
Наш сайт
http://www.x-program.narod.ru


НОВОСТИ
***
21.01.05

1)Начата разработка программы MagDate TheEnd. В программе будет присутствовать поддержка скинов! Интерфейс полностью настраиваемый!
2)Мы проводим опрос. Вы бы хотели получить исходники программы MagDate Professional?. Ответы присылайте на X-Program@mail.ru


Сегодня в выпуске:
1. Вопросы подписчиков
2. Создаём заблокированный файл
3. Как сохранить веб страничку в JPEG
4. Удалить каталог со всем содержимым


Вопросы подписчиков


Вопрос N1
[Mcir]
Здравствуйте, X-Program.
1-Предположим, что у меня в проекте две формы (Form1 и Form2).Как сделать, чтобы они открывались в одном и том же окне?
2-Как сделать кнопку ссылкой на какой-то файл или папку?
3-Как запретить изменение размера окна? {Ответить}

Ответ №1
[X-Program]
Привет!
Отвечаю на первую часть вопроса.
Значит есть две формы Form1 и Form2. Создаём ещё одну форму, допустим Form3. Где-нибудь пишем
Form1.Parent:=Form3;
Form2.Parent:=Form3;
Всё. Form1 и Form2 окажутся внутри Form3.


Вопрос N2
[Сазори]
Здравствуйте! Где в интернете можно скачать стандартный набор Delphi7 и сколько он весит (в MB, конечно)?! {Ответить}



Создаём заблокированный файл
Есть как минимум два способа сделать это, но один из них, при помощи Windows API (LockFileEx и UnlockFileEx) используя параметр LOCKFILE_EXCLUSIVE_LOCK не очень хорош на мой взгляд.
Поэтому предлагаю другой способ, путём создания файла при помощи функции OpenFile:

hMyLockedFile := OpenFile( 'c:\DelphiWorld.dat', ofStruct,
OF_CREATE or OF_READWRITE or OF_SHARE_EXCLUSIVE );

Теперь Вы можете работать с файлом, но пользователи уже не смогут изменить его!



Как сохранить веб страничку в JPEG
procedure generateJPEGfromBrowser(browser: iWebBrowser2; jpegFQFilename: String;
srcHeight: Integer; srcWidth: Integer; tarHeight: Integer; tarWidth: Integer);
var
sourceDrawRect : TRect;
targetDrawRect: TRect;
sourceBitmap: TBitmap;
targetBitmap: TBitmap;
jpeg: TJPEGImage;
viewObject: IViewObject;
begin
sourceBitmap := TBitmap.Create ;
targetBitmap := TBitmap.Create ;
jpeg := TJPEGImage.Create ;
try
try
sourceDrawRect := Rect(0,0, srcWidth , srcHeight );
sourceBitmap.Width := srcWidth ;
sourceBitmap.Height := srcHeight ;

viewObject := browser as IViewObject;

if viewObject = nil then
Exit;

OleCheck(viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, self.Handle,
sourceBitmap.Canvas.Handle, @sourceDrawRect, nil, nil, 0));

// Resize Bitmap
targetDrawRect := Rect(0,0, tarWidth, tarHeight);
targetBitmap.Height := tarHeight;
targetBitmap.Width := tarWidth;
targetBitmap.Canvas.StretchDraw(targetDrawRect, sourceBitmap);

// Create JPEG from Bitmap and save it
jpeg.Assign(targetBitmap) ;
makeFileWriteable(jpegFQFilename);
jpeg.SaveToFile (jpegFQFilename);
finally
jpeg.free;
sourceBitmap.free ;
targetBitmap.free;
end;
except
// errors
end;
end;



Удалить каталог со всем содержимым
procedure TForm1.deletedirectory(dir: string);
var
sh: SHFILEOPSTRUCT;
st: string;
sr: tsearchrec;
pst: pchar;
begin
if findfirst(dir, faDirectory, sr) = 0 then
begin
//added by me
dir := longtoshortfilename(dir);
//original code
sh.Wnd := Form1.handle;
sh.wFunc := FO_DELETE;
Pst := StrAlloc(Length(dir {sr.Name}) + 1);
StrPLCopy(Pst, dir {sr.Name}, Length(dir {sr.Name}) + 1);
sh.pFrom := pst;
sh.pTo := nil;
sh.fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
sh.hNameMappings := nil;
sh.lpszProgressTitle := nil;
SHFileOperation(sh);
StrDispose(Pst);
end;
findclose(sr);
end;



Уважаемые подписчики, присылайте свои статьи и вопросы. Ведь мы, программисты, должны поддерживать и помогать друг другу!

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

В избранное