Участвуйте в конкурсе "Статья месяца" и вы выиграете книгу по Delphi от магазина ОЗОН. В конце каждого месяца Вами будет выбран лучший автор, который и получит книгу. Присылайте ваши статьи на
pixel@novgorod.net .
Авторов просим строго придерживаться
тематики рассылки.
Хотите поучаствовать в нашем
проекте, вы умеете работать с OpenGL или DX?
Присоединяйтесь вместе мы напишем
классную RPG ... То что готово, уже
есть на скриншотах в разделе проект... Желательны(Хотя не
обязательны , по ходу сами все поймете)
знания Borland C++ Builder или Delphi в сфере графики(или
просто кодеры).Все абсолютно свободно
freewareно и бесплатно. ПОЛНЫЙ ДОСТУП К
НАШИМ ИСХОДНИКАМ.
+Требуется помощь по поиску софта в сети.
+Требуется опытный образец заголовка
файла для карты.
Предлагаем
вашему вниманию еще одну идею, вы
посылаете мне письмо с вопросом по дельфи
, а я публикую ответ в рубрике FAQ. Одно
условие, с БД не преставать я в этой
области не фонтан... :( pixel@novgorod.net
ув. Подписчики. пожалуйста оцените труд данных авторов отдав свой голос за того, кого вы считаете достойным. 31 июля по итогам голосования лучшему автору будет
подарена книга от магазина "ОЗОН". Если вы хотите увидить своё имя среди авторов - то прочитайте условия конкурса
Предлагаю вашему
вниманию данный F.A.Q.(орфография писем
сохранена)
Q: Ты случ незнаеш как зделать чтобы например если на форму или кнопку
перетягивае какойнить файл то чтобы прога знала откуда он и че это
вобще такое?
A: да, есть такие
объекты , называются OLE (object library extension), он
поддерживает drag&drop для звуков видео и
картинок, хотя программу делаете вы и "продумать
чтобы прога знала откуда это и чо это ваще
:)" ваша задача.
Q: как сделать ссылку например на веб страницу??
A: Самый простой
способ создать файл, myurl.url, в нем написать
ссылку , а потом открыть с помощью
команды shellex.
Q: Как патчить файлы?
А: Вот пример, как
изменить сообщение при загрузке виндов(ВНИМАНИЕ
НЕ ИСПОЛЬЗУЙТЕ ЭТО БЕЗ ЗАГРУЗОЧНОГО ДИСКА И
КОПИИ ФАЙЛА ,КОТОРЫЙ КОВЫРЯЕТЕ!)
s := altstring;
assignFile(f, datei);
reset(f,1); for l := 0 to filesize(f)-length(altstring)-1 do begin Application.ProcessMessages;
seek(f,l);
blockread(f,altstring[1],length(altstring)); if altstring = s then begin seek(f,l);
blockwrite(f,neustring[1],length(neustring)); // String was found and patched. ShowMessage('Status: готово!'); end;
Application.ProcessMessages; end;
closeFile(f);
Вот почитал рассылку и решил тоже поделится опытом. И заодно поучаствовать в конкурсе.
В одной из рассыло я встретил статью о красивых кнопках, почитал и понял, что у меня есть модель по совершенней. Вот оцените.
Я думаю многие из вас встречали в чужих прогах такую фичу - круглая или вообще фих поймеш какой формы кнопка. Такие кнопки есть во многих
программах, а вот такие, чтобы жмакались они только при точном наведении мыши на эту кнопку, не абы как - где нибудь сбоку от кноки, там где ее и в
помине на рисунке нет, а именно точно по форме кнопки, редко встретишь.
Кнопки с не точным наведением бывают в тех случаях, когда действие OnClick обробатывается без всяких условий. В этом случае для того, чтобы
вызвать действие OnClick достаточно нажать на области прямоугольника ограничивающего фигуру кнопки. Возникает вопрос: "Как сделать так, чтобы
этого небыло?"
Поскольку речь идет о красивых кнопках, нарисуем их любой формы, одну обычную, другую нажатую. Берите любой графический редактор и
фантазируйте. Сохраните все рисунки в той папке где у вас будет хранится файл проекта.(Не забудте сохранитеь свой рис. в формате Bmp).
И еще нарисуйте еще один рисунок точно повторяющий форму вашей кнопки, залив форму кнопки одним цветом. Это будет маска по которой комп
будет проверять где находится указатель мыши над кнопкой или нет.
Теперь объявим глобальные переменные ButtonUpImg, ButtonDownImg, ButtonMask: TBitMap;
Далее в обработчика события OnCreate вобъем следующий код:
ButtonMask := TBitMap.Create;
ButtonMask.LoadFromFile('ButMask.bmp'); // Файл с масской кнопки
ButtonDownImg := TBitMap.Create;
ButtonDownImg.LoadFromFile('ButDown.bmp'); // Файл с нажатой кнопкой
ButtonUpImg := TBitMap.Create;
ButtonUpImg.LoadFromFile('ButUp.bmp'); // файл с кнопкой в обычном состоянии
Обработаем событие OnMouseDown написав седующий код:
if ButtonMask.Canvas.Pixels [x,y] = clYellow then
begin
Form1.Canvas.Draw(0,0,ButtonDownImg); // нарисуем на форме нажатую кнопку
end;
И последнее: обработаем OnMouseUp:
Form1.Canvas.Draw(0,0,ButtonUpImg);// вернем исходный вид кнопки
Данный метод обработки активности экрана по маске универсален, его можно применять и не только к кнопкам. Пофантазируйте, авось что и получится.
(От
редактора: Моей собаке нраеца, она улыбаеца
:) )
Procedure TForm1.CopyFileWithProgressBar(Source, Destination : string);
var
FromF,
ToF : file of byte;
Buffer : array[0..4096] of char;
NumRead : integer;
FileLength : longint;
begin
AssignFile(FromF,Source);
reset(FromF);
AssignFile(ToF,Destination);
rewrite(ToF);
FileLength:=FileSize(FromF);
With Progressbar1 do
begin
Min := 0;
Max := FileLength;
while FileLength > 0 do
begin
BlockRead(FromF,Buffer[0],SizeOf(Buffer),NumRead);
FileLength := FileLength - NumRead;
BlockWrite(ToF,Buffer[0],NumRead);
Position := Position + NumRead;
end;
CloseFile(FromF);
CloseFile(ToF);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFileWithProgressBar('c:\Windows\Welcome.exe','c:\temp\Welcome.exe');
end;