HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 25.04.2010, 16:13
HakaR
Участник форума
Регистрация: 23.07.2009
Сообщений: 261
Провел на форуме:
4435957

Репутация: 539
По умолчанию

stepashka_, пробуй методом тыка, смотри чужие сорцы как там все работает, и конечно же Google.

GhostOnline, сейчас попробую.
 
Ответить с цитированием

  #2  
Старый 25.04.2010, 17:18
winlogon.exe
Участник форума
Регистрация: 05.06.2009
Сообщений: 225
Провел на форуме:
2793173

Репутация: 297
По умолчанию

напишите плиз пример программы которая работает с потоками. С исходником плиз(создающая например в мемо цифры от 1 до 10000 в несколько потоков чтобы софт не зависал). Не могу разобраться с потоками.(
 
Ответить с цитированием

  #3  
Старый 26.04.2010, 02:37
090808
Познающий
Регистрация: 15.03.2009
Сообщений: 87
Провел на форуме:
893829

Репутация: 34
По умолчанию

Цитата:
Сообщение от winlogon.exe  
напишите плиз пример программы которая работает с потоками. С исходником плиз(создающая например в мемо цифры от 1 до 10000 в несколько потоков чтобы софт не зависал). Не могу разобраться с потоками.(

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, ExtCtrls;


type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TNewThread = class(TThread)
  private
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended: Boolean);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

constructor TNewThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
end;

procedure TNewThread.Execute;
var StrPage:string;
begin
Form1.Memo1.Tag :=  Form1.Memo1.Tag+1;
Form1.Memo1.Lines.Add(Inttostr(Form1.Memo1.tag));
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
TNewThread.Create(false); //создаём поток
TNewThread.Create(false);
TNewThread.Create(false);
TNewThread.Create(false);
end;

Тупенький,но за то рабочий пример многопоточности

Последний раз редактировалось 090808; 26.04.2010 в 02:44..
 
Ответить с цитированием

  #4  
Старый 25.04.2010, 17:22
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

Репутация: 28
По умолчанию

поток создаешь через TThread? или апишными функциями?
 
Ответить с цитированием

  #5  
Старый 25.04.2010, 17:56
winlogon.exe
Участник форума
Регистрация: 05.06.2009
Сообщений: 225
Провел на форуме:
2793173

Репутация: 297
По умолчанию

da
 
Ответить с цитированием

  #6  
Старый 25.04.2010, 18:02
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

Репутация: 28
По умолчанию

что да? да - TThread или да - апи? о_О

если через TThread то пишешь в созданном потоке процедурку такого вида
Код:
procedure MyThread.updmemo(str: string);
begin
  memo1.lines.add(str);
end;
и в execute пишешь
Код:
var i: integer;
begin
  for i := 0 to 1024 do
    Synchronize(updmemo(inttostr(i)));
end;
для того чтобы не вешать форму надо все вычисления выполнять до синхронизации!
например код что выше не будет вешать форму, а этот будет
Код:
procedure MyThread.updmemo();
 var i: integer;
begin
  for i := 0 to 1024 do
    memo1.lines.add(inttostr(i));
end;
в execute
Код:
begin
  Synchronize(updmemo);
end;

Последний раз редактировалось [stranger]; 25.04.2010 в 18:06..
 
Ответить с цитированием

  #7  
Старый 25.04.2010, 22:48
heretic1990
Постоянный
Регистрация: 02.07.2008
Сообщений: 472
Провел на форуме:
3728999

Репутация: 444
По умолчанию

как сделать так чтобы можно было перемещать, перетаскивать форму за объект Image расположенном на этой форме?
 
Ответить с цитированием

  #8  
Старый 25.04.2010, 22:52
Qb1024
Участник форума
Регистрация: 15.07.2009
Сообщений: 200
Провел на форуме:
147171

Репутация: 2
По умолчанию

Цитата:
Сообщение от heretic1990  
как сделать так чтобы можно было перемещать, перетаскивать форму за объект Image расположенном на этой форме?
Сделай обработку на нажатии мышкой по объекту и меняй координаты формы вслед за движениями мышью.
 
Ответить с цитированием

  #9  
Старый 25.04.2010, 23:10
heretic1990
Постоянный
Регистрация: 02.07.2008
Сообщений: 472
Провел на форуме:
3728999

Репутация: 444
По умолчанию

Цитата:
Сообщение от Qb1024  
Сделай обработку на нажатии мышкой по объекту и меняй координаты формы вслед за движениями мышью.
думал уже об этом, а по другому никак?

вот что у меня получилось:
Код:
procedure TForm1.Image4MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
kod:tpoint ;
begin
  getcursorpos(kod);
form1.left:=(kod.X);
form1.Top:=(kod.Y);
end;
форма просто перепрыгивает, а как сделать так чтобы она перетаскивалась?

Ответ найден. выход из положения:
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);

Последний раз редактировалось heretic1990; 25.04.2010 в 23:52..
 
Ответить с цитированием

  #10  
Старый 26.04.2010, 02:32
090808
Познающий
Регистрация: 15.03.2009
Сообщений: 87
Провел на форуме:
893829

Репутация: 34
По умолчанию

Цитата:
Сообщение от heretic1990  
как сделать так чтобы можно было перемещать, перетаскивать форму за объект Image расположенном на этой форме?
OnMouseMove


Код:
   ReleaseCapture;
    SendMessage(Form1.Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2569 10.05.2026 13:27
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.