[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. Lotrein

    Lotrein New Member

    Joined:
    13 Dec 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    тогда в объявлении процедур нужно писать SMTPS вместо Tform1.SMTPS?
     
  2. vernite akk=

    vernite akk= New Member

    Joined:
    18 May 2011
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Есть базовый класс.
    Code:
     
        TMregister = class
           private
             FSend : Thttp;
             FMailLogin : string;
             FMailPass : string;
             FResp : string;
             FPostData : string;
             FCookie : Tcookie;
             FUaArray : StringArray;
             FMailSeperator : string;
             procedure SetProxy (ProxyStr : string);
             procedure SetMail (MailStr : string);
             procedure SetUAArray (Arr : StringArray);
             procedure Main; virtual; abstract;
             procedure ParseToken; virtual;  abstract;
             procedure ConfimMail; virtual;  abstract;
           public
             property Mail : string write SetMail;
             property Proxy : string write SetProxy;
             property UaArray : StringArray write SetUAArray;
             property MailSeperator : string write FMailSeperator;
             Constructor Create;
             Constructor Free;
        end;
    
    Есть наследник от него.

    Code:
     type
       TChatRegger = class(TMregister)
          private
            procedure Main;
          public
              procedure ff;
             Constructor Create;
             Constructor Free;
       end;
    
    Пытаюсь из процедуры main обратиться к Fsend.

    Code:
    procedure TChatRegger.main;
    begin
      Fsend;
    end;
    
    Вылетает,
    Code:
    [DCC Error] ChatRegger.pas(31): E2003 Undeclared identifier: 'FSend'
    
    Как так???
    Вроде правильно наследуюсь....
     
  3. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    FSend нужно объявить как protected или public
     
  4. vernite akk=

    vernite akk= New Member

    Joined:
    18 May 2011
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Спасибо, но мин назад сам это понял, прочитал про области видимости вчитался и пришло прозрение.
    Неправильно я private понимал)
     
  5. od1n0chka

    od1n0chka Member

    Joined:
    13 Dec 2010
    Messages:
    297
    Likes Received:
    47
    Reputations:
    1
    if (StringGrid1.Cells[3,1]>=100 and
    StringGrid1.Cells[4,1] > 1) then
    StringGrid1.Rows[1].clear;

    [Error] Unit1.pas(97): Incompatible types: 'String' and 'Integer'


    :( :( :( :(


    в столбцах тип интеджер указан а рабоать не хочет(
     
  6. vernite akk=

    vernite akk= New Member

    Joined:
    18 May 2011
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Чето мне подсказывает что это должно выглядеть как минимум так,
    Так попробуй.
     
  7. od1n0chka

    od1n0chka Member

    Joined:
    13 Dec 2010
    Messages:
    297
    Likes Received:
    47
    Reputations:
    1
    та же самая ошибка :( :(
     
  8. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    вот так правильнее:
    Code:
    if (StrToInt(StringGrid1.Cells[3,1][COLOR=Green])[/COLOR]>=100) and [COLOR=Green]([/COLOR]StrToInt(StringGrid1.Cells[4,1][COLOR=Green])[/COLOR] > 1) 
    
     
    #8908 patcher, 6 Mar 2012
    Last edited: 6 Mar 2012
  9. od1n0chka

    od1n0chka Member

    Joined:
    13 Dec 2010
    Messages:
    297
    Likes Received:
    47
    Reputations:
    1
    после этого кода вот такая ошибка
    [Error] Unit1.pas(97): Operator not applicable to this operand type

    что то чуствую что то связано с StrToInt
     
  10. Transformer

    Transformer New Member

    Joined:
    15 Feb 2011
    Messages:
    4
    Likes Received:
    2
    Reputations:
    5
    код для автоматического открытия браузера, переход по определенной сылке в том же браузере..
    Помогите)
     
  11. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    отредактировал пост выше, сам скобку потерял :D
     
    1 person likes this.
  12. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    В memo есть определенный текст. Подскажите пожалуйста, как сделать, чтобы при нажатии на кнопку искалось определенное слово из этого текста в memo?
     
  13. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    http://www.delphiexpert.ru/view_lesson.php?id=8
     
  14. muip

    muip New Member

    Joined:
    1 Sep 2011
    Messages:
    45
    Likes Received:
    4
    Reputations:
    0
    Парни, дайте пожалуйста у кого есть библиотеки ssleay32.dll и libeay32.dll для компонента TIdSSLIOHandlerSocket, использую дельфи 7, немогу найти нужные, выскакивает could not load ssl library.
     
  15. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    http://indy.fulgan.com/SSL/
    вот тут есть все версии этих библиотек, скачай подходящую
     
  16. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Использую простой пример гет запрос через винсокс:

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var sock: WSAData;
        socket1: TSocket;
        addr: TSockAddr;
        buff1: string;
        buff2: array[1..1024] of char;
        i,d: integer;
    begin
    if WSAStartup(MAKEWORD(2,2),sock)<>0 then
    begin
      ShowMessage('Error inicialization');
      Exit;
    end;
      socket1:=Socket(AF_INET,SOCK_STREAM,0);
    if socket1 = INVALID_SOCKET then
    begin
      ShowMessage('Error');
      Exit;
    end;
      addr.sa_family:=AF_INET;
      addr.sin_addr.S_addr:=inet_addr(PChar('87.250.251.3'));
      addr.sin_port:=htons(80);
    if connect(socket1,addr,SizeOf(addr))<>0 then
    begin
      ShowMessage('Error connect');
      Exit;
    end;
      Buff1:='GET / HTTP/1.1'#13#10+
              'host: ya.ru'#13#10+
              'Connection: close'#13#10+#13#10;
    if send(socket1,buff1[1],length(buff1),0)=SOCKET_ERROR then
    begin
      ShowMessage('Error sender');
      Exit;
    end;
    repeat
      FillChar(buff2,SizeOf(buff2),0);
      d:=Recv(socket1,buff2,SizeOf(buff2),0);
    for i:=1 to d do
    begin
      memo1.Text:=memo1.Text+Utf8ToAnsi(buff2[i]);
    end;
    until d<=0;
    if CloseSocket(Socket1)<>0 then
      ShowMessage('Error closing');
    
    end;
    
    

    Проблема в том, что исходный код добавляется в мемо только через 2 минуты + цп подлетает. Никак не могу понять в чем причина. Помогите пожалуйста.
     
  17. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    а теперь чуть комментов к коду:
    PHP:
    repeat
        
    // "почистили" буфер
        
    FillChar(buff2SizeOf(buff2), 0);
        
    // читаем из сокета, функция возвращает количество прочитанных байт,
        // но иногда, при ошибках, бывает, что возвращается не ноль,
        // а полная хрень, число явно больше буфера под данные
        
    d:= Recv(socket1buff2SizeOf(buff2), 0);
        
    // а теперь конвертируем посимвольно буфер из utf8 и добавляем
        // все это в мемо %)
        
    for i:=1 to d do begin        
            memo1
    .Text:=memo1.Text Utf8ToAnsi(buff2[i]);
        
    end;
    // повторяем все безобразие пока d <= 0
    until d<=0;
    печаль...
     
  18. fuckyoupig

    fuckyoupig Member

    Joined:
    1 Mar 2011
    Messages:
    0
    Likes Received:
    11
    Reputations:
    2
    Перед else ; не ставится
     
  19. Ti Jock

    Ti Jock Member

    Joined:
    5 Apr 2010
    Messages:
    1
    Likes Received:
    6
    Reputations:
    3
    Как сделать, чтобы программа работала ТОЛЬКО из трея в делфи? Чтобы была возможность закрывать программу, открывать окна и т.д.
     
  20. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    установи компонент cooltrayicon.
     
Thread Status:
Not open for further replies.