[ 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. 0verbreaK

    0verbreaK Elder - Старейшина

    Joined:
    30 Apr 2008
    Messages:
    318
    Likes Received:
    42
    Reputations:
    -3
    ronald используй UDP протокол поищи готовые реализации локальных чатов, также в делфи есть компонент для рбаоты с UDP дейтаграммами.
     
    1 person likes this.
  2. PaNaDoL

    PaNaDoL New Member

    Joined:
    25 Jan 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Регулярные выражение

    Доброе время суток
    Не могу никак с помощью регулярного выражения найти "Как меня зовут?" без тегов

    Code:
    <td nowrap>Как меня зовут:  </td>
    Искал с помощью <td nowrap>(.+?)</td>, но много находит. Как можно еще добавить в поиск ": " (без кавычек)

    Помогите пожалуйста :confused:
     
  3. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    так юзай квантификатор - ноль и более вхождений - *
    и тогда будет чтото типа
    <td nowrap>(.+?)*:</td> чтото подобное
    или <td nowrap>(.+?)*\:</td>
     
  4. ronald

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

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    Автозагрузка

    Интересует как на делфи добавить прогу в автозагрузку)))
     
  5. NeXArmAor

    NeXArmAor Banned

    Joined:
    21 Apr 2007
    Messages:
    226
    Likes Received:
    161
    Reputations:
    6
    Нужно получить текст с программы,а точнее с TPanel'и. Вообщем эта программа представляет из себя чат,и когда пользователь пишет текст в чате,данный текст потом отображается в TPanel. Мне необходимо этот текст получить из моей программы,для этого я юзаю FindWindow и FindWindowEx и SendMessage с WM_GETTEXT,но они к сожалению не дают желаемого результата. Кто знает как осуществить это пишите

    Вот скрины:
    [​IMG]
    --------------------------------------------------------------------------------------
    [​IMG]

    А вот код:

     
  6. NeXArmAor

    NeXArmAor Banned

    Joined:
    21 Apr 2007
    Messages:
    226
    Likes Received:
    161
    Reputations:
    6
    ronald,

    Только пробелы убери после копипаста
     
    1 person likes this.
  7. Scofild

    Scofild Member

    Joined:
    26 Jun 2007
    Messages:
    29
    Likes Received:
    43
    Reputations:
    0
    Как можно сделать проверку нескольких Edit (например 6-ти) на наличие символов. кроме как вот так:

    if length(edit1.text) and .... length(edit6.text)=0 then
    showmessage('заполните все поля!');
     
    8 people like this.
  8. Dober'man

    Dober'man Banned

    Joined:
    16 Jul 2007
    Messages:
    70
    Likes Received:
    94
    Reputations:
    -8
    Code:
    for i:=1 to n do if length(edit[i].text)=0 then showmessage()
     
    2 people like this.
  9. PaNaDoL

    PaNaDoL New Member

    Joined:
    25 Jan 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    или

    Code:
    for i:=1 to n do if edit[i].text='' then showmessage()
     
  10. ArxWolf

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

    Joined:
    29 Feb 2008
    Messages:
    38
    Likes Received:
    29
    Reputations:
    0
    Или вот так, + все едиты и те которые будут создаватся в реалтайм.

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    Var
    i : integer;
    begin
    try
    for i:=0 to Form1.ComponentCount - 1 do
    if Form1.Components[i] is TEdit then
    if ((Form1.Components[i] as TEdit).Text='') then
    ShowMessage('Заполните все поля!');
    except
    end;
    end;
    
     
  11. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37

    FillChar(a, 0, sizeof(a)); или ZeroMemory(a, sizeof(a));
     
    1 person likes this.
  12. ArxWolf

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

    Joined:
    29 Feb 2008
    Messages:
    38
    Likes Received:
    29
    Reputations:
    0
    UnPazz

    for i:=0 to 4 do a:=i;

    freeandnil(a);

    fillchar(a,sizeof(a),char(0));
     
  13. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    вопрос
    ответы
    че за бред?
    вы где это увидели?

    Вот код который сделает то что нужно (P.S. строгое оформление кода у меня пошло от C#)
     
  14. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Возможно ли сделать на дельфи такую программу которая бы открывала сессию обмена данными с портом сервера? На подобие как есть функция в essential net tools Raw socket.
     
  15. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Можно. Через сокеты.
    WinAPI.
     
  16. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    А если не трудно где можно найти именно по этой теме материал? Или может есть у кого нибудь уже готовые тулзы?
     
  17. Dober'man

    Dober'man Banned

    Joined:
    16 Jul 2007
    Messages:
    70
    Likes Received:
    94
    Reputations:
    -8
    Во первых, не правильно цетировал мой код!!!
    Во вторых:
    TComponent - класс является предком для всех классов, которые хотят быть компонентами. Правда, этот класс может быть предком только для невизуальных компонентов, т.е. невидимых во время выполнения, а на форме видимых только в виде квадратика с иконкой!

    Конечно у тебя безупречный код проверки из всех компонентов формы наличие эдитов и наличия в них текста!!!
    И такое видели... !!! Куда нам, таким тупарям, до тебя!!!!!
     
  18. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    это почему же?
    Просмотрим дерево наследования для TMemo, визуальный компонент, чтож начнем:
    TMemo = class(TCustomMemo); -> TCustomMemo = class(TCustomEdit); -> TCustomEdit = class(TWinControl); -> TWinControl = class(TControl); -> TControl = class(TComponent).
    Приехали...
    сарказма не понял...
     
    1 person likes this.
  19. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    а в делфи вроде так =)
    Code:
                  Турбо Паскаль позволяет вам вставить команды  на  языке  ас-
             семблера непосредственно в ваш исходный код на Паскале. Это может
             оказаться очень полезным как для взаимодействия  со  специальными
             устройствами, так и для написания очень быстрых процедур, которые
             используют средства поддержки Турбо Паскаля.
                  Машинный код,  который  вы хотите вставить в вашу программу,
             должен идти после ключевого слова inline и быть заключен в  круг-
             лые  скобки.  Каждый  байт  или слово отделяются обратным слешем.
             Простая арифметика может быть реализована с помощью знаков плюс и
             минус. Символ "*" определяет ячейку, на которую указывает счетчик
             адреса.  Весь код вводится в виде чисел, то есть вы не можете ис-
             пользовать мнемоник как в ассемблере.  Так как inline - это пред-
             ложение, оно оканчивается точкой с запятой.
                  Например,
                  inline ($C9/$E900);
             будет вводить три байта в вашу программу: $C9, $E9 и 0.
    
    
    
     
  20. ronald

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

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    Чат

    Вот исходник локального чата:

    [.code]
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
    IdUDPClient, StdCtrls, WinSock;

    type
    TForm1 = class(TForm)
    Edit1: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    IdUDPClient1: TIdUDPClient;
    IdUDPServer1: TIdUDPServer;
    procedure Button1Click(Sender: TObject);
    procedure IdUDPServer1Status(ASender: TObject;
    const AStatus: TIdStatus; const AStatusText: String);
    procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
    ABinding: TIdSocketHandle);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    IdUDPClient1.Send(Edit1.Text);
    end;



    procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
    ABinding: TIdSocketHandle);
    var
    StringFormatedStream: TStringStream;
    s:String;
    begin
    StringFormatedStream := TStringStream.Create('');
    StringFormatedStream.CopyFrom(AData, AData.Size);
    Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);
    ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
    StringFormatedStream.Free;
    end;

    end.
    [.code]
    При компиляции в 7-ой дельфи вылезают ошибки:
    [Error] Unit1.pas(21): Undeclared identifier: 'TIdSocketHandle'

    [Error] Unit1.pas(50): ')' expected but identifier 'PeerIP' found

    [Error] Unit1.pas(50): 'END' expected but ')' found

    [Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.IdUDPServer1Status'

    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

    Помогите плз с этой х***й разобраться
     
    1 person likes this.
Thread Status:
Not open for further replies.