AGB  ·  Datenschutz  ·  Impressum  







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

Mehrdimensionale TLabel-Arrays

Ein Thema von Chris WF · begonnen am 11. Mär 2006 · letzter Beitrag vom 11. Mär 2006
 
Benutzerbild von Chris WF
Chris WF

Registriert seit: 15. Nov 2004
27 Beiträge
 
Delphi 5 Standard
 
#1

Mehrdimensionale TLabel-Arrays

  Alt 11. Mär 2006, 10:23
Hallo Leute,

ich hab ein Problem mit mehrdimensionalen TLabel-Arrays...
Ich will ein kleines Funprogramm schreiben, dass einen Matrixbildschirm kreiert.
Dazu erstelle ich im OnCreate die nötigen Arrayfelder in einer for-Schleife.
Mit einem Timer sollen dann die nullen/Einsen geändert werden, aber irgendwas klappt da nich so ganz

Hier einfach mal der Code:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var x,y: integer;
begin
     randomize;
     form1.Left := 0;
     form1.Top := 0;
     form1.Width := screen.Width;
     form1.Height := screen.Height;

     for x := 0 to ((form1.Width-15) div 11) do
         for y := 0 to ((form1.height-30) div 26) do
         begin
              setlength(Labels,x+1,y+1);
              Labels[x,y] := TLabel.Create(self);
              with Labels[x,y] do
              begin
                   parent := self;
                   width := 10;
                   height := 24;
                   left := (11*(x)) + 2;
                   top := (26*(y)) + 2;
                   font.Color := clGreen;
                   font.height := -18;
                   caption := inttostr(round(random(2)));
                   OnClick := LabelsClick;

              end;
         end;
     timer1.Enabled := true;
end
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var x,y,r,c: integer;
begin
     randomize;
     for x := 0 to ((form1.Width-15) div 11) do
         for y := 0 to ((form1.height-30) div 26) do
         begin
              r := round(random(2));
              if (Labels[x,y].Caption = '0') OR (Labels[x,y].Caption = '1') then
                 c := strtoint(Labels[x,y].Caption)
              else
                  c := round(random(2));
              if (r = c) then
                 Labels[x,y].Caption := '0'
              else
                 Labels[x,y].Caption := '1';
         // labels[x,y].repaint;
         end;
end;
Ohne das auskommentierte Repaint wird nur die "Zeile" oben und die "Spalte" rechts aktualisiert
Mit Repaint kommt ein Zugriffsfehler...
  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 04:31 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