ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

19.12.2009, 09:23
|
|
Новичок
Регистрация: 16.11.2008
Сообщений: 27
Провел на форуме: 104236
Репутация:
6
|
|
123
как сделать что бы при нажатии на ячейку в стринггрид она изменяла свой цвет?
|
|
|

19.12.2009, 09:48
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Как с помощью сокетов сделать сервер и клиент чтобы передать команды?
|
|
|

19.12.2009, 20:25
|
|
Новичок
Регистрация: 19.01.2009
Сообщений: 8
Провел на форуме: 243951
Репутация:
1
|
|
Подскажите!! как распарсить страницу одноклассников для определения ошибки при входе: "Профиль временно заблокирован. Попробуйте войти еще раз через 30 минут."
Пишу так
if Pos('Профиль временно заблокирован.',b.lock) >0 then
begin
....
но пос ничего не находит.... как исправить? и что искать при такое ошибке??
|
|
|

19.12.2009, 21:09
|
|
Участник форума
Регистрация: 13.11.2008
Сообщений: 131
Провел на форуме: 776255
Репутация:
52
|
|
Сообщение от DimkO
как сделать что бы при нажатии на ячейку в стринггрид она изменяла свой цвет?
Димон, глянь Delphi Russian Knowledge Base , там подборка статей по делфи, про изменение StrinGrida туева хуча статей, как и про другие компоненты...
Вопрос
Как по четырем вводимым точкам определить, выпуклый ли четырехугольник? (не пересекаются ли его стороны) (Pascal/Delphi)
|
|
|

19.12.2009, 22:42
|
|
Новичок
Регистрация: 16.11.2008
Сообщений: 27
Провел на форуме: 104236
Репутация:
6
|
|
Сообщение от Si{R}ius
Как по четырем вводимым точкам определить, выпуклый ли четырехугольник? (не пересекаются ли его стороны) (Pascal/Delphi)
отвечу как по математике,нарыл теорему:
"Сумма углов опуклого n-угольника = 180градусов*(n-2)"
в нашем случае n=4,то есть сумма углов =360,осталось только проверить сумму углов.их ты можешь найти через точки,а именно подсчитать расстояние между двумя точками для всех сторон четырехугольника,а потом брать 3 смежные точки,соединять их в треугольник и находить необходимый угол четырехугольника,ну а дальше сумма....осталось только вывести окончательную формулу и забить все в делфи\паскаль
кто знает алгоритм попроще пишите 
|
|
|

20.12.2009, 03:41
|
|
Познающий
Регистрация: 19.02.2009
Сообщений: 83
Провел на форуме: 181715
Репутация:
50
|
|
Сообщение от Si{R}ius
Как по четырем вводимым точкам определить, выпуклый ли четырехугольник? (не пересекаются ли его стороны) (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%но =(
З.Ы. код определения выпуклости я откуда-то скопипастил (непомню уже) и переделал под свои нужды 
|
|
|

20.12.2009, 04:04
|
|
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме: 1551582
Репутация:
107
|
|
Сообщение от Si{R}ius
Вопрос
Как по четырем вводимым точкам определить, выпуклый ли четырехугольник? (не пересекаются ли его стороны) (Pascal/Delphi)
элементарно...
- рассматриваешь все пары вершин
- для каждой пары составляешь уравнение прямой, проходящей через эти две точки (запрос в гугле: "уравнение прямой через две точки")
- подставляешь координаты двух других точек в уравнение прямой. Если значения одинакового знака, значит точки лежат по одну сторону от прямой.
- если для всех пар точек получилось, что другие точки лежат по одну сторону, значит четырехугольник выпуклый
|
|
|

20.12.2009, 17:31
|
|
Познающий
Регистрация: 13.12.2007
Сообщений: 56
Провел на форуме: 469345
Репутация:
51
|
|
При компиляции появляется ошибка вида:
[Fatal Error] Could not create output file 'C:\(путь)\Project1.exe
В чем может быть проблема?..
|
|
|

20.12.2009, 18:02
|
|
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме: 584699
Репутация:
69
|
|
SHAHID то что компилятор не может создать файл, например если проект запущен с сети или еще какого то места где нет прав на запись
|
|
|

20.12.2009, 18:56
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
вопрос - как проще сделать в потоке application.processmesseges длительностью (скажем) 10 секунд?
слип не предлагать
ответ:
Код:
uses SysUtils,Dateutils;
var
start_time:Tdatetime;
{10 секунд обрабатываем сообщения}
start_time:=now;
while SecondSpan(now, start_time)<10 do application.ProcessMessages;
Последний раз редактировалось ErrorNeo; 20.12.2009 в 19:08..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|