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

RusFAQ.ru: Программирование на Delphi


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


RusFAQ.ru: Программирование на Delphi

Выпуск № 064
от 22.08.2002, 11:20

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 145
Отправлено ответов: 229
Активность: 157.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Igoryk
Статус: Опытный
Общий рейтинг: 114.18
URL: В помощь программисту
[Подробней >>]
Pablo
Статус: Профессиональный
Общий рейтинг: 129.64
URL: Моя страничка
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 117.25
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 119.97
URL: Пристанище неодинокого программиста
[Подробней >>]
Necro
Статус: Начальный
Общий рейтинг: 115.18
[Подробней >>]
Painbringer
Статус: Профессиональный
Общий рейтинг: 188.26
URL: Музычка, стишки и прочая дрянь
[Подробней >>]
 
ROM
Статус: Доверительный
Общий рейтинг: 110.91
[Подробней >>]
Sanya
Статус: Опытный
Общий рейтинг: 131.75
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 131. Здравствуйте эксперты!!! 1. Не знаете ли как создать через Delphi заблокированный файл. Чтобы его не... (ответов: 3)
Вопрос № 132. Что надо написать в коде кнопки, чтобы при нажатии на нее печатался( из принтера, ес-сно) текст из M... (ответов: 1)
Вопрос № 133. Вот тут вопросик возник: Я сделал прорамму, которая Создает новую кнопку в меню, вызываемом правой к... (ответов: 3)
Вопрос № 134. Я делаю текстовой редактор на Delphi. Мне нужно, чобы при щелчке на текстовом файле открывался именн... (ответов: 4)
Вопрос № 135. При щелчке правой на файле .TXT Появляется меню в котором, добавлена новая кнопка RENAME (в реестре... (ответов: 2)
Вопрос № 136. Приветствую всех! Вопрос такой: есть прога, в которой 5-6 форм можно ли закинуть формы в ДЛЛьку, что... (ответов: 2)

Вопросов: 6, ответов: 15


 Вопрос № 131

Здравствуйте эксперты!!!
1. Не знаете ли как создать через Delphi заблокированный файл. Чтобы его нельзя было с винчестера удалить??? (конечно же не посредствами форматирования).
2. Какие вы знаете методы регистрации(поподробнее plz)



Вопрос отправлен: 17.08.2002, 11:49
Отправитель: pcgamer

[Следующий вопрос >>] [Список вопросов]

Отвечает Igoryk

Приветствую Вас, pcgamer!
1. Можно просто открыть и не закрывать файл. Удалить его будет невозможно.

Ответ отправлен: 17.08.2002, 18:03
Отправитель: Igoryk


Отвечает Pablo

Здравствуйте, pcgamer!
Заблокировать файл можно открыв его на запись или чтение в соответствующим доступом разрешения на совместное открытие (помойму называтся DENY_ALL). Ну а просто от автоматического стирания разными програми, то выставить фалу атрибут только для чтения, и чтобы удалить такой файл этот атрут снять можно, всякие NT также позволяются производить доступ к файлам с помощью на строек пользоваетля, т.е. если для фалйа указать что его стирать может только админ, то пользователь и доступом ниже не смогет его стереть.


Ответ отправлен: 17.08.2002, 14:06
Отправитель: Pablo


Отвечает baldr

Доброе время суток, pcgamer!
1. Самый простой способ - открыть файл на запись... В это время доступ к файлу любой
программой, кроме этой, даже для чтения будет запрещен... Но это надо делать в течение всего
времени, пока требуется блокировка. Из-под DOS этот файл удалится легко... Второй способ,
который раньше использовали некоторые хакерские группы для всяких приколов: создать файл с
именем, которое не обрабатывается системой корректно... Например, с недопустимыми символами в
имени или вообще с нулевым именем. Такое сделать, конечно, сложновато, но возможно...
А удаляются они только специальными программами типа diskedit... Scandisk их, если все нормально
сделано, не видит...
2. Разные. :) Если ты хочешь подробный ответ, уточни, что ты имеешь в виду...


Ответ отправлен: 20.08.2002, 00:34
Отправитель: baldr


 Вопрос № 132

Что надо написать в коде кнопки, чтобы при нажатии на нее печатался( из принтера, ес-сно) текст из MEMO1 ?
Спасибо



Вопрос отправлен: 17.08.2002, 20:57
Отправитель: BlackCat

[Следующий вопрос >>] [Список вопросов]

Отвечает Артём Шегеда

Приветствую Вас, BlackCat!

Пришлось полчаса потратить на поиск решения - но результат оправдал затраченные усилия.


Приложение:

Ответ отправлен: 19.08.2002, 17:01
Отправитель: Артём Шегеда


 Вопрос № 133

Вот тут вопросик возник:
Я сделал прорамму, которая Создает новую кнопку в меню, вызываемом правой кнопкой мыши на файле .txt и переименовывает в .html
Procedure TForm1.OpenFFile(FileName:String);
var n:integer;f:string;
Begin
f:=filename;
while pos('.',f)<>0 do
begin
delete(f,pos('.',f),80);
end;
Renamefile(filename,f+'.html');
form1.close;
End;
procedure TForm1.FormShow(Sender: TObject);
var
DOSParam: string;
I:Integer;
begin
DOSParam:='';
IF ParamCount >= 1
then
Begin
For I:=1 to ParamCount-1 Do
DOSParam:=DOSParam+ParamStr(I)+' ';
DOSParam:=DOSParam+ParamStr(ParamCount);
OpenFFile(DOSParam)
End;
end;
initialization
randomize;
end.
Но здесь возникла проблема, если например я щелкаю по файлу c:Текстовый документ.txt программа переименовывает его в ТЕКСТО~1.txt. Подскажите, почему и как удалить енто сокращение файла.



Вопрос отправлен: 17.08.2002, 20:51
Отправитель: PC Gamer

[Следующий вопрос >>] [Список вопросов]

Отвечает Pablo

Добрый день, PC Gamer!
Это не программа переименовывает его в такой вид это этот файл имеет такой вид в короткой форме пердствления 8.3, т.е. имя состоит из 8-и символов, а расширение из 3-х, тогда как в Виндах имена файлом имеют ограничение около 254 символов. ДОС сам по себе не может читать имена в виде как их представляет Виндовс, а только в виде 8.3.

Ответ отправлен: 17.08.2002, 22:53
Отправитель: Pablo


Отвечает Necro

Здравствуйте, PC Gamer!
Это глупость какая-то, а не программа... Сначала все параметры выписываются в одну строку, затем всё, что идет после первой точки убирается, а потом файл с именем <список файлов, разделённый пробелами> переименовывается в <то, что было до первой точки>.html... Она и не должна работать. Если здесь приведена не вся программа, то скорее всего, судя по имени переменной, ты используешь досовую процедуру, а она длинных имен и имен с пробелами не понимает и заменяет их на <первые 6 букв>~<номер такого файла>.<расширение>, заменяя все русские буквы заглавными... А это и есть твой результат.
Не проще ли так(создай консольное приложение и замени весь текст на приложение)? Программа не выводит своего окна, не занимает много места в памяти и на диске...
Да, и ещё совет - замени поиск первой точки на поиск последней. Нередко встречаются файлы типа "15.If only tears could bring you.txt" - тексты песен и т.п.

Приложение:

Ответ отправлен: 17.08.2002, 21:58
Отправитель: Necro


Отвечает Painbringer

Приветствую Вас, PC Gamer!
походу проблема в paramstr (хотя у меня она работает с динными именами нормально)...
!!! БЛИН! ЧУВАК! ТЕБЯ СО СРЕДСТВАМИ ОТЛАДКИ РАБОТАТЬ ВООБЩЕ НЕ УЧИЛИ?! ДЫК ПОСТАВЬ ТЫ БРЯКПОИНТ ВНУТРИ ЦИКЛА И СМОТРИ КТО ТЕБЕ ТАМ ЧЕГО ВОЗВРАЩАЕТ! А ТО Ж НИЧЕМУ И НЕ НАУЧИШСЯ! !!!

Ответ отправлен: 19.08.2002, 00:09
Отправитель: Painbringer


 Вопрос № 134

Я делаю текстовой редактор на Delphi. Мне нужно, чобы при щелчке на текстовом файле открывался именно мой редактор c загруженным текстом из ентого файла, в реестре я уже все прописал (HKEY_CURRENT_ROOT xtfile).
Но проблема в том, что программа открывается, а Memo1 остается пустым??? :0 Замучался составлять ентот вопрос :0



Вопрос отправлен: 18.08.2002, 13:10
Отправитель: PC Gamer

[Следующий вопрос >>] [Список вопросов]

Отвечает ROM

Доброе время суток, PC Gamer!
А кто будет файл- то открывать? Пушкин? Имя текстового файла передается твоей программе как параметр. Вот и обрабатывай его.

Ответ отправлен: 18.08.2002, 19:02
Отправитель: ROM


Отвечает Pablo

Приветствую тебя, PC Gamer!
А в твою прогу через параметры коммандной строки что передается? Ты ее вообще то обрабатываешь как надо?!

Ответ отправлен: 18.08.2002, 17:15
Отправитель: Pablo


Отвечает Painbringer

Добрый день, PC Gamer!
А прогу приложить никак? конечно - это большая комерческая тайна :) но хотя бы маленький глючный кусок где ты этот свой loadfromfile вызываешь!

Ответ отправлен: 19.08.2002, 00:09
Отправитель: Painbringer


Отвечает Артём Шегеда

Добрый день, PC Gamer!

Уже бы опубликовал свой "шедевр" в чистом виде - мы бы его по косточкам разобрали, косточки перемыли и вправили бы на место. Если твой код похож на тот, что в приложении - но всё равно не работает, то смотри в реестре: ты что-то не так прописал. Не забыл ли ты указать программе параметр "%1"?

Приложение:

Ответ отправлен: 19.08.2002, 12:53
Отправитель: Артём Шегеда


 Вопрос № 135

При щелчке правой на файле .TXT Появляется меню в котором, добавлена новая кнопка RENAME (в реестре сделал). Нажимаешь на нее и расширение файла, на котором ты кликнул меняется на новое, которое ты укажешь в InputBox. Все получилось но проблема в том, что сам файл переменовывается с сокращениями в имени. Почему??? Как от ентого избавится??? Объясните кто можешь (только не надо критиковать функцию OpenFFile, там по-моему все верно. Это видимо с параметрами какой-то косяк):)
unit Unit1;
interface
uses
SysUtils,Classes, Forms,REGISTRY,Windows,dialogs;
type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
Procedure OpenFFile(FileName:String);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
ffilename:string;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}

Procedure TForm1.OpenFFile(FileName:String);
var n:integer;f:string;s:string;
Begin
f:=filename;
while pos('.',f)<>0 do
begin
delete(f,pos('.',f),80);
end;
s:=InputBox('Новое расширение','Ввдите новое расширение для файла','');
Renamefile(filename,f+'.'+s);
form1.close;
End;

procedure TForm1.FormShow(Sender: TObject);
begin
OpenFFile(paramstr(1));
end;
end.



Вопрос отправлен: 18.08.2002, 19:38
Отправитель: PC Gamer (pcgamer@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Necro

Здравствуйте, PC Gamer!
Я скопировал твою программу один-в-один, запустил - всё работает. Может, у тебя с виндой проблемы?

Ответ отправлен: 18.08.2002, 21:22
Отправитель: Necro


Отвечает Артём Шегеда

Здравствуйте, PC Gamer!

Программа в приложении устрашит любого своими размерами. Сохрани её в файл RenameFile.DPR и открой Делфями.

Приложение:

Ответ отправлен: 19.08.2002, 13:11
Отправитель: Артём Шегеда


 Вопрос № 136

Приветствую всех!
Вопрос такой:
есть прога, в которой 5-6 форм
можно ли закинуть формы в ДЛЛьку, что бы уменьшить размер ехе-шника, и вызывать их из библиотеки и как это сделать?
Как ставить балы за ответы? В письмах ничего такого не наблюдается(
Заранее спасибо.



Вопрос отправлен: 19.08.2002, 08:05
Отправитель: Victor

[Следующий вопрос >>] [Список вопросов]

Отвечает Sanya

Добрый день, Victor!
Создавай формы во время выполнения что-то типа:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormaShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Forma: TForm;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Forma:= TForm.Create(Self) ;
with Forma do
begin
Left := Random(self.ClientWidth);
Top := Random(self.Height);
width:=150;
Height:=250;
OnShow:= FormaShow;
Name:='MyForm';
Caption:='Это новая форма';
Tag:=155;
Show;
end;
end;
procedure TForm1.FormaShow(Sender: TObject);
begin
MessageDlg('Ща будет новая форма.', mtInformation, [mbOk], 0);
end;
end.

Ответ отправлен: 19.08.2002, 08:47
Отправитель: Sanya


Отвечает Pablo

Доброе время суток, Victor!
Ну форму лучше не в DLLку, а в BPLку засунунть. А делается это довольно просто тебе просто надо создать новую BPL и сунуть в нее форму, т.е. создать в BPL-проекте файл CPP связанный с файлом DFM, то есть так же как и в обычном проекте.

Ответ отправлен: 21.08.2002, 22:53
Отправитель: Pablo



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (27)
Perl (14)
Delphi (17)
Pascal (26)
Basic / VBA (11)
Java / JavaScript (13)
PHP (12)
MySQL / MSSQL (12)
Пользователю
Windows 95/98/Me (44)
Windows NT/2000/XP (31)
"Железо" (38)
Поиск информации (18)
Администратору
Windows NT/2000/XP (16)
Linux / Unix (15)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (7)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

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

В избранное