Вопрос № 59790: Здравствуйте!
У меня 3 вопроса:
1) Как можно объявить метод своего класса на событие изменение переменной этого класса?
2) Нельзя ли взять форму и сам рисунок кнопок из заданных рисунков?
3) Можно ли на фон в форме поставить *.jpg или...Вопрос № 59826: Здравствуйте!
Помогите, пожалуйста, написать такую программу:
Нужно узнать системную папку(C:Windows там, или что будет), потом, "пройти" в system32driversetc , открыть файл hosts и добавить туда такие строки
111.111.11.11 ...
Вопрос № 59.790
Здравствуйте!
У меня 3 вопроса:
1) Как можно объявить метод своего класса на событие изменение переменной этого класса?
2) Нельзя ли взять форму и сам рисунок кнопок из заданных рисунков?
3) Можно ли на фон в форме поставить *.jpg или *.gif и как?
procedure TMyClass.Setvariable(Value: integer);
begin
if Assigned (FonVarChange) Then FonVarChange(Self, value); Если событие активно вызываем до изменения.
FVariable:=value;
end;
2) Можно, но это достаточно долго описывать, поэтому отошлю к книге "Делфи глазами Хаккера" М.Фленова. Глава 3.8
Ответ отправил: Monah (статус: 5-ый класс)
Ответ отправлен: 22.10.2006, 17:56
Вопрос № 59.826
Здравствуйте!
Помогите, пожалуйста, написать такую программу:
Нужно узнать системную папку(C:Windows там, или что будет), потом, "пройти" в system32driversetc , открыть файл hosts и добавить туда такие строки
111.111.11.11 vkv.net.
111.111.11.11 forum.vkv
Но перед этим, нужно выполнить проверку на наличие этих строк.
Спасибо!
Приложение:
Отправлен: 22.10.2006, 22:55
Вопрос задал: Vic (статус: 10-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Vic!
Код в приложении. Вообще, совсем по-хорошему, можно было бы сформировать отдельный TStringList, поместить в него строки, которые надо добавить, передавать его в процедуру и в процедуре использовать метод AddStrings объекта TStringList.
Ну и еще эта процедура даже не пытается проверить, записывала ли она уже что-то в этот файл. Чтобы сделать все "по уму", можно воспользоваться чем-дь подобным этому:
AddOnlyExclusive(list: TStringList; line: string);
begin
if list.IndexOf(line) = -1 then list.Add(line);
end;
Отвечает: sir henry
Здравствуйте, Vic!
Можно сделать так:
1. Открыть этот файл как обычный текстовый с помощью Reset().
2. Считывать строки и проверять каждую на наличие '111.111.11.11 vkv.net' и '111.111.11.11 forum.vkv'.
3. Если таких строк не обнаружилось, то закрыть и открыть для добавления с помощью Append().
Приложение:
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 23.10.2006, 08:21 Оценка за ответ: 4 Комментарий оценки: Гм, скопировал, протестил - загрузка проца на 99-100%. Убрал проверку - всё нормально... А может у меня руки просто кривые?
Отвечает: Sattar
Здравствуйте, 11!
var
a : array[0..144] of char;
F:TextFile;
s:string;
Net,Forum:boolean;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetSystemDirectory(a, sizeof(a));
AssignFile(f,StrPas(a)+'driversetchosts');
Reset(f);
while not Eof(F) do
begin
readln(F,S);
if pos('vkv.net',s)=0 then Net:=true else Net:=False;
if pos('forum.vkv',s)=0 then Forum:=true else Forum:=False;
end;
Append(F);
if Net then Writeln(F,'111.111.11.11 vkv.net');
if Forum then Writeln(F,'111.111.11.11 forum.vkv');
CloseFile(F);
end;
Ответ отправил: Sattar (статус: 2-ой класс)
Ответ отправлен: 23.10.2006, 18:26