bayarookie
-
Постов
298 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Галерея
События
Сообщения, опубликованные bayarookie
-
-
Если компы рядом, то вроде просто, а если через инет, то лучше через Open Battle.net, а иначе придётся мудрить со всякими хамачами и т.п.
Насчёт рун лучше посмотреть всякие справочники по дьябло 2
-
это из энциклопции
Skill Points
-------------------------------------------
Summoning:
Oak Sage 5-10 or Heart of Wolverine 5-10
Grizzly 10-20 or Dire Wolfs 10-20
Elemental:
Tornado 1-5
Hurricane 20
Armageddon 20
Skill Points
-------------------------------------------
Shape Shifting:
Werewolf 20
Lycanthropy 20
Feral Rage 5
Fury 20
Summoning:
Oak Sage 20
Grizzly 1~20
Skill Points
-------------------------------------------
Shape Shifting:
Werebear 20
Lycanthropy 20
Summoning
Oak Sage 5-10
Heart of Wolverine 20
Grizzly 1~20а по опыту скажу, что ближний бой на Hell не рулит вообще, скоро тоже попробую очередной раз друидом пройти Hell, только теперь буду первый вариант пробовать
-
games.gagnet.ru
только там никого почти не бывает никогда почти что
а вернуться на 1.11 проще заново переустановив, без этого можно только взять у кого-нибудь вот эти файлы:
Bnclient.dll
D2Client.dll
D2CMP.dll
D2Common.dll
D2DDraw.dll
D2Direct3D.dll
D2Game.dll
D2Gdi.dll
D2gfx.dll
D2Glide.dll
D2Lang.dll
D2Launch.dll
D2MCPClient.dll
D2Multi.dll
D2Net.dll
D2sound.dll
D2VidTst.exe
D2Win.dll
Diablo II.exe
Fog.dll
Game.exe
Storm.dll
сокровишница мелкая и кубэто официальная версия, во всяких самодельных модификациях увеличивают вот это всё
-
Внимание! Вы покидаете пятикопеечную зону =)
-
El_Matador
а версия у тебя какая? Я там бываю, а версию специально поставил 1.11b, чтобы можно было к другим подцепляться, а на 1.12, кажется, почти никто не играет на гагнете
-
как связать progressbar и загрузку файла в листбокс?
ProgressBar1.Max := FileContent.Count;
for i := 0 to FileContent.Count - 1 do
begin
ProgressBar1.Position := i;
ListBox1.Item.Add(тут что-то там
Application.ProcessMessages;
end;может напутал чего
-
проще было бы через Application.ProcessMessages сделать, в этих потоках легко запутаться, кинь куда-нибудь исходники, посмотрим.
-
http://regexpstudio.com/Downloads/regexpr_RU.rar
ставишь, подцепляешь, много читаешь
-
У тебя n используется при вводе данных, то есть ограничиваешь бд тремя записями, а если добавить понадобится?
-
Cloud
зачем вводить элемент, у тебя текущая позиция в бд хранится в переменной nn.
Процедуры first и last я не доделал, потому что лень было расписывать их.
А у тебя в first и last не хватает read(f, auto);
-
Cloud
вместо n пиши что-нибудь другое, просто когда переделывал код TolkienDRR, то не посмотрел, что у тебя n уже используется
-
begin;
reset (f);
writeln('vvedite marku mashini');
readln(y);
writeln('vvedite cvet mashini');
readln(g);
while not eof(f) do
begin
read (f,auto);
if (auto.marka=y) and (auto.coloour=g) then
writeln('FIO vladelca: ',auto.FIO);
end;
close (f);
writeln;
end;procedure cvedeniya;
Добавлено спустя 8 минут 43 секунды:
Cloud
next prev и тд возьми у TolkienDRR
поменяй inc(n) на n:=n+1; а dec(n) на n:=n-1;
Добавлено спустя 7 минут 27 секунд:
begin
n:=n+1;
clrscr;
reset(F);
if n>=0 and n<=filesize(F) then
begin
seek(F,n);
read(F,auto);
end
else
n:=n-1;
close(f);
writeln(auto.FIO:30,
auto.marka:10,
auto.colour:13,
auto.number:8);
end;
procedure previos;
begin
n:=n-1;
clrscr;
reset(F);
if n>=0 and n<=filesize(F) then
begin
seek(F,n);
read(F,auto);
end
else
n:=n+1;
close(f);
writeln(auto.FIO:30,
auto.marka:10,
auto.colour:13,
auto.number:8);
end;
procedure first;
begin
n:=0;
end;
procedure last;
begin
reset(f);
n:=filesize(f);
close(F);
end;procedure next;
-
KoHoVaLOFF
Профессиональная съёмка на видеоплёнку - способ переноса в цифру.
Любительская на цифровые видеокамеры - обычно DVD.
А с фотоаппаратов, мобильников, веб-камер - можно причислить к CAM.
Оцифрованные оригиналы - VCD, DVD, HD-DVD, BD и что ещё?
-
только подправил чуть-чуть:
uses crt;
const n = 3; k = 0;
type
rec = record
FIO: string [30];
marka: string [10];
colour: string [13];
number: integer;
end;
mas = array [1..n] of rec;
var
i, flag, kr, w: byte;
f: file of rec;
mashina: mas;
auto: rec;
procedure vvod;
begin
rewrite (f);
for i:=1 to n do
begin
textcolor(15); write('FIO vladelca: '); readln(auto.FIO);
textcolor(2); write(' marka avtomobilia: '); readln(auto.marka);
textcolor(14); write(' cvet mashini: '); readln(auto.colour);
textcolor(13); write(' nomer mashini: '); readln(auto.number);
textcolor(4); write(f, auto);
end;
close (f);
end;
procedure vivod;
begin
reset(f);
while not eof(f) do
begin
read(f, auto);
writeln(auto.FIO:30,
auto.marka:10,
auto.colour:13,
auto.number:8);
end;
close(f);
readkey;
end;
procedure belii;
begin;
reset (f);
w := 0;
while not eof(f) do
begin
read(f, auto);
if auto.colour = 'belii' then
inc(w);
end;
write('kolichestvo belih mashin: ', w);
close(f);
writeln;
end;
procedure next1;
begin
reset (f);
//типа перемещение по бд
seek(f, 1);
read(f, auto);
writeln(auto.FIO:30,
auto.marka:10,
auto.colour:13,
auto.number:8);
seek(f, 0);
read(f, auto);
writeln(auto.FIO:30,
auto.marka:10,
auto.colour:13,
auto.number:8);
close(f);
writeln;
end;
begin
clrscr;
assign(f, 'automoto.dat');
flag := 0;
textbackground(1);
clrscr;
window(10, 5, 70, 20);
textbackground(0);
clrscr;
repeat
writeln('1. vvod');
writeln('2. vivod');
writeln('3. belii');
writeln('0. vihod');
write('vvedite nomer: ');
readln(kr);
case kr of
1: vvod;
2: vivod;
3: belii;
4: next1;
0: break;
end;
flag := 1;
until flag = 0;
end.program automoto;
а вообще я не программист, а слесарь, поэтому меня не спрашивайте и на паскале не писал никогда, сперва на фокспро, потом на дельфи
-
Это означает, что кто-то раздаёт неверный кусок, поэтому уторрент временно банит этот айпи, тому человеку надо перехэшировать раздачу
-
private
FFileName: string;
protected
procedure Execute; overrided;
public
constructor Create(CreateSuspennded: Boolean; const AFileName: string);
end;
...
constructor TYourThread.Create(CreateSuspennded: Boolean;
const AFileName: string);
begin
inherited Create(CreateSuspennded);
FFIleName := AFileName;
end;
procedure TYourThread.Execute;
begin
try
...
if FFileName = ...
...
except
...
end;
end;
...
TYourForm = class(TForm)
...
private
YourThread: TYourThread;
procedure LaunchYourThread(const AFileName: string);
procedure YourTreadTerminate(Sender: TObject);
...
end;
...
procedure TYourForm.LaunchYourThread(
const AFileName: string);
begin
YourThread := TYourThread.Create(True, AFileName);
YourThread.Onterminate := YourTreadTerminate;
YourThread.Resume
end;
...
procedure TYourForm.YourTreadTerminate(Sender: TObject);
begin
...
end;
...
end.TYourThread = class(TTHread)
Добавлено спустя 12 минут 34 секунды:
вот ещё нашёл:
Современные операционные системы Windows 32 обеспечивают не только многозадачность, т. е. возможность параллельной работы нескольких программ, но и многопоточность, когда в рамках одной программы организуется несколько параллельно выполняемых фрагментов (потоков), каждый из которых конкурирует с другими потоками за наиболее важный ресурс - время центрального процессора. В многопоточном режиме время ЦП выделяется для каждого процесса небольшими порциями (квантами), по истечении этого времени управление передается другому потоку и т. д. до тех пор, пока потоки не закончат свою работу. В любой работающей программе организуется как минимум один поток для команд программы. С помощью объектов класса TThread программа может создать дополнительные потоки для проведения некоторой фоновой работы (например, текстовый процессор Word создает дополнительные потоки для проверки правильности орфографии, разбивки на страницы, печати документа и т. п.).
Для создания дополнительного потока в программах Delphi предназначен специальный модуль потока в репозитории он обозначен пиктограммой Thread Obiecll). При выборе этого модуля Delphi запрашивает имя класса, который будет дочерним для основополагающего класса TThread. Необходимость наследования связана с тем, что класс TThread содержит абстрактный метод Execute, который, собственно, и должен исполняться в рамках нового потока и который, следовательно, обязан перекрываться в потомках.
После указания имени дочернего класса Delphi раскрывает дополнительный модуль с обширным комментарием и заготовкой для дочернего класса.
Например (с соответствующим переводом):
interface
uses
Classes;
type
MyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
{ Важно: Методы и свойства объектов из библиотеки визуальных компонентов
могут использоваться только в рамках вызова метода Synchronize, например:
Synchronize(UpdateCaption);
где метод UpdateCaption должен быть подобен такому
procedure MyThread.UpdateCaption;
begin
Formi.Caption := 'Новый текст метки';
end; }
(MyThread}
procedure MyThread.Execute;
begin
{ Пожалуйста, поместите код потока в этом месте }
end;
end.unit Unit1;
Программирование потока ничем не отличается от программирования обычной программы за одним важным исключением: поток не должен использовать методы и свойства визуальных компонен тов, которые приводят к изменению внешнего вида программа Точнее, он может это делать только при обращении к специальному методу synchronize, с помощью которого осуществляется синхронизация исполнения главного потока программы с дополнительным потоком.
Для иллюстрации приемов работы с потоком создадим программу, которая будет непрерывно обновлять содержимое многострочного редактора и при этом осуществлять математические вычисления.
Для ее создания сначала на пустую форму поместите панель TPpanel, очистите ее свойство caption и поместите в Align значение аlRight - эта панель предназначена для размещения редактора TSpinEdit, кнопки TButton и индикатора TGauge и всегда должна располагаться в правой части окна программы. Поместите на панель перечисленные компоненты так, как это показано на рисунке (компоненты TSpinEdit и TGuage находятся на странице samples палитры компонентов).
Установите в свойство SpinEditl.Value 3начение 2, присвойте свойству Gaugel. Kind значение gkPie, Gaugel. BorderStyle-bsNone и Button1.Caption — 'Квадрат'.
На свободное место формы положите компонент TMemo и установите для него в свойство Align значение alСlient, а свойство Name- 'mmOutput'.
Теперь создадим обработчик события Button1.Click: при нажатии на кнопку вначале содержимое редактора SpinEdit1 возводится в квадрат до тех пор, пока отображаемое в нем значение не слишком большим (больше 10 +1233 ). В этот момент надпись на кнопке меняется на “корень”, а нажатие на нее вычисляет корень квадратный ИЗ величины SpinEdit1.
Дважды щелкните по кнопке Button1и напишите такой код:
begin
if Tag = 0 then
begin
SpinEditl.Text := Float - ToStr(sqr(StrToPloat(SpinEditl.Text)));
if StrToFloat(SpinEditl.Text) > 1 el233 then
begin
Tag := 1;
Buttoni.Caption := 'Корень'
end
end
else
begin
SpinEditl.Text := FloatToStr(sqrt(StrToFloat(SpinEditl.Text)));
if StrToFloat(SpinEditl.Text) < 2 then
begin
SpinEditl.Value := 2;
Tag := 0;
Button1.Caption := 'Квадрат'
end
end
end;procedure TForm1.Button1Click(Sender: TObject);
Таким образом, главный код программы связан с извлечением корня или возведением в квадрат величины, записанной в редакторе SpinEditl.
Теперь создадим модуль потока, в методе Execute которого будем непрерывно формировать по 100 строк в редакторе mmOutput и показывать процент заполнения редактора с помощью индикатора Gaugel.
Выберите пиктограмму модуля потока в окне репозитория Delphi и дайте наследнику класса Thread имя ThreadDemo. Окончательный текст модуля потока представлен ниже.
interface
uses
Classes;
type
ThreadDemo = class(TThread)
private
{ Private declarations }
protected
S: string;
N: Integer;
procedure UpdateMemo;
procedure UpdateGauge;
procedure Execute; override;
end;
var
TDemo: ThreadDemo;
implementation
uses Uniti, SysUtils;
{ Important: Methods and properties of objects in VCL can only re used.
in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure ThreadDemo.UpdateCaption;
begin
Formi.Caption := 'Updated in a thread';
end;
ThreadDemo}
procedure ThreadDemo.Execute;
var
j, k: Integer;
begin
repeat
S := '';
Synchronize(UpdateMemo);
for k := 0 to 99 do
begin N := k;
S: = ' ';
for j := 1 to 20 do
S := S + FormatFloat('00', k), Synchronize(UpdateMemo);
Synchronize(UpdateGauge)
end;
until False
end;
procedure ThreadDemo.UpdateMemo;
begin
with .Form1.mmOutput.Lines do
if S = ' ' then
Clear else
Add(S)
end;
procedure ThreadDemo.UpdateGauge;
begin
Form1.Gaugel.Progress := N
end;
end.unit Unit2;
Если вы запустите таким способом подготовленную программу, то ничего не произойдет - ведь мы еще не запустили поток. Чтобы сделать это, добавьте в модуле Unit1 главной формы ссылку uses Unit1, раскройте в окне Инспектора объектов список компонентов, выберите компонент Form1 и на его странице Event дважды щелкните по свойству onActivate, чтобы создать такой обработчик этого события:
begin
TDemo := ThreadDemo.Create(False),
end;procedure TForm1.FormActivate(Sender: TObject);
Вот так просто запускается дополнительный поток - мы инициируем объект TDemo, передавая в его Консруктор ThreadDemo.Create
единственный параметр False (этот параметр показывает, должен ли вновь созданный поток “спать” - True или он обязан немедленно начать работу - False). Программа в любой момент может приостановить работу потока, присвоив его свойству suspended значение True, и продолжить его выполнение, присвоив этому свойству значение False. Обратите внимание - метод Execute потока вынесен в секцию protected и поэтому недоступен из основного модуля. Выполнение этого метода начинается автоматически, как только свойство suspended примет значение False.
Для обращения к свойствам и методам визуальных компонентов формы Form1 предназначен специальный метод потока Synchronize. Единственным параметром обращения к этому методу должно быть имя любой потоковой процедуры без параметров. Внутри такой процедуры разрешается обращаться к методам и свойствам визуальных компонентов. В нашем потоке две такие процедуры - UрdateMemo и updateGuage. В первой строка s добавляется к содержимому редактора mmoutput, во втором - глобальная переменная n присваивается свойству progress индикатора Gauge1. Поскольку эти процедуры не могут иметь параметров, для управления их работой приходится использовать глобальные переменные S и N.
-
Можно воткнуть где-нибудь в цикле типа такого хреновину:
for i := 1 to ParamCount do
begin
frm.Label1.Caption := ParamStr(i);
frm.ProgressBar1.Position := frm.ProgressBar1.Max * i div ParamCount;
Application.ProcessMessages;
myAddFile(ParamStr(i));
end; -
СМОК
на этом сайте, если дешифровать, потом шифровать и опять дешифровать, то появляются лишние символы.
-
мусор какой-то получается
-
пункт меню, если конечно меню расширенное, "Кодировать (MIME, ..."
создаёшь из любого файла кодированный файл, оставляешь заголовок, переносишь туда код и декодируешь, я так из eml файлы выдираю
-
СМОК
тотал командером попробуй
-
oleg627_80
Не слушай их, юзай KompoZer - отличная замена для Frontpage или DreamWeaver, совершенно бесплатная, сделана на движке Gecko от Mozilla, код получается намного чище, чем в платных программах и соответствует спецификациям HTML, будет уверенность, что в большинстве браузеров сайт будет отображаться одинаково
-
Kompozer - если просто html
-
PapiruS
а как из мысли выцепить k-ую цифру?
ght
readln(y);
if (y / 4) = (y div 4) then
writeln(366)
else
writeln(365)
а 100 и 400 - это откуда?
readln(x);
if (x / 3) = (x div 3) then
writeln('делится на 3')
else
Важно! Введение платы за внутренний трафик
в Новости форума
Опубликовано
Трасса 32, наверное, стоило бы 350р