![]() |
|
|
Регистрация | << Правила форума >> | 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. полный пример Пишу программы за еду. __________________ |