![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет, вопрос возник т.к. оббычно запускались, а при таком раскладе нет
Код:
var
st: TStringStream;
Str3: AnsiString;
step: byte;
new2: TStringList;
a:string;
pipecs: string;
i:integer;
begin
St := TStringStream.Create;
begin
IdHTTP1.get('сайт', st);
If Pos('n-слово', st.datastring) > 0 then
//тут идёт парсинг
//удалён для облегчения кода
step := 2;
try
a := Str3;
new2 := TStringList.Create;
Form2.image1.Canvas.TextOut(10, 10, a);
Form2.ShowModal;
pipecs := Form2.edit1.text;
except
end;Последний раз редактировалось bulldog, 18.01.2011 в 15:48. |
|
#2
|
||||
|
||||
|
По моему из потока невозможно получить доступ к основную программу. Нужен определить хендл окон. После этого сможеш показать с помошю Api функции SendMessage.
|
|
#3
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TFormThread = class(TThread)
private
AForm: TForm;
procedure ShowMessage;
protected
procedure Execute; override;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
{ TFormThread }
procedure TFormThread.Execute;
begin
AForm:=Form2;
Synchronize(ShowMessage);
Form3.Memo1.Text:=Form2.Edit1.Text;
AForm:=Form3;
Synchronize(ShowMessage);
Windows.Beep(1000, 100); { чтобы услышать когда поток закончился }
end;
procedure TFormThread.ShowMessage;
begin
AForm.ShowModal;
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
TFormThread.Create(False);
end;
end.полный пример |