![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
SpeedButton - как передать значение переменной из Form1 в Form3
есть три формы, в первой Unit1: Код:
procedure TForm1.SpeedButton1Click(Sender: TObject); begin g := 1 + AA[0]; rr:=IntToStr(g); Form1.Hide; Form3.Show; end; при нажатии кнопки нужно значение переменной rr передать в Form3 (Unit3) в uses Unit1 есть Unit2, Unit3; а в uses Unit3 есть Unit1; пока не получается. ![]() Последний раз редактировалось Admin, 24.02.2015 в 21:55. |
|
#2
|
||||
|
||||
|
А зачем значение передавать?, это лишне, объявите переменную в public секции первого юнита, и тогда можно будет использовать её значение простым выбором
Код:
... uses unit1; ... g:= Form1.rr; |
|
#3
|
||||
|
||||
|
Цитата:
у меня программа для учения правил дорожного движения, там 952 билета, из формы первой по индексу массива нажатием на SpeedButton из Imagelist берет номер билета и по картинке из этого Imagelist в форме третьей буду формировать сам тест. ну попробую изложить код - не судите - не много знаю программирование: Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, ImgList, Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
Image10: TImage;
Image11: TImage;
Image12: TImage;
Image13: TImage;
Image14: TImage;
Image15: TImage;
Image16: TImage;
Image17: TImage;
Image18: TImage;
Image19: TImage;
Image20: TImage;
Image21: TImage;
Image22: TImage;
Image23: TImage;
Image24: TImage;
Image25: TImage;
Image26: TImage;
Image27: TImage;
Image28: TImage;
Image29: TImage;
Image30: TImage;
Image31: TImage;
ImageList1: TImageList;
ImageList2: TImageList;
ImageList3: TImageList;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
SpeedButton17: TSpeedButton;
SpeedButton18: TSpeedButton;
SpeedButton19: TSpeedButton;
SpeedButton20: TSpeedButton;
SpeedButton21: TSpeedButton;
SpeedButton22: TSpeedButton;
SpeedButton23: TSpeedButton;
SpeedButton24: TSpeedButton;
SpeedButton25: TSpeedButton;
SpeedButton26: TSpeedButton;
SpeedButton27: TSpeedButton;
SpeedButton28: TSpeedButton;
SpeedButton29: TSpeedButton;
SpeedButton30: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton13Click(Sender: TObject);
procedure SpeedButton14Click(Sender: TObject);
procedure SpeedButton15Click(Sender: TObject);
procedure SpeedButton16Click(Sender: TObject);
procedure SpeedButton17Click(Sender: TObject);
procedure SpeedButton18Click(Sender: TObject);
procedure SpeedButton19Click(Sender: TObject);
procedure SpeedButton20Click(Sender: TObject);
procedure SpeedButton21Click(Sender: TObject);
procedure SpeedButton22Click(Sender: TObject);
procedure SpeedButton23Click(Sender: TObject);
procedure SpeedButton24Click(Sender: TObject);
procedure SpeedButton25Click(Sender: TObject);
procedure SpeedButton26Click(Sender: TObject);
procedure SpeedButton27Click(Sender: TObject);
procedure SpeedButton28Click(Sender: TObject);
procedure SpeedButton29Click(Sender: TObject);
procedure SpeedButton30Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
b: array[1..11] of string;
i,n,r,ii,ee,g,h: integer;
s,rr,a, xx01, xx02, xx03, xx04: string;
x1,x2,x3: real;
ty: array[1..35] of integer;
tn: array[1..35] of integer;
t: array[0..35] of integer;
d: set of byte;
AA: array[0..112] of integer;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ee:=0;
Imagelist2.GetBitmap(ee, Image2.Picture.Bitmap);
Imagelist2.GetBitmap(ee, Image3.Picture.Bitmap);
// и так далее
Imagelist2.GetBitmap(ee, Image30.Picture.Bitmap);
Imagelist2.GetBitmap(ee, Image31.Picture.Bitmap);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ee:=0;
Image2.Picture:= nil; Imagelist2.GetBitmap(ee, Image2.Picture.Bitmap);
Image3.Picture:= nil; Imagelist2.GetBitmap(ee, Image3.Picture.Bitmap);
Image4.Picture:= nil; Imagelist2.GetBitmap(ee, Image4.Picture.Bitmap);
// и так далее до
Image29.Picture:= nil; Imagelist2.GetBitmap(ee, Image29.Picture.Bitmap);
Image30.Picture:= nil; Imagelist2.GetBitmap(ee, Image30.Picture.Bitmap);
Image31.Picture:= nil; Imagelist2.GetBitmap(ee, Image31.Picture.Bitmap);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
randomize;
d:=[];
for i := 0 to 111 - 1 do // chia 112 - maksimali masyvo reikshme
begin
repeat
r := random(111);
until not (r in d);
d := d + [r];
AA[i] := r;
end;
Image2.Picture:= nil;
ii:= AA[0]; t[0] := ii + 1;
Imagelist1.GetBitmap(ii, Image2.Picture.Bitmap);
Image3.Picture:= nil;
ii:= AA[1]; t[1]:= ii + 1;
Imagelist1.GetBitmap(ii, Image3.Picture.Bitmap);
Image4.Picture:= nil;
ii:= AA[2]; t[2]:= ii + 1;
Imagelist1.GetBitmap(ii, Image4.Picture.Bitmap);
Image5.Picture:= nil;
ii:= AA[3];
Imagelist1.GetBitmap(ii, Image5.Picture.Bitmap);
// и так далее до
Image29.Picture:= nil;
ii:= AA[27];
Imagelist1.GetBitmap(ii, Image29.Picture.Bitmap);
Image30.Picture:= nil;
ii:= AA[28];
Imagelist1.GetBitmap(ii, Image30.Picture.Bitmap);
Image31.Picture:= nil;
ii:= AA[29];
Imagelist1.GetBitmap(ii, Image31.Picture.Bitmap);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
g := 1 + AA[0];
rr:=IntToStr(g);
Form1.Hide;
Form3.Show;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
g := 1 + AA[1];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
g := 1 + AA[2];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
g := 1 + AA[3];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
g := 1 + AA[4];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
g := 1 + AA[5];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
g := 1 + AA[6];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
g := 1 + AA[7];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
g := 1 + AA[8];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
g := 1 + AA[9];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton11Click(Sender: TObject);
begin
g := 1 + AA[10];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton12Click(Sender: TObject);
begin
g := 1 + AA[11];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton13Click(Sender: TObject);
begin
g := 1 + AA[12];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton14Click(Sender: TObject);
begin
g := 1 + AA[13];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton15Click(Sender: TObject);
begin
g := 1 + AA[14];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton16Click(Sender: TObject);
begin
g := 1 + AA[15];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton17Click(Sender: TObject);
begin
g := 1 + AA[16];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton18Click(Sender: TObject);
begin
g := 1 + AA[17];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton19Click(Sender: TObject);
begin
g := 1 + AA[18];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton20Click(Sender: TObject);
begin
g := 1 + AA[19];
rr := IntToStr(g);
end;
procedure TForm1.SpeedButton21Click(Sender: TObject);
begin
g := 1 + AA[20];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton22Click(Sender: TObject);
begin
g := 1 + AA[21];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
g := 1 + AA[22];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton24Click(Sender: TObject);
begin
g := 1 + AA[23];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton25Click(Sender: TObject);
begin
g := 1 + AA[24];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton26Click(Sender: TObject);
begin
g := 1 + AA[25];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton27Click(Sender: TObject);
begin
g := 1 + AA[26];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton28Click(Sender: TObject);
begin
g := 1 + AA[27];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton29Click(Sender: TObject);
begin
g := 1 + AA[28];
rr:=IntToStr(g);
end;
procedure TForm1.SpeedButton30Click(Sender: TObject);
begin
g := 1 + AA[29];
rr:=IntToStr(g);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Hide;
Form2.Show;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin // конец
Close;
end;
end. |
|
#4
|
||||
|
||||
|
Сократите код немного, уберите лишние обработчики кнопок со 2й по 30ю, оставив один
Код:
procedure TForm1.SpeedButton2Click(Sender: TObject); begin g :=1 + AA[(Sender as TSpeedButton).Tag]; Form3.rr:= IntToStr(g); end; З.Ы. Кстати, и в обработчике Button3Click можно подсократить слегка, если цикл задействовать Код:
for i := 1 to 30 do
(FindComponent('Image' + IntToStr(i)) as TImage).Picture:= nil;Последний раз редактировалось Alegun, 25.02.2015 в 00:18. |
|
#5
|
||||
|
||||
|
Цитата:
вставил со второго по 30 ваш код: Цитата:
выдало три ошибки: Expected ] but received ) at line 370 Expected . but received ; at line 372 Expected the end of file but received an identifier 'Button2Click' at line 377 Последний раз редактировалось roland196, 25.02.2015 в 00:26. |
|
#6
|
||||
|
||||
|
Скобка ) лишняя, после Tag.
|
|
#7
|
||||
|
||||
|
<<DELETED>>
Последний раз редактировалось Alegun, 25.02.2015 в 01:45. |
|
#8
|
||||
|
||||
|
Цитата:
да, за Цитата:
спасибо, но с первым: Цитата:
выдало уже только одну ошибку: 'TForm3' does not contain a member 'rr' at line 343 |
|
#9
|
||||
|
||||
|
А вы переменную rr в public формы3 видимо пока не объявили, хотя там ей самое место
|
|
#10
|
||||
|
||||
|
И правильно выдало ошибку. Такой переменной (rr) в форме 3 нет. И как сказали выше, заведи её в секции public.
|
|
#11
|
||||
|
||||
|
вот, пример маленький - если не трудно - посмотрите.
|
|
#12
|
||||
|
||||
|
Подправил.
|