Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2009, 01:10   #1
oblachko
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 55
По умолчанию Помогите измененить размер картинки с помощью TrackBar

Как ,в игре "Меморина"(Парные картинки), изменить размер картинки, с помощью TrackBar?!?!К примеру, нажал на закрытую кнопку игрового поля, открывается картинка, после с помощью TrackBar, изменяешь её размер(((Размеры должны быть:1)Самый маленький 10% 2)Средний 50 % 3)И реальный размер 100%

Как это сделать(((((((
Помогите((
oblachko вне форума Ответить с цитированием
Старый 30.06.2009, 01:12   #2
oblachko
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 55
По умолчанию

Вот сам код игры:

Код:
var
  Form1: TForm1;
  but: TBitBtn;
  time: TTimer;
  i,j,x,y,k,n,tag1,tag2,tag3,kn,t,sec,s,kol,min,sh: integer;
  z: array[1..10,1..10] of integer;

implementation

{$R *.dfm}

procedure TForm1.massrandom;
begin
randomize;
for i :=1 to t do       //çàïîëíåíèå ìàññèâà îò i äî êîë-âà "òðîåê" êàðòèíîê
  begin
  j:=0;
    repeat
    begin
      x:=random(k)+1;   //k è n - âûñîòà è øèðèíà ìàòðèöû
      y:=random(n)+1;
      if z[x,y]=0 then
      begin
        j:=j+1;
        z[x,y]:=i;
      end;
    end;
    until (z[x,y]<>0) and (j=3);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
t:=8;
k:=5;
n:=5;
sh:=t*3+1;
massrandom(t,k,n);
for i :=1 to 5 do
  for j:=1 to 5 do
   begin
    But:=TBitBtn.Create(Form1);
    But.Parent:=form1;
    but.Width:=50;
    but.Height:=50;
    but.Left:=j*50+160;
    but.Top:=i*50+20;
    but.OnClick:=form1.ButOnClick;
    but.Tag:=z[i,j];
   end;

time:=Ttimer.Create(Form1);
time.OnTimer:=form1.Timerstart;
time.Interval:=1000;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
t:=9;
k:=4;
n:=7;
sh:=t*3+1;
massrandom(t,k,n);
for i :=1 to 4 do
  for j:=1 to 7 do
   begin
    But:=TBitBtn.Create(Form1);
    But.Parent:=form1;
    but.Width:=50;
    but.Height:=50;
    but.Left:=j*50+100;
    but.Top:=i*50+20;
    but.OnClick:=form1.ButOnClick;
    but.Tag:=z[i,j];
   end;

time:=Ttimer.Create(Form1);
time.OnTimer:=form1.Timerstart;
time.Interval:=1000;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
t:=13;
k:=5;
n:=8;
sh:=t*3+1;
massrandom(t,k,n);
for i :=1 to 5 do
  for j:=1 to 8 do
   begin
    But:=TBitBtn.Create(Form1);
    But.Parent:=form1;
    but.Width:=50;
    but.Height:=50;
    but.Left:=j*50+100;
    but.Top:=i*50+20;
    but.OnClick:=form1.ButOnClick;
    but.Tag:=z[i,j];
   end;

time:=Ttimer.Create(Form1);
time.OnTimer:=form1.Timerstart;
time.Interval:=1000;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
t:=16;
k:=7;
n:=7;
sh:=t*3+1;
massrandom(t,k,n);
for i :=1 to k do
  for j:=1 to n do
   begin
    But:=TBitBtn.Create(Form1);
    But.Parent:=form1;
    but.Width:=50;
    but.Height:=50;
    but.Left:=j*50+100;
    but.Top:=i*50+20;
    but.OnClick:=form1.ButOnClick;

    but.Tag:=z[i,j];
   end;

time:=Ttimer.Create(Form1);
time.OnTimer:=form1.Timerstart;
time.Interval:=1000;
end;

procedure TForm1.ButOnClick(Sender: TObject);
begin
(sender as tbitbtn).Glyph.LoadFromFile(inttostr((sender as tbitbtn).tag)+'.bmp');
kn:=kn+1;
if kn=1 then
  tag1:=(sender as tbitbtn).Tag;
if kn=2 then
  tag2:=(sender as tbitbtn).Tag;
if kn=3 then
  begin
  tag3:=(sender as tbitbtn).Tag;
  for k:=0 to form1.ControlCount+1 do
      if (form1.Components[k] is tbitbtn) and ((form1.Components[k] as tbitbtn).Glyph.Empty=true) then
      (form1.Components[k] as tbitbtn).Enabled:=false;
  end;
if kn=3 then
  if (tag1=tag2) and (tag1=tag3) then
  form1.Timer2.Enabled:=true
  else
   form1.timer1.Enabled:=true;

end;

procedure Tform1.Timerstart(Sender: TObject);   //òàéìåð èãðîâîãî âðåìåíè
begin
sec:=sec+1;
if sec=60 then
  begin
  sec:=0;
  min:=min+1;
  end;
form1.Panel1.Caption:=Format('%.2d', [min])+format(':%.2d', [sec]); 
kol:=kol-1;
if kol <0 then
      begin
      kol:=0;
      form1.Panel2.Caption:=inttostr(kol);
      end
      else
      form1.Panel2.Caption:=inttostr(kol);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
s:=s+1;
if s=1 then
  begin
    for k:=0 to form1.ComponentCount-1 do
      if form1.Components[k] is tbitbtn then
        (form1.Components[k] as tbitbtn).Glyph:=nil;
    s:=0;
    tag:=0;
    kol:=kol-30;                                          //êîëè÷åñòâî î÷êîâ
    if kol <0 then
      begin
      kol:=0;
      form1.Panel2.Caption:=inttostr(kol);
      end
      else
      form1.Panel2.Caption:=inttostr(kol);
    timer1.Enabled:=false;
    kn:=0;
    for k:=0 to form1.ControlCount+1 do
      if (form1.Components[k] is tbitbtn) then
      (form1.Components[k] as tbitbtn).Enabled:=true;
  end;
end;
oblachko вне форума Ответить с цитированием
Старый 30.06.2009, 01:13   #3
oblachko
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 55
По умолчанию

Код:
procedure TForm1.Timer2Timer(Sender: TObject);            //òàéìåð äëÿ 3õ îäèíàêîâûõ êíîïîê
begin
s:=s+1;
if s=1 then
  begin
    for k:=0 to form1.ComponentCount-1 do
      if (form1.Components[k] is tbitbtn) and ((form1.Components[k] as tbitbtn).Glyph.Empty=false) then
        (form1.Components[k] as tbitbtn).Visible:=false;  //åñëè êíîïêè íåïóñòûå, óáèðàåì èõ
    s:=0;
    kol:=kol+100;                                         //êîëè÷åñòâî î÷êîâ
    form1.Panel2.Caption:=inttostr(kol);
    tag:=0;
    timer2.Enabled:=false;
    kn:=0;
    sh:=sh-3;
    for k:=0 to form1.ControlCount+1 do                   //àêòèâèðóåì âûêëþ÷åííûå êíîïêè
      if (form1.Components[k] is tbitbtn) then
      (form1.Components[k] as tbitbtn).Enabled:=true;
    if sh=1 then
    for k:=0 to form1.ControlCount+1 do
      if (form1.Components[k] is tbitbtn) then
       begin
       (form1.Components[k] as tbitbtn).Glyph.LoadFromFile('0.bmp');
       (form1.Components[k] as tbitbtn).OnDragDrop:=form1.DragDr;
       (form1.Components[k] as tbitbtn).DragMode:=dmAutomatic;
       end;
  end;
end;

procedure Tform1.DragDr(Sender, Source: TObject; X, Y: Integer);
begin
(Sender as Tbitbtn).DragCursor:=crDrag;
end;

procedure TForm1.Panel3DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
Accept:=true;
form1.Panel3.Caption:='!!!ÏÎÁÅÄÀ!!!';
for k:=0 to form1.ControlCount+1 do
      if (form1.Components[k] is tbitbtn) then
      (form1.Components[k] as tbitbtn).Visible:=false;
time.Enabled:=false;
end;

procedure TForm1.N5x51Click(Sender: TObject);
begin
t:=8;
k:=5;
n:=5;
sh:=t*3+1;
massrandom(t,k,n);
for i :=1 to 5 do
  for j:=1 to 5 do
   begin
    But:=TBitBtn.Create(Form1);
    But.Parent:=form1;
    but.Width:=50;
    but.Height:=50;
    but.Left:=j*50+160;
    but.Top:=i*50+20;
    but.OnClick:=form1.ButOnClick;
    but.Tag:=z[i,j];
   end;
   time:=Ttimer.Create(Form1);
time.OnTimer:=form1.Timerstart;
time.Interval:=1000;
end;

procedure TForm1.N4x71Click(Sender: TObject);
begin
t:=9;
k:=4;
n:=7;
sh:=t*3+1;
massrandom(t,k,n);
for i :=1 to 4 do
  for j:=1 to 7 do
   begin
    But:=TBitBtn.Create(Form1);
    But.Parent:=form1;
    but.Width:=50;
    but.Height:=50;
    but.Left:=j*50+100;
    but.Top:=i*50+20;
    but.OnClick:=form1.ButOnClick;
    but.Tag:=z[i,j];
   end;

time:=Ttimer.Create(Form1);
time.OnTimer:=form1.Timerstart;
time.Interval:=1000;
end;
   procedure TForm1.N5x81Click(Sender: TObject);
begin
t:=13;
k:=5;
n:=8;
sh:=t*3+1;
massrandom(t,k,n);
for i :=1 to 5 do
  for j:=1 to 8 do
   begin
    But:=TBitBtn.Create(Form1);
    But.Parent:=form1;
    but.Width:=50;
    but.Height:=50;
    but.Left:=j*50+100;
    but.Top:=i*50+20;
    but.OnClick:=form1.ButOnClick;
    but.Tag:=z[i,j];
   end;

time:=Ttimer.Create(Form1);
time.OnTimer:=form1.Timerstart;
time.Interval:=1000;
end;


procedure TForm1.N7s71Click(Sender: TObject);
begin
begin
t:=16;
k:=7;
n:=7;
sh:=t*3+1;
massrandom(t,k,n);
for i :=1 to k do
  for j:=1 to n do
   begin
    But:=TBitBtn.Create(Form1);
    But.Parent:=form1;
    but.Width:=50;
    but.Height:=50;
    but.Left:=j*50+100;
    but.Top:=i*50+20;
    but.OnClick:=form1.ButOnClick;

    but.Tag:=z[i,j];
   end;

time:=Ttimer.Create(Form1);
time.OnTimer:=form1.Timerstart;
time.Interval:=1000;
end;
end;

end.
oblachko вне форума Ответить с цитированием
Старый 30.06.2009, 01:15   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Ну "реальный размер 100%" допустим
Код:
Image1.AutoSize:=True;
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 30.06.2009, 01:59   #5
oblachko
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 55
По умолчанию

Это всё прописываем в процедуре TrackBar?!?!

А как остальные размеры?!?!
oblachko вне форума Ответить с цитированием
Старый 30.06.2009, 02:07   #6
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

НУ сначала поставим при загрузке картинки такой код:

Код:
begin
 Image1.Stretch:= true;
 with TrackBar1 do
begin
 Max:= Image1.Height;
 Position:= Max;
end;
 DoubleBuffered:= true;
end;
Потом сам код использования:
Код:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 with Image1 do
begin
 Width:= TrackBar1.Position;
 Height:= TrackBar1.Position;
end;
uberchel вне форума Ответить с цитированием
Старый 30.06.2009, 02:25   #7
oblachko
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 55
По умолчанию

А как это код подогнать под мою прогу?!?Просто все картинки уже загружены, и непосредственно находятся в самой игре?!?!
P.S: Я наверное чего-то не догоняю.Лучше объясните пожалуйста как код в прогу вбить((А то только так до меня дойдет(

begin
Image1.Stretch:= true;
with TrackBar1 do
begin
Max:= Image1.Height;
Position:= Max;
end;
DoubleBuffered:= true;
end;

Да и потом выскакивает ошибка, о том, что image1 не распознается(

Последний раз редактировалось oblachko; 30.06.2009 в 02:27.
oblachko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как прокрутить ListBox с помощью TrackBar Dr.Badnezz Общие вопросы Delphi 4 06.01.2009 14:54
TrackBar loozer Компоненты Delphi 2 20.12.2008 22:50
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54
TrackBar Михаил Юрьевич Общие вопросы Delphi 2 29.01.2008 00:43
как управлять звуком правой и левой колонок с помощью TrackBar? ZhekON Win Api 8 12.04.2007 14:50