да вин7, делфи 7. прогресс как-то не то. вся соль в том что хочется как в диспетчере задач. думаю это всё надо отрисовывать попиксельно: ряд точек, далее повторение ряда n раз, а сверху дополнителная прорисовка в зависимости от % сам не потяну такое
есть отличный набор копонентов, raize components называется (http://delphiexpert.ru/view_download.php?id=86), и вот в нём есть туча всячик красивых свистелок и перделок, включая прогрессбары. не особо копаясь я нашел вот такой: там кучи настроек, такчто сможешь привести его к любому желаемому виду.
кинь на форму PaintBox, вот процедурку сделал: Code: procedure DrawProgress(PB:TpaintBox;Percent:Byte); var i,j:Integer; maxProgress:Integer; Map:TBitMap; begin Map:=TBitmap.Create; try Map.Width:=PB.Width; Map.Height:=PB.Height; Map.Canvas.Brush.Color:=clBlack; Map.Canvas.Brush.Style:=bsSolid; Map.Canvas.FillRect(Rect(0,0,Map.Width,Map.Height)); Map.Canvas.Pen.Style:=psDot; Map.Canvas.Pen.Color:=clLime; maxProgress:=Map.Height div 3 - 5; for i:=Round((maxProgress/100)*(100-Percent)) downto 1 do begin for j:=2 to Map.Width div 2 - 3 do if j mod 2=0 then begin Map.Canvas.Pixels[j,i*3-1]:=clLime; Map.Canvas.Pixels[j,i*3]:=clBlack; end else begin Map.Canvas.Pixels[j,i*3-1]:=clBlack; Map.Canvas.Pixels[j,i*3]:=clLime; end; for j:=Map.Width div 2 + 2 to Map.Width-4 do if j mod 2=0 then begin Map.Canvas.Pixels[j,i*3-1]:=clLime; Map.Canvas.Pixels[j,i*3]:=clBlack; end else begin Map.Canvas.Pixels[j,i*3-1]:=clBlack; Map.Canvas.Pixels[j,i*3]:=clLime; end; end; Map.Canvas.Pen.Style:=psSolid; for i:=maxProgress downto Round((maxProgress/100)*(100-Percent))+1 do begin Map.Canvas.Rectangle(2,i*3-1,Map.Width div 2 - 2,i*3+1); Map.Canvas.Rectangle(Map.Width div 2 + 2,i*3-1,Map.Width - 3,i*3+1); end; Map.Canvas.Font.Color:=clLime; Map.Canvas.Font.Size:=8; Map.Canvas.TextOut(Map.Width div 2 - Map.Canvas.TextWidth(IntToStr(Percent)+' %') div 2,maxProgress*3+2,IntToStr(Percent)+' %'); finally PB.Canvas.Draw(0,0,map); Map.Free; end; end; заводишь глобальную переменную Progress на OnDraw PaintBox'a вешаешь Code: begin DrawProgress(TPaintBox(Sender),progress); end; и там, где меняешь загрузку цп делаешь Code: DrawProgress(PaintBox,progress); P.S. поправил, чтобы избавится от моргания. P.P.S. благодарности принимаются в литровом эквиваленте _______ upd: по желанию ТСа чуть-чуть подмарафетил, для большего соответствия оригиналу
Как обработать сообщение "NotConnected" indy в делфи. Шлю Post запрос на вконтакте,мне выдает что NotConnected.Как его обработать что бы сообщение не появлялось. Code: except on EIdNotConnected do.... не помогает.
Кто подскажет. Что лучше использовать для работы с текстовыми файлами: 1. связку AssignFile/rewrite/append/reset/CloseFile или 2. TfileStream и почему?
По скорости они примерно одинаковы( хотя TFilestream на пару тройку миллисекунд медленнее).Tfilestream мне кажется более универсальна что-ли.Но сам подумай assignfile унаследована еще от паскаля,она является более низкоуровневой.Ну я бы выбрал 1-е.
Всё различие в том, что ТФайлСтрим использует так сказать "не блокирующий режим" записи/чтения, когда обычными методами нельзя обратиться к файлу, пока процедура не передаст управление программе. Файлстрим используется при работе с файлами по сети, а при обычном доступе рациональнее использовать обычными методами.
Товарищи кодеры :] Может из вас кто-нибудь запилить, вот в этот авторег твитер аккаунтов - антигейт и возможность выбора мыл для реги из файла?:> Могу оплатить пиво и пельмени) http://files.avtuh.ru/twitter.zip (исходник от создателя авторега) Перезалил http://rghost.ru/23615961 ибо на сайт автора ругается аваст :<
ребят не подскажите как отправить кнопку F1-F12 в стороннее окно? (клиент - LineAge2) буду благодарен за пример.
Насколько мне известно LA2 вешает хук на клавиатуру и мышу, и что ты с ней не делай, сообщения ты ей пошлешь, но игра их не обработает. тут как-то нужно снимать хук или обманывать (что тебе не даст сделать ГеймГуард)
не откажешься написать небольшой пример - заодно и проверю интересует сочетание shift+f1 а в окне игры f1 это будет
Найди окошко линяги функцией FindWindow() и отошли ему сообщение своих клавиш при помощи SendMessage().
толку 0, причина: см предыдущий мой пост. всю эту ерунду (писать кликеры под LA2) пробовали еще тогда, когда это было мега-актуально, если бы это было так просто, то боты бы не палились ГГ. ТС: берешь любую хрень, которой можно записать сочетания клавишь, записываешь ф1, нажимаешь плей, и смотришь как окно LA2 умирает (если мне не изменяет память - тупо вырубается процесс)
Кстати, насчёт эмуляции, Send Input/Send Message современные клиентские игры обрабатывают? А ассемблерские выкрутасы?