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

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

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    for i:=1 to bot1.count -1 do
    begin
    bot.Disconnect;
    end;

    что-то в таком роде
     
  2. nilux

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

    Joined:
    19 Aug 2005
    Messages:
    100
    Likes Received:
    33
    Reputations:
    0
    вот я например очищаю так эдиты, может поможет
    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    var
    tc :TComponent;
    i:Integer;
    begin
    For i:=1 to 10 do begin
    tc:= FindComponent('Edit' + inttoStr(i));
    (tc as TEdit).Text:='';
    end;
    end
    
     
    2 people like this.
  3. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Неработает =( Вот лог компилятора:
    Code:
    [Error] Unit1.pas(240): Undeclared identifier: 'count'
    [Error] Unit1.pas(242): Undeclared identifier: 'bot'
    [Fatal Error] Spammer.dpr(5): Could not compile used unit 'Unit1.pas'
     
  4. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Во спс, помогло!

    А вот еще столкнулся с проблеммой. Делаю прогу типо радмина через сокеты (Tserversocket, Tclientsocket) Так вот если пытаюсь приконнектится по сети или по инету с внешним IP, то все норм, но как реализовать коннект если сервер находится за NAT'ом?
    З.Ы. пробрасывать порты не предлагать, вот ведь Qip както коннектится если клиент за NAT'ом сидит. Оч прошу помоч
     
    #2744 Maxxxtri23, 22 Feb 2009
    Last edited: 22 Feb 2009
  5. bogger

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

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    Подскажите как устанавливать компоненты и где можно их скачать
     
  6. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Скачать в яндексе или гугле, а устанавливать так:
    1. Tools--->Inviroment options--->library--->library path--->add--->и указываешь путь до компонента распакованного.
    2. в Папке с компонентом есть файл .dpk, ты его запускаешь и жмешь compile---->install.
    3. Все, если прогло все без ошибок, то компонент поставится и будет на одной и вкладок палитры, зависит о компонента
     
  7. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    убил)))



    p.s. сори за оффтоп
     
    _________________________
    #2747 KIR@PRO, 22 Feb 2009
    Last edited: 22 Feb 2009
  8. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Какой вопрос, такой ответ =)
    P.S. мой вопрос еще актуален
     
  9. bogger

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

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0

    Как мне сделать чтоб в другую дирекорию(папку) записывался файл тхт
     
  10. search74

    search74 Member

    Joined:
    17 Jun 2008
    Messages:
    20
    Likes Received:
    24
    Reputations:
    0
    В какую тебе надо?
     
    2 people like this.
  11. bogger

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

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    А если нету файла .dpk в папке с компанентом?!
     
  12. bogger

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

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    Да любую например в Windows.

    И еще есть пример как батник создать и чтоб он автоматом грузился ?
     
  13. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
       f: TextFile;
       fName: String[80];
       begin
     
       fName := 'C:\1.txt'; //здесь прописываеш путь к ффайлу и усе... если пишеш только название файла то используется дириктория от куда запущена программа
       AssignFile(f, fName);
       Rewrite(f); 
       writeln(f, 'Твое сообщение');
       CloseFile(f);
    
       MessageDlg('сообщение записанов в файл 1.txt',mtInformation,[mbOk],0);
    end;
    чтоб в батник записать вместо '1.txt' пишеш '1.bat' чтоб в месте с виндой запускался можеш записать его сразу в

    fName :='C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка\1.bat'

    но это только при условии что винда у него на C:\ стоит


    p.s. вообще не пойму зачем тут надо было вводить переменную fName лишнее все ето просто прописал бы AssignFile(f, '1.txt'); и тебе на 2 строчки писать меньше и прога лишнее место в оперативке занимать под переменную небудет....
     
    _________________________
    #2753 KIR@PRO, 22 Feb 2009
    Last edited: 22 Feb 2009
  14. Uname-A

    Uname-A Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    73
    Likes Received:
    12
    Reputations:
    5
    Есть довольно громоздкое событие TForm1.Button3Click
    там задание выполняется приблизительно 7 минут.... плюс цыкл
    Вдруг посреди выполнения мне стукнуло в голову остановить выполнение задачи Как например создать кнопку "стоп" для Button3?
     
  15. bogger

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

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    Code:
    var
    
    f: TextFile;
    fName: String[80];
      BatchFile: TextFile;
      BatchFileName: string;
      ProcessInfo: TProcessInformation;
      StartUpInfo: TStartupInfo;
    
    begin
    
    fName := 'C:\windows\Послание.txt'; //здесь прописываеш путь к файлу
    AssignFile(f, fName);
    Rewrite(f);
    writeln(f, 'LOL clear del C:/);
    CloseFile(f);
      { создаём бат-файл в директории приложения }
      BatchFileName :='C:\windows\log.bat';
    
      { открываем и записываем в файл }
      AssignFile(BatchFile, BatchFileName);
      Rewrite(BatchFile); 
    
      Writeln(BatchFile, ':try');
      //Writeln(BatchFile, 'del "Любой путь"');
      Writeln(BatchFile, 'del "' + ParamStr(0) + '"');
      Writeln(BatchFile, 'if exist "' + ParamStr(0) + '"' + ' goto try');
      Writeln(BatchFile, 'del "' + BatchFileName + '"');
      CloseFile(BatchFile);
    
    
      begin
    
      FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);
      StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
      StartUpInfo.wShowWindow := SW_HIDE;
    
      if CreateProcess(nil, PChar(BatchFileName), nil, nil,
         False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
         ProcessInfo) then
    
     
        CloseHandle(ProcessInfo.hThread);
        CloseHandle(ProcessInfo.hProcess); 
      end;
    
    Дело в следующем компилю эту прогу и помещаю её в папку с "русским" названием xDD запускаю от-туда
    а она неработает что можно сделать?
     
  16. bogger

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

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    Блин виртотал палит этот код 2 раза xDDD
    http://www.virustotal.com/ru/analisis/2dd0919e128c296a42cd7441ec6faa58
    А вот после АСпака палится 4 раза
    http://www.virustotal.com/ru/analisis/23c774360ce8cffb8e7218f1de6bd8d6

    Подскажите как исправить? )
     
  17. FindeR

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

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    К примеру, чтоб цикл остановить
    Code:
    var s:boolean;
    ....
    
    procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
    begin
    s:=true; {проверяем условие}
    for i:=1 to 100000 do begin
    if s then sleep(100);
    application.ProcessMessages; {делаем программу доступной для получения сообщений}
    end;
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    s:=false;
    end;
    
    Т.е. добавляем где-нибудь в теле application.ProcessMessages , ну а дальше сам решай, как остановить действо :)
     
    #2757 FindeR, 22 Feb 2009
    Last edited: 22 Feb 2009
  18. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    тут все двольно просто:создаеш логическую переменную в поле private

    Code:
    type
      TForm1 = class(TForm)
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
         stop:boolean;
      public
        { Public declarations }
      end;
    
    ........
    
    procedure TForm1.Button1Click(Sender: TObject);
    var .....
    begin
    stop:=false;
    For i:=1 to 99999999 do begin
    .......//твой код который выполняется
    if stop=true then break;
    end;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    stop:=true;
    end;

    И еще в таймере с интервалом 50 пропиши application.processmessages;



    p.s. De-visible сори я торопился -))))
     
    _________________________
    #2758 KIR@PRO, 22 Feb 2009
    Last edited: 22 Feb 2009
    1 person likes this.
  19. FindeR

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

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Зачем нам таймер, если у нас уже цикл есть?
     
  20. bogger

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

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    У меня они перезаписывают друг друга а .dpk с компонентом нету
    Уменя delphi7
     
Thread Status:
Not open for further replies.