AGB  ·  Datenschutz  ·  Impressum  







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

effizienter?

Ein Thema von Trotzdem · begonnen am 21. Jan 2007 · letzter Beitrag vom 22. Jan 2007
Antwort Antwort
Trotzdem

Registriert seit: 21. Jan 2007
2 Beiträge
 
#1

effizienter?

  Alt 21. Jan 2007, 14:04
Hallo!

ich hab nur eine ganz kurze frage, und zwar haben wir in der schule kurz angeschnitten, dass man mit

Variablendeklaration: var Bezeichner: array[indexbereich] of datentyp
Typdeklarartion: type TBezeichner=array[indexbereich] of datentyp
var Bezeichner: TBezeichner

viel effizienter z.b. 100 zufallszahlen ziehen kann, nämlich durch

for i:=1 to 100 do
z[i]:=random(6)+1;

meine frage:
lässt sich dies auch auf image-felder anwenden? also wenn ich für 100 images dasselbe tun will (beispielsweise ein rechteck zeichnen) müsste ich doch 100 mal folgende zeile schreiben:

image1.canvas.rectangle(0,0,width,height);
image2.canvas.rectangle(0,0,width,height);
.
.
.
image100.canvas.rectangle(0,0,width,height);

kann man das nicht effizienter machen, also auch irgendwie in dieser form:
for i:=1 to 100 do
image[i].canvas.rectangle(0,0,width,height);

??? es sollte aber nicht allzu kompliziert sein, da ich erst seit 1,5 jahren mit delphi arbeite und nur grundkenntnisse habe!
schon mal vielen dank für eure hilfe im voraus!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: effizienter?

  Alt 21. Jan 2007, 14:10
1,5 Jahre? Das ist doch eh schon etwas länger. Mit FindComponent geht das, allerdings ist das sehr schlechter Stil. Du könntest einfach alle Images in ein Array packen.

Dazu sei gesagt, dass das Zeichnen von 100 Rechtecken ziemlich unperformant ist.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#3

Re: effizienter?

  Alt 21. Jan 2007, 14:10
entweder du legst alle Images in einem Array ab und gleifst dann so zu,

oder du suchst diese Komponenten:
TImage(FindComponent('image' + IntToStr(i))).canvas.rectangle(0,0,width,height);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Trotzdem

Registriert seit: 21. Jan 2007
2 Beiträge
 
#4

Re: effizienter?

  Alt 22. Jan 2007, 15:44
Zitat von 3_of_8:
1,5 Jahre? Das ist doch eh schon etwas länger. Mit FindComponent geht das, allerdings ist das sehr schlechter Stil. Du könntest einfach alle Images in ein Array packen.

Dazu sei gesagt, dass das Zeichnen von 100 Rechtecken ziemlich unperformant ist.
1. wie packe ich denn die images in ein array? also wie sieht das quelltextmäßig aus?
2. was heißt unperformant???
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: effizienter?

  Alt 22. Jan 2007, 15:51
Zitat:
1. wie packe ich denn die images in ein array?
Wenn man sie manuell im Code erzeugt, kann man die Referenzen in einem array ablegen, oder wenn man sie öfters braucht, die Instanzen aber in der IDE erzeugt hat kann man die Referenzen in einer Schleife einmalige per .FindComponent() ermitteln und so im Array ablegen.
Zitat:
also wie sieht das quelltextmäßig aus?
Bilder[i] := Timage.create( self); bzw.
Bilder[i] := (Form.FindComponent('Bild'+IntToStr(i)) as TImage);
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz