ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

25.04.2010, 16:13
|
|
Участник форума
Регистрация: 23.07.2009
Сообщений: 261
Провел на форуме: 4435957
Репутация:
539
|
|
stepashka_, пробуй методом тыка, смотри чужие сорцы как там все работает, и конечно же Google.
GhostOnline, сейчас попробую.
|
|
|

25.04.2010, 17:18
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 225
Провел на форуме: 2793173
Репутация:
297
|
|
напишите плиз пример программы которая работает с потоками. С исходником плиз(создающая например в мемо цифры от 1 до 10000 в несколько потоков чтобы софт не зависал). Не могу разобраться с потоками.(
|
|
|

26.04.2010, 02:37
|
|
Познающий
Регистрация: 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..
|
|
|

25.04.2010, 17:22
|
|
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме: 612028
Репутация:
28
|
|
поток создаешь через TThread? или апишными функциями?
|
|
|

25.04.2010, 17:56
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 225
Провел на форуме: 2793173
Репутация:
297
|
|
da
|
|
|

25.04.2010, 18:02
|
|
Участник форума
Регистрация: 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..
|
|
|

25.04.2010, 22:48
|
|
Постоянный
Регистрация: 02.07.2008
Сообщений: 472
Провел на форуме: 3728999
Репутация:
444
|
|
как сделать так чтобы можно было перемещать, перетаскивать форму за объект Image расположенном на этой форме?
|
|
|

25.04.2010, 22:52
|
|
Участник форума
Регистрация: 15.07.2009
Сообщений: 200
Провел на форуме: 147171
Репутация:
2
|
|
Сообщение от heretic1990
как сделать так чтобы можно было перемещать, перетаскивать форму за объект Image расположенном на этой форме?
Сделай обработку на нажатии мышкой по объекту и меняй координаты формы вслед за движениями мышью.
|
|
|

25.04.2010, 23:10
|
|
Постоянный
Регистрация: 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..
|
|
|

26.04.2010, 02:32
|
|
Познающий
Регистрация: 15.03.2009
Сообщений: 87
Провел на форуме: 893829
Репутация:
34
|
|
Сообщение от heretic1990
как сделать так чтобы можно было перемещать, перетаскивать форму за объект Image расположенном на этой форме?
OnMouseMove
Код:
ReleaseCapture;
SendMessage(Form1.Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|