[ 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. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    есть два поля (edit1 и edit2) можно ли БЕЗ объявления доп. переменных осуществить проверку ввода кроме как
    if (Edit1.text;='') or (Edit2.text='') then
    ???
     
  2. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    чем тебя твой вариант не устраивает?
     
  3. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    Другой нужно...
     
  4. Joker-jar

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

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    if length(Edit1.Text) = 0 then ...
    это ведь тупо... лучше скажи, чем не устраивает, и чего хочешь добиться
     
  5. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    какая разница почему то не устраивает считай что из-за моих религиозных убеждений =))
    Хочу проверку... )
    Joker-jar, не то...
     
  6. Joker-jar

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

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Просто мы не можем понять, что нужно то :) Как я понял, нужно определить, что один из двух едитов пуст, но не через if (edit1.text) or (edit2.text) then ... Да?
     
  7. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    Надо проверку на то что оба edita не пусты
    Да
     
  8. Ni0x

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

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    Пример на С, но на дельфи перевести за минуту можно.
    Code:
    //WM_GETTEXT в помощь
    char buf[128];
    SendMessage(hWndEdit, WM_GETTEXT, sizeof(buf), (LPARAM)buf);
    
    Дальше проверяй буффер
     
    #448 Ni0x, 5 Aug 2007
    Last edited: 5 Aug 2007
  9. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    Вообще-то для этого есть GetWindowTextLengthA() в user32.dll
    Возвращает длинну текста в окне. Если 0 - пустое.
     
    1 person likes this.
  10. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    спасибо, сдела вот так
    ток не смейтесь +))
     
  11. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    >БЕЗ объявления доп. переменных
    ?
     
    1 person likes this.
  12. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    пох пусть с переменными будет))
    Потрите а то я тут нафлудил))
     
    1 person likes this.
  13. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    Ктото может дать реально работаюший пример на хук на TerminateProcess?
     
  14. LEE_ROY

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

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    Code:
    library Hook;
    
    uses
      Windows,
      AdvApiHook,
      NativeAPI;
    
    var
      TrueZwTerminateProcess:Function (ProcessHandle:dword;
                                ExitStatus:dword):NTStatus;stdcall;
      //
      function NewZwTerminateProcess (ProcessHandle:dword;
                                ExitStatus:dword):NTStatus;stdcall;
      var
      pid: DWORD;
      MyHandle: DWORD;
      begin
      pid:=GetProcessId('Explorer.EXE'); //так для примера :)
      MyHandle:=OpenProcess(PROCESS_ALL_ACCESS, false,pid);
      if MyHandle = ProcessHandle
      then
     MessageBox(0, 'Нашёлся :)', 'Проверка', MB_ICONINFORMATION or MB_OK)
     else
     TrueZwTerminateProcess(ProcessHandle, ExitStatus);
    end;
    procedure LibraryProc (Reason : integer);
    begin
      case Reason of
        DLL_PROCESS_ATTACH : //событие присоединения к процессу
          begin
             //ставим хук
           HookProc('ntdll.dll', 'ZwTerminateProcess', @NewZwTerminateProcess, @TrueZwTerminateProcess);
          end;
        DLL_PROCESS_DETACH :
    //Отсоединение от процесса
    // снимаем хук
        begin
         UnhookCode(@TrueZwTerminateProcess);
        end;
      end;
    end;
    begin
      DllProc := LibraryProc;
      DllProc (DLL_PROCESS_ATTACH);
    end.
    
     
  15. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Подкиньте пример работы с aplib только без FileStream =)) тоесть sysutils мне совершенно не надо.
     
  16. Ni0x

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

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    http://sources.codenet.ru/file/710/exefog-1.1-sources.rar
     
  17. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    Lee_Roy. +1
     
  18. infernal-team

    infernal-team Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    53
    Likes Received:
    17
    Reputations:
    -10
    Подскажете как сделать чтобы при нажатии буттон открывался опен диалог.
     
  19. infernal-team

    infernal-team Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    53
    Likes Received:
    17
    Reputations:
    -10
    Совсем забыл как убрать с опен диалога вкладки котороые находяться слева (мой компьютер, мои документы и прочие) !!!
     
  20. Ch3ck

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

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,192
    Reputations:
    430
    Простой пример:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    If OpenDialog1.Execute Then
    Memo1.Lines.LoadFromFile(OpenDialog1.Filename);
    end;
    end.
    
    По-моему нельзя их убрать...
     
    1 person likes this.
Thread Status:
Not open for further replies.