Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
ВнизДва окна Найти похожие ветки
← →
Alex-21 (2003-07-28 21:30) [0]Создаются два окна последовательно с помощью этой процедуры:
TForm2.CreateParams();
begin
inherited CreateParams(Params);
Params.WndParent:= GetDesktopWindow;
end;
И в этом окне установлена компонента Label1. Мне нужно узнать, чему равен Label1.Caption первого созданного окна. Ведь мы узнаем только значение второго окна, созданного вслед за первым. Пусть первое окно активное. И как можно узнать значение Label1 первого окна?
← →
default (2003-07-28 21:55) [1]пиши по-русски свой вопрос
← →
Alex-21 (2003-07-28 22:07) [2]Сначала создается первое окно с помощью этой процедуры, потом через какое-то время второе окно. И тут ссылка будет не на первое окно, а на последнее, то есть второе. А надо узнать Label1.Caption первого окна.
← →
jack128 (2003-07-28 23:26) [3]var
Form1, Form2 : Tform2;
begin
try
Form1 := Tform2.Create(nil);
try
Form2 := Tform2.Create(nil);
ShowMessage(Form1.Label1.Caption);
finally
Form2.Free;
end;
finally
Form1.Free;
end;
end;
Учись излогать свои мысли, а то по нынишним временам с телепатами совсем плохо...
← →
default (2003-07-28 23:47) [4]CreateParams вообще не создаёт окно...
см. Help
← →
Alex-21 (2003-07-29 16:09) [5]Что-то мне не нравится. Сначала, пусть не создается, но появляется одно окно, используя данную процедуру, потом следующее окно, тоже с помощью этой процедуры через какой-то промежуток времени. И хотелось бы получить после этого Label1.Caption, но получаю Label1.Caption второго окна. А надо первого окна. Что непонятно?
> jack128 © (28.07.03 23:26)
Это способ мне не подходит. Неизвестно ведь сколько окон будет. А вдруг три нужно.
← →
default (2003-07-29 16:21) [6]напиши свой код будет куда легче
← →
Alex-21 (2003-07-29 17:17) [7]Вот код:
procedure TForm1.Button1click(Sender: TObject);
begin
Form2:= TForm2.Create(Application);
end;
...
procedure TForm2.CreateParams(Sender: TObject);
begin
inherited CreateParams(Params);
Params.WndParent:= GetDesktopWindow;
end;
procedure TForm2.Button1Click(Sender: TObject);
var s: String;
begin
s:=Label1.Caption;
end;
Один раз кликаем на TForm1.Button1Click, появляется первое окно, второй раз кликаем на это же TForm1.Button1Click, появляется второе окно. Далее нажимаю TForm2.Button1Click, независимо от того, на какое окно: первое или второе, получаю значение s второго окна, а надо первого.
← →
jack128 (2003-07-29 17:26) [8]у меня все нормально работает..
var i : integer = 0;
procedure TForm1.Button2Click(Sender: TObject);
begin
with TForm2.Create(Application) do
begin
Show;
Label1.Caption := IntToStr(i);
end;
inc(i);
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Caption := Label1.Caption;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
← →
default (2003-07-29 18:05) [9]может это поможет...
или сохраняй указатель на первую форму или что-то вроде этого
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
Counter: Byte = 0;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if Counter > 254 then Exit;
Inc(Counter);
with TForm1.Create(Form1) do begin
Label1.Caption := IntToStr(Counter);
Name := "F" + Label1.Caption;
Show
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Caption := TForm1(Form1.FindComponent("F1")).Label1.Caption
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c