![]() |
|
|
|
|
#1
|
|||
|
|||
|
Вот состряпал такой тестик http://depositfiles.com/files/61uc3ah6u, спасибо dr. F.I.N. и AleD.
Но вот есть 2 загвоздки: -в форме тестирования(Unit3) не знаю как сделать так, чтобы кнопки (т.е. соответствия) менялись местами(желательно рандомно)? -как сделать так чтобы при выходе все параметры сохранялись(т.е, например, изменил я через форму вопросы и ответы, а после перезахода они снова становятся такими, как до изменения)? -соответствия(они же кнопки в Unit3) по двойному клику исчезают, т.к. их Теги равны самому себе и т.д., кае убрать это исчезновени по даблклику? Люди, помогите пожалуйста. Заранее спасибо! |
|
#2
|
||||
|
||||
|
Цитата:
Вот процедура: Подаешь ей координату Y, с которой начинают располагаться объекты (координата X не меняется), подаешь отступ (offset) - расстояние между координатами Y двух соседних объектов, и список (TList) наполненный объектами, которые необходимо рандомно раскидать по вертикали. Не забудь указать в файе .DPR RandomIze. Написано на коленке, но работь должно. Код:
procedure ShowRandom(StartTop, Offset: Integer; ObjList: TList);
var
x, i: Integer;
tempList: TList;
begin
if ObjList.Count = 0 then Exit;
tempList := TList.Create;
tempList.Assign(ObjList);
x := StartTop;
while tempList.Count > 0 do
begin
i := Random(tempList.Count);
TControl(tempList.Items[i]).Top := x;
Inc(x, Offset);
tempList.Delete(i);
end;
tempList.Free;
end; |
|
#3
|
||||
|
||||
|
Цитата:
Вариантов уйма: 1) БД 2) INI-файл 3) Текстовый файл 4) Свой формат файла 5) 2+3+4 + Шифрация |
|
#4
|
||||
|
||||
|
Цитата:
Код:
procedure TF_Test.Button1Click(Sender: TObject);
begin
if SecondClick then
begin
if (LastButton.Tag = TButton(Sender).Tag) and (LastButton <> TButton(Sender))
then
begin
LastButton.Hide;
TButton(Sender).Hide;
Inc(c);
Inc(r);
If r=1 then
BitBtn1.Visible:=true;
end
else
begin
Inc(e);
ShowMessage('Не верно');
str(e,et);
label1.caption:=et;
end;
SecondClick := false;
end
else
begin
LastButton := TButton(Sender);
SecondClick := true;
end;Кстати, я об этом предупреждал ![]() Цитата:
Последний раз редактировалось dr. F.I.N., 04.06.2010 в 08:18. |
|
#5
|
|||
|
|||
|
Большое спасибо!
Но вот в первом коде выдаёт ошибку "Undeclared identifier Assign" чем обозначить Assign? или я что-то не правильно делаю? |
|
#6
|
||||
|
||||
|
|
|
#7
|
|||
|
|||
|
Цитата:
переустановил Дельфи. Вот вроде теперь ошибку не выдаёт, но не работает. Либо я опять делаю что-то не верно... |
|
#8
|
||||
|
||||
|
Код:
object Form1: TForm1
Left = 192
Top = 107
Width = 360
Height = 191
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 80
Top = 24
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
end
object Button2: TButton
Left = 64
Top = 56
Width = 75
Height = 25
Caption = 'Button2'
TabOrder = 1
end
object Button3: TButton
Left = 48
Top = 88
Width = 75
Height = 25
Caption = 'Button3'
TabOrder = 2
end
object Button4: TButton
Left = 32
Top = 120
Width = 75
Height = 25
Caption = 'Button4'
TabOrder = 3
end
object Button5: TButton
Left = 208
Top = 120
Width = 123
Height = 25
Caption = 'Зарандомить :)'
TabOrder = 4
OnClick = Button5Click
end
endКод:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure ShowRandom(StartTop, Offset: Integer; ObjList: TList);
var
x, i: Integer;
tempList: TList;
begin
if ObjList.Count = 0 then Exit;
tempList := TList.Create;
tempList.Assign(ObjList);
x := StartTop;
while tempList.Count > 0 do
begin
i := Random(tempList.Count);
TControl(tempList.Items[i]).Top := x;
Inc(x, Offset);
tempList.Delete(i);
end;
tempList.Free;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
Lst: TList;
begin
Lst := TList.Create;
Lst.Add(Button1);
Lst.Add(Button2);
Lst.Add(Button3);
Lst.Add(Button4);
ShowRandom(24, 32, Lst);
Lst.Clear;
Lst.Free;
end;
end. |