ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #4131  
Старый 18.08.2009, 16:10
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

в файле Сontrols.pas описан этот тип
TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom);
так что попробуй явно описать откуда брать
pCover.Align := Controls.alClient;
или
pCover.Align := uDocsReg.alClient;
 

  #4132  
Старый 18.08.2009, 17:20
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию

Цитата:
Сообщение от slesh  
Еще дело усложняется, когда куки не одной строкой а, не сколько строк. бывают случае что идут куки, потом другие спец поля, а потом опять куки - вот это полный П.
Особенно когда вторые перекрывают первые (т.е. переменные одинаковые, а значения разные)

А реально какая альтернатива Индюкам?
Ну WinInet ещё можно попробовать, но там лажа с таймаутом.
Кстати, а WinInet зависит от FrameWork-а?
Или каким мокаром можно ФреймВорк заюзать из Делфы 7?
 

  #4133  
Старый 18.08.2009, 17:36
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Есть разные компоненты связанные с HTTP
WinInet - пашет везде. Потому что это стандартная либа, которую придумали тогда когда фреймворка еще в задумках небыло.
Delphi 7 - FW - врядли. Для этих целей есть BDS. Хотя вроде с D8 уже тянется FW
 

  #4134  
Старый 18.08.2009, 18:28
BlackSilver
Познающий
Регистрация: 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.
 

  #4135  
Старый 18.08.2009, 22:29
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Обшарил 15 страниц гугла и не нашол толкова ответа как с помощью WinSock отправить пост запром, к примеру на mail.ru

Help me...
 

  #4136  
Старый 18.08.2009, 22:37
wolmer
Постоянный
Регистрация: 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

Если не разберешся, пиши в пм, кину сорцы простенькие
 

  #4137  
Старый 19.08.2009, 06:48
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию

Цитата:
Сообщение от НTL  
Обшарил 15 страниц гугла и не нашол толкова ответа как с помощью WinSock отправить пост запром, к примеру на mail.ru

Help me...
Это ты фих найдёшь.
В лс брякни.
 

  #4138  
Старый 19.08.2009, 09:23
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

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;
 

  #4139  
Старый 19.08.2009, 12:27
Uname-A
Познающий
Регистрация: 19.08.2008
Сообщений: 69
Провел на форуме:
458484

Репутация: 31
По умолчанию

приветствую всех!
Есть компонент TLabel в нём большое кол-во текста
Нужно сделать перенос текста не по словам как при WordWrap а по буквам
Может быть есть аналог Tlabel где перенос идёт по буквам?
Была идея после 99 (длинна одной строки) символа добавлять #13 Тоесть перенос Но это для меня не совсем подходит так как позже мне этот текст нужно будет удалять по 4 символа с начала...
Очень надеюсь на вашу помощь
 

  #4140  
Старый 19.08.2009, 13:20
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Такой вопрос:

Есть 2 события:
Например:
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

как при нажатии на вторую кнопку выполнить все действия из обработчика первой кнопки?

Про Ctrl+C , я знаю, но здесь это не очень актуально
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ