[ 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. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    s, s1: string;
    begin
    s:='ТекстТут';
    s1:=LowerCase(s); //тесттут

    вот и все...
     
    #3901 W!z@rD, 14 Aug 2009
    Last edited: 15 Aug 2009
  2. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    Code:
    var
      substr, s: string;
      p: Integer;
    begin
      substr := 'b';
      s := 'ABCD';
      p := Pos(LowerCase(substr), LowerCase(s));
    end;
    
     
    1 person likes this.
  3. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    из модуля strutils
    function AnsiContainsText(const AText, ASubText: string): Boolean;
     
  4. xmadstyle

    xmadstyle Member

    Joined:
    29 Aug 2008
    Messages:
    91
    Likes Received:
    53
    Reputations:
    24
    Народ подскажите плиз как в дельфи работать с активными соединениями, а именно получить список активных соединений, ip и port источника и получателя определенного соединения, закрытие соединения.
    Заранее спс.
     
  5. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    запускай netstat и анализируй его вывод
    или если вручную
    http://www.xakep.ru/magazine/xa/098/122/1.asp
     
  6. anticmc

    anticmc New Member

    Joined:
    25 Jul 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    люди помогите пожалуйста. в программе есть кнопка. после её нажатия открывается окно браузера и сайт. мне нужно поменять этот сайт. так вот проблема в том что Resource Builder не показывает обработчик OnClick ни одной кнопки. просто примерно вот такой текст каждой кнопки.

    object btnpay: TButton
    Left = 129
    Top = 129
    Width = 67
    Height = 25
    Caption = 'Pay'
    TabOrder = 5
    Visible = False
    OnClick = btnpayClick

    а где находится обработчик? все обыскал!
    Помогите кто знает. я в pascal ни бум бум.
     
  7. SuX

    SuX New Member

    Joined:
    10 Oct 2006
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    I will use a translater to tell you what i want:
    Может ли кто-нибудь сказать мне, как использовать половину жизни разорвать запросы? с Delphi?
    Я хочу, чтобы игрок, и их имена frags.

    http://developer.valvesoftware.com/wiki/Server_Queries

    english:
    Can someone tell me how to use half life sever queries ? with delphi ?
    I want to get player names and their frags.
    name - frags - deads

    http://developer.valvesoftware.com/wiki/Server_Queries

    I need a simple code, i use delphi 7 :)
     
  8. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    anticmc: Если строка, содержащая url, не зашифрована, то можно открыть программу HEX-редактором и попробывать там найти и заменить URL.
    А обработчик события на паскале ты никогда не найдешь, потому что этот код компилируется в машинный.
     
    #3908 Nullsleep, 16 Aug 2009
    Last edited: 16 Aug 2009
  9. anticmc

    anticmc New Member

    Joined:
    25 Jul 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0

    спасибо. разобрался!)
     
  10. cremator (c)

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

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    anticmc, мне так показалось, что речь идёт о Delphi? Берёшь DeDe(Delphi decompilator), грузишь в него свой exe-шник. Декомпилируешь. И там найдёшь на вкладке Procedures все обработчики(в машинном коде, естественно)
     
    1 person likes this.
  11. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    вопрос нуба но все же:

    Есть код

    While......
    begin
    if ...... then
    begin
    Что здесь надо поставить чтобы выполнение While "Повторилось"???
    end;
    end;

    Команда "End;" не подходит т.к. обработчик начинает ругаться на большое кол-во End-ов...
     
  12. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    а что у тебя в условии While стоит? сделай, чтоб было True и всё повторится

    по-моему с текстовым файлом это не сделать. только типизированный или нетипизированный

    при чтении не надо (она записывает файл)
     
  13. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Code:
    while Memo1.Lines.Count > 0 do
    Я не уверен что "Истина" тут подойдет
     
  14. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    поставь переменную, например

    Code:
    temp:=Memo1.Lines.Count;
    while  temp> 0 do
    а там уже оперируй ей
     
  15. cremator (c)

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

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    НTL, вообще есть операторы прерывания и продолжения цикла.
    break - выход из цикла
    continue - переход к следующей итерации цикла
    Вообще напиши весь код, а то как то непонятно какую цель ты преследуешь здесь.
    Если ты удаляешь в цикле по строке из Memo и хочешь чтобы программа, когда число строк станет=0 удалила ещё одну строку, то тебе выдаст Access violation
    Как вариант добавить доп. переменную
     
    1 person likes this.
  16. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Ты что, шутишь? это же безконечный цыкл! Например у мемо 2 строчки, и что тогда? Условие всегда верно, 2 всегда больше 0. Прога зависнет если break не делать в коде.
     
  17. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    =Zeus=, вчитайся в слова
    Вот пример кода, который выполнится 2 раза, если у тебя две строчки:
    Code:
    temp:=Memo1.Lines.Count;
    while  temp> 0 do
    temp:=temp-1;
    
     
    2 people like this.
  18. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    А ну если так то конечно, тут без вопросов.
     
  19. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Попробуй помолиться...
     
    1 person likes this.
  20. cremator (c)

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

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Flenov, PC_Icon_Extractor_4.1_Portable в руки. Извлекает все иконки из любых файлов, будь то dll, exe etc.

    А по существу, то надо было сделать так:

    Code:
    unit extracticons;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    type ThIconArray = array[0..0] of hIcon;
    type PhIconArray = ^ThIconArray;
    
    function ExtractIconEx(lpszFile: PAnsiChar;
      nIconIndex: Integer;
      phiconLarge : PhIconArray;
      phiconSmall: PhIconArray;
      nIcons: UINT): UINT; stdcall;
      external 'shell32.dll' name 'ExtractIconExA';  
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      NumIcons: integer;
      pTheLargeIcons: phIconArray;
      pTheSmallIcons: phIconArray;
      LargeIconWidth,LargeIconHeight,
      SmallIconWidth,SmallIconHeight: integer;
      i: integer;
      TheIcon: TIcon;
      TheBitmap: TBitmap;
    begin
      NumIcons := ExtractIconEx('D:\system.dll',-1, nil, nil, 0);
      if NumIcons > 0 then
      begin
        LargeIconWidth := GetSystemMetrics(SM_CXICON);
        LargeIconHeight := GetSystemMetrics(SM_CYICON);
        SmallIconWidth := GetSystemMetrics(SM_CXSMICON);
        SmallIconHeight := GetSystemMetrics(SM_CYSMICON);
        GetMem(pTheLargeIcons, NumIcons * sizeof(hIcon));
        GetMem(pTheSmallIcons, NumIcons * sizeof(hIcon));
        FillChar(pTheLargeIcons^, NumIcons * sizeof(hIcon), #0);
        FillChar(pTheSmallIcons^, NumIcons * sizeof(hIcon), #0);
        ExtractIconEx('D:\system.dll',0, pTheLargeIcons, pTheSmallIcons, numIcons);
        {$IFOPT R+}
        {$DEFINE CKRANGE}
        {$R-}
        {$ENDIF}
        for i := 0 to (NumIcons - 1) do
        begin
          TheIcon := TIcon. Create;
          TheBitmap := TBitmap.Create;
          TheIcon.Handle := pTheLargeIcons^[i];
          TheBitmap.Width := LargeIconWidth;
          TheBitmap.Height := LargeIconHeight;
          TheBitmap.Canvas.Draw(0, 0, TheIcon);
          TheIcon.Free;
          TheBitmap.SaveToFile('D:\ic\l'+inttostr(i)+'.ico');
          TheBitmap.Free;
    
    
          TheIcon := TIcon. Create;
          TheBitmap := TBitmap.Create;
          TheIcon.Handle := pTheSmallIcons^[i];
          TheBitmap.Width := SmallIconWidth ;
          TheBitmap.Height := SmallIconHeight;
          TheBitmap.Canvas.Draw(0, 0, TheIcon);
          TheIcon.Free;
          TheBitmap.SaveToFile('D:\ic\s'+inttostr(i)+'.ico');
          TheBitmap.Free;
        end;
        {$IFDEF CKRANGE}
        {$UNDEF CKRANGE}
        {$R+}
        {$ENDIF}
        FreeMem(pTheLargeIcons, NumIcons * sizeof(hIcon));
        FreeMem(pTheSmallIcons, NumIcons * sizeof(hIcon));
      end;
    
    end;
    
    end.
    
    Конечно это не идеальный вариант, программа извлекает иконку в двух размерах 32х32 и 16х16, можешь оставить то, что тебе надо.
     
    1 person likes this.
Thread Status:
Not open for further replies.