AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bingo Karte

Ein Thema von jurkup · begonnen am 1. Jan 2017 · letzter Beitrag vom 1. Jan 2017
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: Bingo Karte

  Alt 1. Jan 2017, 13:05
Ich habe mal ein Beispiel geschrieben (da ich Deine Delphi-Version nicht kenne, vorsichtshalber in Delphi 7). Zunächst die Definition des Formulars:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    FPanels: array[1..5, 1..5] of TPanel; // 5 Reihen zu je 5 Panels
    procedure InitializePanels; // Initialisierungsroutine zum Befüllen des Arrays
    procedure DoOnPanelClick(Sender: TObject); // Ereignishandler für das OnClick jedes Panels
  public
    { Public-Deklarationen }
  end;
Jetzt die einzelnen Methoden: InitializePanels erzeugt die Panels zur Laufzeit, richtet sie aus und weist ihrer Tag-Eigenschaft eine zufällige Zahl zu. Diese wird auch gleich mit dargestellt.
Delphi-Quellcode:
procedure TForm1.InitializePanels;
const
  PANELWIDTH = 40; //Kantenlänge jedes Panels
var
  x, y: integer;
  ALeft, ATop: integer;
  Panel: TPanel;
begin
  ATop := 10;
  for y := Low(FPanels) to High(FPanels) do
    begin
      ALeft := 10;
      for x := Low(FPanels[y]) to High(FPanels[y]) do
        begin
          Panel := TPanel.Create(self);
          Panel.Parent := self;
          Panel.Left := ALeft;
          Panel.Top := ATop;
          Panel.Width := PANELWIDTH;
          Panel.Height := PANELWIDTH;
          Panel.Tag := Random(99) + 1;
          Panel.Caption := IntToStr(Panel.Tag);
          Panel.OnClick := DoOnPanelClick;
          FPanels[x, y] := Panel;
          inc(ALeft, PANELWIDTH);
        end;
      inc(ATop, PANELWIDTH);
    end;
end;
Jetzt der zugewiesene Handler für das OnClick (Methode DoOnPanelClick):
Delphi-Quellcode:
procedure TForm1.DoOnPanelClick(Sender: TObject);
begin
  if Sender is TPanel then
    ShowMessage(IntToStr(TPanel(Sender).Tag));
end;
Und im OnCreate-Ereignis des Formulars wird der Zufallsgenerator angeworfen und die InitializePanels-Methode aufgerufen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  InitializePanels;
end;
Hilft Dir das weiter?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz