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

bayarookie

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

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

  • Посещение

Весь контент bayarookie

  1. Если компы рядом, то вроде просто, а если через инет, то лучше через Open Battle.net, а иначе придётся мудрить со всякими хамачами и т.п. Насчёт рун лучше посмотреть всякие справочники по дьябло 2
  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, только теперь буду первый вариант пробовать
  3. 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 это официальная версия, во всяких самодельных модификациях увеличивают вот это всё
  4. Внимание! Вы покидаете пятикопеечную зону =)
  5. El_Matador а версия у тебя какая? Я там бываю, а версию специально поставил 1.11b, чтобы можно было к другим подцепляться, а на 1.12, кажется, почти никто не играет на гагнете
  6. ProgressBar1.Max := FileContent.Count; for i := 0 to FileContent.Count - 1 do begin ProgressBar1.Position := i; ListBox1.Item.Add(тут что-то там Application.ProcessMessages; end; может напутал чего
  7. проще было бы через Application.ProcessMessages сделать, в этих потоках легко запутаться, кинь куда-нибудь исходники, посмотрим.
  8. http://regexpstudio.com/Downloads/regexpr_RU.rar ставишь, подцепляешь, много читаешь
  9. У тебя n используется при вводе данных, то есть ограничиваешь бд тремя записями, а если добавить понадобится?
  10. Cloud зачем вводить элемент, у тебя текущая позиция в бд хранится в переменной nn. Процедуры first и last я не доделал, потому что лень было расписывать их. А у тебя в first и last не хватает read(f, auto);
  11. Cloud вместо n пиши что-нибудь другое, просто когда переделывал код TolkienDRR, то не посмотрел, что у тебя n уже используется
  12. 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;
  13. KoHoVaLOFF Профессиональная съёмка на видеоплёнку - способ переноса в цифру. Любительская на цифровые видеокамеры - обычно DVD. А с фотоаппаратов, мобильников, веб-камер - можно причислить к CAM. Оцифрованные оригиналы - VCD, DVD, HD-DVD, BD и что ещё?
  14. только подправил чуть-чуть: 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; а вообще я не программист, а слесарь, поэтому меня не спрашивайте и на паскале не писал никогда, сперва на фокспро, потом на дельфи
  15. Это означает, что кто-то раздаёт неверный кусок, поэтому уторрент временно банит этот айпи, тому человеку надо перехэшировать раздачу
  16. 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.
  17. Можно воткнуть где-нибудь в цикле типа такого хреновину: 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;
  18. СМОК на этом сайте, если дешифровать, потом шифровать и опять дешифровать, то появляются лишние символы.
  19. пункт меню, если конечно меню расширенное, "Кодировать (MIME, ..." создаёшь из любого файла кодированный файл, оставляешь заголовок, переносишь туда код и декодируешь, я так из eml файлы выдираю
  20. oleg627_80 Не слушай их, юзай KompoZer - отличная замена для Frontpage или DreamWeaver, совершенно бесплатная, сделана на движке Gecko от Mozilla, код получается намного чище, чем в платных программах и соответствует спецификациям HTML, будет уверенность, что в большинстве браузеров сайт будет отображаться одинаково
  21. 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
×
×
  • Создать...