Ежели не смущают следовые количества ассемблера, то можно так: Code: program BinInput; {$APPTYPE CONSOLE} //пример ввода числа в двоичном ввиде для #Smith //используемая среда разработки - Delphi 7 var a:integer; begin [COLOR=Wheat]asm [/COLOR] //открываем ассемблерную вставку [COLOR=Wheat]mov a,[/COLOR][COLOR=Red]101010b[/COLOR] //помещаем в переменную [COLOR=Wheat]a[/COLOR] число 42 [COLOR=Wheat] end; [/COLOR] //закрываем Writeln(a); //проверяем значение переменной Readln; end. //аналогично вводятся числа и в других системах o-8,d-10,h-16
#Smith, ты походу путаешь с free pascal, там да, такое возможно подстановкой %, и явно сказано в доке, как delphi, так и к free pascal'ю, что бинарная нотация не поддерживается в delphi, только в ассемблерных вставках
Люди здоров,решил перенести delphi xe2 в delphi 2010 из за огоромного веса программы,так вот проблема очень простая программа выполняет код но к обращение к некоторым визульным компонентам не проходит вообще то есть не отображает я в а х у е просто посмотрите обратите на тот участок где коментарии PHP: procedure TForm2.Button2Click(Sender: TObject); var i,l,o: Integer; login,j,item,mail:string; bas:string; mna,mnb,owner:string; id:string; dop:string; a:array[1..3] of string; s4et:cardinal; otvet:string; begin button2.Enabled:=false;//РАЮОТАЕТ button3.Enabled:=false;//НИХЕРА НЕ РАБОТАЕТ ТОЛЬКО В КОНЦЕ ПРОГРАММЫ ВЫПОЛНЯЕТСЯ s4et:=0; j:=edit2.Text; //____________________________________/// login:=copy(j,pos('http://my.mail.ru/',j)+length('http://my.mail.ru/'),length(j)); login:=copy(login,pos('/',login)+1,length(login)); delete(login,pos('/',login),length(login)); //----------------------------------- item:=copy(j,pos('micropost/',j)+10,length(j)); delete(item,pos('.',item),length(item)) ; //------------------------------------- mail:=copy(j,pos('my.mail.ru/',j)+11,length(j)); delete(mail,pos('/',mail),length(mail)); ///--------------------------------------------------------------////////// ProgressBar1.Max:=listbox2.Items.Count; for I := 0 to listbox2.Items.Count -1 do begin a[1]:=copy(listbox2.Items[i],1,pos('@',listbox2.Items[i])-1); a[2]:=copy(listbox2.Items[i],pos('@',listbox2.Items[i])+1,pos(':',listbox2.Items[i])-pos('@',listbox2.Items[i])-1); a[3]:=copy(listbox2.Items[i],pos(':',listbox2.Items[i])+1,length(listbox2.Items[i])-1); ///--------------------------------------------------------------////////// sl.Add('page=http://my.mail.ru/'); sl.Add('Login='+a[1]); sl.Add('Domain='+a[2]); sl.Add('Password='+a[3]); try Form2.IdHTTP1.Post('http://e.mail.ru/cgi-bin/auth', sl); except sl.Clear; mikro.Clear; memo2.Lines.Add(ListBox2.Items[i]) ; Continue; end; Form2.IdHTTP1.get(edit2.Text); bas:= Form2.IdHTTP1.get(edit2.Text); //----------------------------------------------// mna:=copy(bas,pos('"mna":',bas)+8,length(bas)); delete(mna,pos('",',mna),length(mna)); //----------------------------------------------// mnb:=copy(bas,pos('"mnb":',bas)+8,length(bas)); delete(mnb,pos('",',mnb),length(mnb)); //----------------------------------------------// //----------------------------------------------// dop:=IdHTTP1.get('http://my.mail.ru/'+mail+'/'+login+'/ajax?ajax_call=1&func_name=history_layer.get&mna='+mna+'&mnb='+mnb+'&encoding=windows-1251&arg_micropost_id='+item); id:=copy(dop,pos('data-like-id=\"',dop)+15,50); delete(id,pos('-',id),length(id)); //-----------------------/////////////------///////-//////-//////-/ owner:=copy(dop,pos('owner\": \"',dop)+11,50); delete(owner,pos('\',owner),length(owner)); mikro.add('ajax_call=1'); mikro.add('func_name=likes.like'); mikro.add('mna='+mna); mikro.add('mnb='+mnb); mikro.add('encoding=windows-1251'); mikro.add('arg_type=micropost'); mikro.add('arg_item='+id); // mikro.add('arg_owner='+owner); mikro.add('arg_like=1'); try otvet:=IdHTTP1.Post('http://my.mail.ru/cgi-bin/my/ajax?user='+login+'@'+mail+'.ru',mikro); except sl.Clear; mikro.Clear; memo2.Lines.Add(ListBox2.Items[i]) ; Continue; end; if otvet='["AjaxResponse","OK","ok"]' then s4et:=s4et+1; label3.Caption:='Накручено: '+inttostr(s4et);//И ВОТ ЭТА ДРЯНЬ ВООБЩЕ НЕ РЕАГИРУЕТ ОПЯТЬ ЖЕ ТОЛЬКО В КОНЦЕ ПОЛУЧЕНОЕ ЧИСЛО ВЫВОДИТ sl.Clear; mikro.Clear; ProgressBar1.Position:=i+1; end; button2.Enabled:=true; button3.Enabled:=true; ProgressBar1.Position:=0; end; ЧТО ЗА ШЛАК БЛИН ВООБЩЕ ПЕРВЫЙ РАЗ НАТЫКАЮСЬ НА ТАКУЮ ПРОБЛЕМУ,В ЧЕМ ПРОБЛЕМА ПОМОГИТЕ
Судя по исходнику, код выполняется в контексте потока формы, а значит, пока выполняется цикл, форма не обрабатывает системные сообщения, в том числе прорисовку. Т.е. кнопка блокируется, но визуально этого не успеваешь увидеть, т.к. форма висит. Попробуй так: button3.Enabled:=false; Application.ProcessMessages;
binarymaster все верно сказал, у тебя просто не перерисовывается форма до тех пор, пока процедура полностью не выполняется. Если у тебя однопоточное приложение, то как и было предложено выше, Application.ProcessMessages тебе поможет, в случае же с многопоточностью постоянная перерисовка будет вешать тебе процесс и очень сильно замедлять работу, поэтому лучше всего вынести процедуру с кнопки из MainThread'a и выполнять в отдельном потоке. Кода будет незначительно больше, но это поможет избавиться от залипаний интерфейса. А в твоем коде скорость прорисовки интерфейса формы фактически зависит от скорости интернета
о спасиб частична решена, делал так после кнопки button3.Enabled:=false; Application.ProcessMessages реакции нету а попробывал вот сюда label3.Caption:='Накручено: '+inttostr(s4et); Application.ProcessMessages Уже реагирует и на кнопки и на labeli а вот можно вопросик в этой 2010 delph вылетает ошибка там куда где я поместил код в обработчик исключительных событий (try except),В Delphi Xe2 ошибка не вылетала,вот посему вылетает ) HTML: try otvet:=IdHTTP1.Post('http://my.mail.ru/cgi-bin/my/ajax?user='+login+'@'+mail+'.ru',mikro); except sl.Clear;//Вот этот участок кода срабатывает но почему ошибка вылетает mikro.Clear; memo2.Lines.Add(ListBox2.Items[i]) ; Continue; end;
а ну да в принципе кнопки отключаются и лабелы меняются и все такое,просто не рисуется что то или краска не доходит,ну да как бы хочу эту прогу засунуть в потоки,то есть вот это фишка Application.ProcessMessages будет тормозить весь процесс в потоках,а в потоках же можно синхронизировать все это изменение в визульных компонентов и возможно проблема иссякнет,или я ошибаюсь
Когда ты будешь делать изменение свойств компонентов не в главном потоке, а в созданном тобой, то изменения будут отображаться моментально, без использования Application.ProcessMessages и никакой синхранизации не нужно будет.
сэнкс)засунул код в поток сначала с синхронизацией а потом и без нее как часики работают,а почему везде заладели синхронизация если без нее отлично работает,а почему в delphi 10-ке ошибочка вылетает когда ее сую в try except я специально неправильные логины сую на проверку try Form1.IdHTTP1.Post('http://e.mail.ru/cgi-bin/auth', sl); except sl.Clear; mikro.Clear; continue; //этот участок выполняется и прога дальше пашет но ошибка просто вылетает,глаз не радует а таг)) end;
а все блин доперло try except правильно работает ошибка просто в другом участке кода,когда я будучи неавторизованным пытаюсь достать нужные параметры и всабачить их к переменным
Ну наверное имелась в виду синхронизация между потоками при оброботке данных. У меня например когда-то была проблема, по неопытности написал программу, которая работала в 150 потоков и постоянно писала в файл, в итоге у меня на выходе получалось что-то вроде: Вот тут и пришлось делать синхронизацию выгружаемого буфера
Ребят помогите пожалуйста!нужен код для отслежки юрл в бренд маузере!например открываем odnoklassniki.ru/games и вылетает сообщение "иди на кухню!" )
Это конечно было бы здорово, но причём здесь Delphi? Одной строчкой такую задачу определённо не решить, придётся целый проект создавать... но мысли в голову приходят такие: 1. Локальный прокси сервер на делфи, который будет выводить окошко при обнаружении нужного запроса 2. Определять HTTP запросы при помощи WinPCap API, но там не всё так очевидно, ибо низкий уровень работы с сетью 3. Поднять на локалхосте HTTP сервер, добавить туда домен odnoklassniki.ru, залить index.php в котором будет подобное сообщение. Ну и в конце этого прописать строчку в hosts - 127.0.0.1 odnoklassniki.ru По-моему наиболее простой способ #3, т.к. там вообще программировать не надо. Что же касается первого и второго - полноценные задачи, исходный код которых в один пост не поместится
Предложили такой вариант: uses ddeman; function Get_URL(Servicio: string): String; var Cliente_DDE: TDDEClientConv; tempChar; begin Result:= ''; Cliente_DDE:= TDDEClientConv.Create(nil); with Cliente_DDE do begin SetLink(Servicio,'WWW_GetWindowInfo'); temp:= RequestData('0xFFFFFFFF'); Result:= StrPas(temp); StrDispose(temp); //<<-Предотвращаем утечку памяти CloseLink; end; Cliente_DDE.Free; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if Get_URL('IExplore') = 'odnoklassniki.ru/games' then ShowMessage('иди на кухню!'); end; Но ругается на ('0xFFFFFFFF');
Нашёл кое-что подобное: http://stackoverflow.com/questions/5222301/how-to-get-the-url-from-chrome-using-delphi
Как сделать фильтр.Допустим чтоб задавалась не кокретная ссылка.Напиример открываем mail.ru заходим в игры my.mail.ru допустим чтоб отфильтровал "mail.ru" и велетело сообщение
Всем привет. Пишу диплом на delphi, есть много пробелов, возникает много вопросов. Нужен консультант, которому я буду задавать непонятные для меня вопросы в аську. За вознаграждение. Пишите в теме или в ЛС. Или в ICQ 380-45-45 со ссылкой на профиль.
Добрый день. Есть постороннее приложение. В нем 3 ListView. Задача такова. 1) Получить все значения в наш StringGrid - уже имеем 2) Сделать на строке дабл клик которая к примеру имеет номер 8. При попытках использовать SendMessage(HndControl,LVM_GETITEMRECT,0, LongInt(@Rect)); получаю в ответ одни нули. Уже что тока не перепробовал. Подскажите кто знает. Code: procedure TMyThread.Execute; Var Hnd, HndControl:HWnd; i, b, q : Integer; WinClass: array[0..255] of Char; Rect: TPoint; ItemIndex: Integer; ItemHeight: Integer; begin Hnd:=FindWindow(nil, 'Client'); if Hnd <>0 then begin windows.SetForegroundWindow(Hnd); HndControl := FindWindowEx(hnd, 0, nil, PChar('LOGIN')); SendMessage(HndControl, BM_CLICK, 0, 0); Sleep(1000); HndControl := FindWindowEx(hnd, 0, nil, PChar('select country...')); PostMessage(HndControl, wm_LButtonDblclk, 0, 0); Sleep(5000); HndControl := FindWindowEx(hnd, 0, 'SysListView32', nil); b := 0; while HndControl <> 0 do begin HndControl := GetWindow(HndControl, GW_HWNDNEXT); GetClassNameA(HndControl, WinClass, 256); if (WinClass = 'SysListView32') then begin i:=SendMessage(HndControl,LVM_GETITEMCOUNT,0,0); GetListViewData(HndControl, 1, form1.drop_strngrd); if (b = 1) then begin // SendMessage(HndControl, WM_SETFOCUS, 0, 0); SendMessage(HndControl,LVM_GETVIEWRECT,0, LongInt(@Rect)); Form1.mmo1.Lines.Add(inttostr(rect.x)+' '+inttostr(rect.Y)); end; Inc(b); end; end; end; end;