Jedna procedura pro 49 Buttonů – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jedna procedura pro 49 Buttonů – Delphi – Fórum – Programujte.comJedna procedura pro 49 Buttonů – Delphi – Fórum – Programujte.com

 

Filip
~ Anonymní uživatel
121 příspěvků
21. 12. 2011   #1
-
0
-

Ahoj chtěl sem se zeptat, mám za úkol vytvořit program: 

1. Vytvořte aplikaci, která za běhu vytvoří pole 7x7 komponent typu TButton jako tiket sportky. Popiska každého tlačítka jsou postupně čísla 1..49
2. Po aktivaci volby „zadej sportku“, uživatel klikem na zvolené tlačítko s číslem, volí postupně 7 čísel a volené čísla zvýrazní vhodným způsobem. Vytvoří tak svoji „sázenku“

Když sem si vytvořil toto pole 7x7, je nějaká možnost, jak si ulehčit práci a naprogramovat proceduru, která při OnClick na jakékoliv tlačítko by zapsala jeho caption do pole, nebo musím dělat 49x OnClick zvlášť ? Děkuji :)

Nahlásit jako SPAM
IP: 85.132.166.–
liborb
~ Redaktor
+18
Guru
21. 12. 2011   #2
-
0
-

Parametr funkce OnClick je objekt (Sender), který událost vyvolat. Přetypováním na TButton se dostaneš i na jeho Caption.

Nahlásit jako SPAM
IP: 78.80.52.–
Filip
~ Anonymní uživatel
121 příspěvků
22. 12. 2011   #3
-
0
-

 takhle to mam rozpracovaný a potřeboval bych vědět spíš syntaxi, pro to jak každýmu byttonu přiřadit na click nějaký pole[i]:=button(i).caption :)// nebo nevim jak zadat ítej button 

procedure TForm1.FormCreate(Sender: TObject);
var //cisla:Tbutton;
    i,j:integer;
    point:integer;

begin
    point:=1;
    for i:=1 to 7 do
      begin
          for j:=1 to 7 do
           begin
              Buttony[i,j]:=TButton.Create(self);
              with Buttony[i,j] do
                begin
                Parent := Self;
                Left := 20 + j * 50;
                Top := 20 + i * 50;
                Width := 50;
                Height := 50;
                Caption := IntToStr(point);




                end;
                inc(point);
           end;
      end;
end;
Nahlásit jako SPAM
IP: 85.132.166.–
Sniper
~ Anonymní uživatel
215 příspěvků
22. 12. 2011   #4
-
0
-

   

unit MainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TfMainForm = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure ButtonsClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fMainForm: TfMainForm;

implementation

{$R *.dfm}

const
  buttons_hor = 7;
  buttons_ver = 7;

var
  Buttony: Array[1..buttons_hor,1..buttons_ver] of TButton;
  Pole: Array[1..buttons_hor * buttons_ver] of String;

procedure TfMainForm.ButtonsClick(Sender: TObject);
begin
Pole[(Sender as TButton).Tag] := (Sender as TButton).Caption;
end;

procedure TfMainForm.FormCreate(Sender: TObject);
var
  i,j:    Integer;
begin
For i := 1 to buttons_ver do
  For j := 1 to buttons_hor do
    begin
      Buttony[i,j] := TButton.Create(Self);
      With Buttony[i,j] do
        begin
          Parent := Self;
          Left := 20 + (j - 1)  * 50;
          Top := 20 + (i - 1) * 50;
          Width := 50;
          Height := 50;
          Tag := ((i - 1) * buttons_ver) + (j - 1) + 1;
          Caption := IntToStr(Tag);
          OnClick := ButtonsClick
        end;
    end;
end;

end.

Ze zadání mi není úplně jasné, co se má po stisku tlačítka stát. Ale to, na co se ptáš, tam je, tak zbytek si předpokládám upravíš.

Nahlásit jako SPAM
IP: 90.179.201.–
Filip
~ Anonymní uživatel
121 příspěvků
22. 12. 2011   #5
-
0
-

#4 Sniper
Díky :)

Nahlásit jako SPAM
IP: 85.132.166.–
Filip
~ Anonymní uživatel
121 příspěvků
22. 12. 2011   #6
-
0
-

#4 Sniper
1. Vytvořte aplikaci, která za běhu vytvoří pole 7x7 komponent typu TBitButton jako tiket sportky. Popiska každého tlačítka jsou postupně čísla 1..49
2. Po aktivaci volby „zadej sportku“, uživatel klikem na zvolené tlačítko s číslem, volí postupně 7 čísel a volené čísla zvýrazní vhodným způsobem. Vytvoří tak svoji „sázenku“
3. Volba jednotlivých čísel ať se dá opakovaným klikem zrušit a počet navolených čísel nepřekročí 7.
4. Potvrzení sázenky ať se zadá klikem na vhodně umístěné tlačítko a sázenku ať si program pamatuje. Počet registrovaných sázenek je max. 50.
5. Tlačítko „TAH SPORTKY“ vygeneruje 7 navzájem různých čísel a zobrazí je výrazně v listboxu vedle sportky
6. Po vygenerování TAHu ať je vhodným způsobem oznámeno jestli nějaká sázenka vyhrává 1. cenu a kolik sázenek celkem bylo podáno
7. Volba NOVÁ HRA ať zahajuje „sazkový týden“

Nahlásit jako SPAM
IP: 85.132.166.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý