Перейти к содержанию

bayarookie

Пользователи
  • Постов

    298
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные bayarookie

  1. это из энциклопции


    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, только теперь буду первый вариант пробовать

  2. 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

    сокровишница мелкая и куб

    это официальная версия, во всяких самодельных модификациях увеличивают вот это всё


  3. 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;

  4. KoHoVaLOFF

    Профессиональная съёмка на видеоплёнку - способ переноса в цифру.

    Любительская на цифровые видеокамеры - обычно DVD.

    А с фотоаппаратов, мобильников, веб-камер - можно причислить к CAM.

    Оцифрованные оригиналы - VCD, DVD, HD-DVD, BD и что ещё?

  5. только подправил чуть-чуть:



    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;

    а вообще я не программист, а слесарь, поэтому меня не спрашивайте и на паскале не писал никогда, сперва на фокспро, потом на дельфи


  6. 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.

  7. oleg627_80

    Не слушай их, юзай KompoZer - отличная замена для Frontpage или DreamWeaver, совершенно бесплатная, сделана на движке Gecko от Mozilla, код получается намного чище, чем в платных программах и соответствует спецификациям HTML, будет уверенность, что в большинстве браузеров сайт будет отображаться одинаково

×
×
  • Создать...