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

18.08.2009, 16:10
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
в файле Сontrols.pas описан этот тип
TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom);
так что попробуй явно описать откуда брать
pCover.Align := Controls.alClient;
или
pCover.Align := uDocsReg.alClient;
|
|
|

18.08.2009, 17:20
|
|
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме: 636446
Репутация:
32
|
|
Сообщение от slesh
Еще дело усложняется, когда куки не одной строкой а, не сколько строк. бывают случае что идут куки, потом другие спец поля, а потом опять куки - вот это полный П.
Особенно когда вторые перекрывают первые (т.е. переменные одинаковые, а значения разные)
А реально какая альтернатива Индюкам?
Ну WinInet ещё можно попробовать, но там лажа с таймаутом.
Кстати, а WinInet зависит от FrameWork-а?
Или каким мокаром можно ФреймВорк заюзать из Делфы 7?
|
|
|

18.08.2009, 17:36
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Есть разные компоненты связанные с HTTP
WinInet - пашет везде. Потому что это стандартная либа, которую придумали тогда когда фреймворка еще в задумках небыло.
Delphi 7 - FW - врядли. Для этих целей есть BDS. Хотя вроде с D8 уже тянется FW
|
|
|

18.08.2009, 18:28
|
|
Познающий
Регистрация: 30.01.2009
Сообщений: 30
Провел на форуме: 75077
Репутация:
14
|
|
2cremator:
Внимательнее читай последнее предложение.
Код:
unit uDocsReg;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, cxGraphics, cxCustomData, cxStyles, cxTL, cxTextEdit,
cxInplaceContainer, cxControls, uDocsTreeMan, StdCtrls, ShlObj, QControls,
cxShellCommon, cxContainer, cxShellListView, cxListView, cxMCListBox,
cxEdit, cxCurrencyEdit, cxMaskEdit, cxSpinEdit, cxTimeEdit, uDBRecordsMan,
cxDropDownEdit, cxCalendar, ExtCtrls, cxLabel, uObjOperationObject,
uNewObjOperation, uConfig, Buttons, uFrDoc;
type
TfDocsReg = class(TForm)
bRefresh: TButton;
DocsTree: TTreeView;
pEdit: TPanel;
bUpdate: TButton;
cxLabel2: TcxLabel;
bAdd: TButton;
bDelete: TButton;
frDoc: TfrDoc;
pCover: TPanel;
pObject: TPanel;
lCoef: TcxLabel;
cxLabel1: TcxLabel;
cxLabel3: TcxLabel;
cxLabel4: TcxLabel;
procedure bRefreshClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DocsTreeClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bUpdateClick(Sender: TObject);
procedure bAddClick(Sender: TObject);
procedure bDeleteClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bCalcCostClick(Sender: TObject);
private
{ Private declarations }
procedure LoadEdits;
procedure SetPanelEnabled( PanelNum: integer );
public
{ Public declarations }
procedure ShowDocs(FilterObjId: integer=-1);
procedure ClearActiveOperation;
end;
var
fDocsReg: TfDocsReg;
implementation
{$R *.dfm}
procedure TfDocsReg.bRefreshClick(Sender: TObject);
begin
DocsTreeMan.Refresh;
end;
procedure TfDocsReg.FormCreate(Sender: TObject);
begin
DocsTreeMan := TDocsTreeMan.Create(DocsTree);
ClearActiveOperation;
//pCover.Align := alClient;
//pObject.Align := alClient;
end;
procedure TfDocsReg.DocsTreeClick(Sender: TObject);
begin
DBRecords.Release( frDoc.ActiveItem );
frDoc.ActiveItem := DocsTreeMan.ActiveOperation;
if frDoc.ActiveItem <> nil then
SetPanelEnabled( 1 )
else
SetPanelEnabled( 0 );
end;
procedure TfDocsReg.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DBRecords.Release( frDoc.ActiveItem );
SavePosition(self);
end;
procedure TfDocsReg.bUpdateClick(Sender: TObject);
Var NewId: integer;
begin
frDoc.SaveEdits;
if frDoc.ActiveItem.IsNew then
begin
NewId := frDoc.ActiveItem.Insert;
DBRecords.Release( frDoc.ActiveItem );
ClearActiveOperation;
DocsTreeMan.Refresh;
DocsTreeMan.SelectNode( NewId );
frDoc.ActiveItem := DBRecords.TakeObjOperation( NewId );
SetPanelEnabled( 1 );
end else
begin
frDoc.ActiveItem.Update;
DocsTreeMan.Refresh;
DocsTreeMan.SelectNode( frDoc.ActiveItem.id );
end;
end;
procedure TfDocsReg.bAddClick(Sender: TObject);
var NewOperation: TObjOperation;
begin
if (frDoc.ActiveItem <> nil) and
(frDoc.ActiveItem.id = -1) then
begin
DBRecords.Release( frDoc.ActiveItem );
ClearActiveOperation;
end;
NewOperation := TObjOperation.New;
if fNewObjOperation.ShowModal = mrOk then
begin
if (fNewObjOperation.cbDocs.EditValue = Null) or
(fNewObjOperation.cbObjects.EditValue = Null) then
begin
Beep;
NewOperation.Free;
Exit;
end;
NewOperation.SetField('id_doc', fNewObjOperation.cbDocs.EditValue);
NewOperation.SetField('id_object', fNewObjOperation.cbObjects.EditValue);
DBRecords.Release( frDoc.ActiveItem );
DBRecords.ObjOperations.Add( Pointer( NewOperation.id ), Pointer( NewOperation ) );
frDoc.ActiveItem := NewOperation;
SetPanelEnabled( 1 );
end else
NewOperation.Free;
end;
procedure TfDocsReg.LoadEdits;
begin
frDoc.ActiveItem.Seize;
frDoc.LoadEdits;
pEdit.Enabled := true;
end;
procedure TfDocsReg.ShowDocs(FilterObjId: integer=-1);
begin
DocsTreeMan.FilterObjId := FilterObjId;
DocsTreeMan.Refresh;
ShowModal;
end;
procedure TfDocsReg.bDeleteClick(Sender: TObject);
begin
if frDoc.ActiveItem.Delete then
begin
DocsTreeMan.Refresh;
ClearActiveOperation;
end;
end;
procedure TfDocsReg.ClearActiveOperation;
begin
frDoc.ActiveItem := nil;
SetPanelEnabled( 0 );
end;
procedure TfDocsReg.FormShow(Sender: TObject);
begin
LoadPosition(self);
end;
procedure TfDocsReg.bCalcCostClick(Sender: TObject);
begin
frDoc.eCost.Value := TObjOperation( frDoc.ActiveItem ).CalcCost;
end;
procedure TfDocsReg.SetPanelEnabled( PanelNum: integer );
// Устанавливает видимую панель. При PanelNum =
// 0 - Заглушка
// 1 - Редактирование
begin
pCover.Visible := (PanelNum = 0);
if PanelNum = 1 then
LoadEdits;
end;
end.
|
|
|

18.08.2009, 22:29
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Обшарил 15 страниц гугла и не нашол толкова ответа как с помощью WinSock отправить пост запром, к примеру на mail.ru
Help me...
|
|
|

18.08.2009, 22:37
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Сообщение от НTL
Обшарил 15 страниц гугла и не нашол толкова ответа как с помощью WinSock отправить пост запром, к примеру на mail.ru
Help me...
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1021
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1060
Если не разберешся, пиши в пм, кину сорцы простенькие
|
|
|

19.08.2009, 06:48
|
|
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме: 636446
Репутация:
32
|
|
Сообщение от НTL
Обшарил 15 страниц гугла и не нашол толкова ответа как с помощью WinSock отправить пост запром, к примеру на mail.ru
Help me...
Это ты фих найдёшь.
В лс брякни.
|
|
|

19.08.2009, 09:23
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
o_O тыбы еще искал в инете как регить пример x=2/0
Кидаю кусок из первого моего бота который был писан в далёкие времена на Delphi
Код:
if WSAStartup($202, WSData)=-1 then exit;
MyID:=Get_ID;
reply:='';
while true do
begin
ServIP:=GetIPAddress(server_host);
post_data:='id='+MyID+'&reply='+reply;
reply:='';
sbuf:='POST '+server_script+' HTTP/1.0'#13#10+
'Host: '+server_host+#13#10+
'Content-Type: application/x-www-form-urlencoded'+#13#10+
'Content-Length: '+inttostr(length(post_data))+#13#10#13#10+post_data+#13#10;
if (send_packs(ServIP,server_port,sbuf,rbuf)>0) then
begin
rbuf содержит ответ сервера без служебных заголовков
end;
......................
function GetIPAddress(name: string): string;
var
p:PHostEnt;
begin
p:=GetHostByName(PChar(name));
if p=nil then result:=name else result:=inet_ntoa(PInAddr(p.h_addr_list^)^);
end;
procedure GetContend(var data:string);
begin
delete(data,1,pos(#13#10#13#10,data)+3);
end;
function send_packs(ip:string; port:word; send_buf:string; var recv_buf:string):integer;
var
SockAddrIn:TSockAddrIn;
tmp_buf:array [0..255] of char;
len:longint;
socket_id:LongWord;
begin
result:=-10;
socket_id:=socket(2, 1, 6);
if socket_id=LongWord(-1) then exit;
SockAddrIn.sin_family := 2;
SockAddrIn.sin_port := htons(port);
SockAddrIn.sin_addr.s_addr := inet_addr(Pansichar(ip));
result:=-20;
if connect(socket_id, @SockAddrIn, SizeOf(SockAddrIn))<>0 then
begin
closesocket(socket_id);
exit;
end;
send(socket_id,send_buf[1],length(send_buf),0);
recv_buf:='';
repeat
len:=recv(socket_id,tmp_buf,255,0);
recv_buf:=recv_buf+copy(tmp_buf,1,len);
until len<=0;
GetContend(recv_buf);
result:=length(recv_buf);
closesocket(socket_id);
end;
|
|
|

19.08.2009, 12:27
|
|
Познающий
Регистрация: 19.08.2008
Сообщений: 69
Провел на форуме: 458484
Репутация:
31
|
|
приветствую всех!
Есть компонент TLabel в нём большое кол-во текста
Нужно сделать перенос текста не по словам как при WordWrap а по буквам
Может быть есть аналог Tlabel где перенос идёт по буквам?
Была идея после 99 (длинна одной строки) символа добавлять #13 Тоесть перенос Но это для меня не совсем подходит так как позже мне этот текст нужно будет удалять по 4 символа с начала...
Очень надеюсь на вашу помощь
|
|
|

19.08.2009, 13:20
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Такой вопрос:
Есть 2 события:
Например:
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
как при нажатии на вторую кнопку выполнить все действия из обработчика первой кнопки?
Про Ctrl+C , я знаю, но здесь это не очень актуально
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|