SHAXID в dt:TdateTime; ... dt:=strtodate(edit1.text); ... dt уже заносишь в базу, вообще посмотри функции пераобразования типов в справочнике делфи.
Доброго времени Делаю фильтрацию поля ввода на числа, отфильтровал по аски кодам числа, еще возник вопрос какая запятая используется там их 2 или 3 и одна из них не численная какую фильтровать?? Или может более рациональное решение подскажите
Что ж так сложно то... Так не проще? Code: procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9',',',#8:; else Key := #0; end; end;
Если нужно ТОЛЬКО для цифр, то этот код поможет: Code: SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
Зевс шикарно, но вот еще проблемка нужно еще точку подставить туда с нум пада, там флот значения могут быть.
Пытаюсь разобраться в winsock. Возникла такая проблемка есть кусок кода: PHP: addr.sin_family:=AF_Inet; addr.sin_port:=htons(80); addr.sin_addr.S_addr:=inet_addr('127.0.0.1'); Err(Connect(S,addr,SizeOf(TSockAddr))); этот код работает когда на одном ip один сайт, а как быть если на одном ip не один сайт? ведь при заходе на этот ip на сайт не попадаешь
TrueBit, Посмотри это: http://www.sources.ru/delphi/internet/resolve_ip_to_host.shtml или это: http://www.sources.ru/delphi/delphi_resolve_host_to_ip.shtml Одно из них рабочие, а вот какое не помню... ------------------------------------------- Как мне на Delphi сделать прогу которая бы висела в процессах (То есть без формы) и спокойно выполняла свою дела? Если создать Console Application, то будет висеть окно терменала... ПС, пока писал пост, подумал что если в Console Application запустить поток, то может быть терминальное окно уйдет?
Привет всем! Всех с наступающим новым годом!!! Задача: некоторая программа должна реагировать на события от мыши, глобально, например, при передвижении мыши по экрану (или клике в любой области экрана) должно происходить какое-либо действие (например, запись координат в файл или т.п.). Как это реализовать на с++ winapi? обязательно ли нужен хук или есть другие варианты? может, у кого-то кусочки кода есть? (событие может быть и от клавы, например, нажатие любой клавиши!)
На мой взгляд у тебя два выхода - либо прятать форму, либо создавать приложение без форм. В первом случае производим такие действия с фомой: >BorderStyle = bsNone >Color = clSkyBlue >TransparentColor = True >TransparentColorValue = clSkyBlue> >На событие OnShow пишем такой код: Code: ShowWindow(Application.Handle, sw_Hide); Во втором случае: >Создаем ConsoleApplication >Удаляем (Стираем после program Project1) директиву {$APPTYPE CONSOLE}
2 -CEREBRUM- <brainfuck> ты читать умеешь? >>> Как это реализовать на с++ winapi? << Нахера ты это кинул в теме про делфи и паскаль? Если есть прекрепленная тема для этих языков. </brainfuck> Вообще такие вещи делаются через установку ловушек (SetWindowsHookEx ) Но если тебе нужны координаты, то через определенное время просто получай координаты мышки (GetCursorPos). К примеру через цикл с паузой с маленьким интервалом ожидания или через таймер. И если координаты изменились, то сохрани их в файл. Если юзать SetWindowsHookEx то можно заюзать ловушку WH_JOURNALRECORD - для ней даже DLL писать не надо. Если юзать ловушку WH_MOUSE то нужна DLL. в 5005 статей по делфи есть статья - Создание мышиного перехватчика и там всё написано на winapi так что написать это на С++ несоставит труда
2 patcher ппц ты жжеш. Если нужно скрыть форму, то ты выбрал самый жестокий вариант, который дает наибольшую нагрузку на ОС (за счет прозрачности) Такие вищи решаются намного проще. в файле проекта (*.dpr) нужно дописать Application.ShowMainForm := false; перед Application.Run; пример : Code: Application.Initialize; Application.CreateForm(TForm1, Form1); Application.ShowMainForm := false; // ВОТ ЭТО НУЖНО ВПИСАТЬ Application.Run; Ну а если форма не нужна, то можно или консольный проект с убранной директивой что это консольная прога. Или создать обычный проект, удалить все формы и в dpr файле убрать всё лишнее. Но первый вариант проще )
почти всю программу написал, осталось только заменить минимальное значение каждой строки матрици, на номер столбца в котором оно находится. Code: PROGRAM Project1; {$APPTYPE CONSOLE} uses SysUtils; CONST n=9; // количество элементов массива label prog1,prog2,ASD ; TYPE ar=array[1..n] of real; // объявление типа массива VAR a:ar; // исходный массив А s:real; // сумма отрицательных элементов i,ppp,m:integer; // счетчик элементов begin Writeln('Press 1 to program #1'); Writeln('Press 2 to program #2'); readln(ppp); if ppp=1 then goto ASD; begin if ppp=2 then goto prog2; // Ввод исходных данных ASD: WriteLn('Type ', n, ' real elements of array:'); for i:=1 to n do Read(a); writeln; // Выполнение задачи s:=0; m:=0; // начальное значение суммы for i:=1 to n do // цикл перебора элементов массива if (a>0) and (m<5) then // выборка отрицательных элементов begin s:=s+a; // суммирование m:=m+1; end; // Вывод результата if s=0 then WriteLn('Нет положительніх єлементов') else WriteLn(' S=',s:8:4); WriteLn('***** Press <enter> to finish *****'); Readln; // задержка экрана Readln; end; end.
Эм товарищ массив тогда по задаче должен быть двумерный,а у вас одномерный. Для нахождения мин элемента сравниваете по строчно элементы,а потом в новый одномерный массив записывайте мин элемент. В новом цикле если a[i,j]=b then a[i,j]:=j; где j соответственно столбец.
Во первых, мы соед. с сервером но не с сайтом, т.е. производится функция коннекта к серверу (а именно к порту сервера)(но не к сайту), к примеру мы приконнектились и хотим чтобы сервер нам выдал содержимое определенной страницы (в html виде естественно ), определенного сайта. Тогда пишем так (я забежал чуть вперед чтобы было понятно): Code: procedure TForm1.Button1Click(Sender: TObject); var sock:tsocket; addr:sockaddr_in; sendstring:string; sendbuffer, recvbuffer:array [0..4095] of char; dsize:dword; begin sock:=socket(af_inet, SOCK_STREAM, 0); //Указываем что хотим работать с TCP addr.sin_family:=af_inet; addr.sin_addr.S_addr:=inet_addr('81.177.9.119');//Ip тачки где расположен сайт gamecs.net addr.sin_port:=htons(80); if connect(sock, addr, sizeof(addr))=0 then //В случае если успешно подкл. к порту то... begin Showmessage('Соед. есть! Посылаем данные'); sendstring:='GET http://gamecs.net/forum/index.php? HTTP/1.0'+#13#10+ //Говорим мол нам нужна страница broadcast.xml //Тут даем знать серверу какой нам нужен сайт 'User-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.20'+#13#10+ 'Host: gamecs.net'+#13#10+ 'Cookie: pass_hash=aa1b56893b171c26e306a653c4074af1; session_id=6535fe43f9b89af027382d5c00ff2790; __utma=172773923.'+ '2094703955.1261652832.1261652832.1261652832.1; __utmb=142773923; __utmc=142773923; __utmz=142773923.1261652832.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)'+#13#10+ 'Cookie2: $Version=1'+#13#10+ 'Connection: Keep-Alive'+#13#10+#13#10; CopyMemory(@sendbuffer, pchar(sendstring), length(sendstring)); send(sock, sendbuffer, sizeof(sendbuffer), 0); repeat dsize:=recv(sock, recvbuffer, 4095, 0); memo1.lines.text:=memo1.lines.text+recvbuffer; until (dSize = 0) or (dSize = SOCKET_ERROR); //Принимаем полный HTML пакет //Правда там всякая фигня в конец дописывается но лень сейчас дореализовывать этот момент end else begin Showmessage('Соед. нету!'); end; end; procedure TForm1.FormCreate(Sender: TObject); var ws:wsadata; begin WSAStartup($101, ws); end; Если что не понятно -> спрашивай (у gamecs.net тоже есть соседнии сайты)
Собственно, как и говорил slesh. File->new->other->console application. Удаляем строчку {$APPTYPE CONSOLE} - так не будет показываться черное окно. Далее организуем бесконечный цикл, чтобы программа висела в памяти. Фленов в "Delphi глазами хакера" приводил такой вариант: Code: while GetMessage (Msg, HInstance, 0, 0) do begin TranslateMessage(msg); DispatchMessage(msg); //где-нибудь тут пишется свой код end; Но у меня на машине этот способ безбожно тормозил и грузил процессор на 100%, поэтому я делаю так: Code: while GetMessage (Msg, HInstance, 0, 0) do begin TranslateMessage(msg); DispatchMessage(msg); //где-нибудь тут пишется свой код Sleep(100); end; Может, можно делать как-то более правильно, но я честно не знаю как. Да и в принципе, меня так вроде устраивает.
Помогите с задачкой Вводить числа с клавиатуры пока их не станет больше пяти и не попадётся число 100 Вот написал но что то ошибку пишет Program x3; VAR integer:x,i; Begin i:=0; while( i>=5) and (x=100) do begin readln(x); inc(i); end; end. В чем ошибка подскажите плз