Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FindComponent =>Für Variablen? (https://www.delphipraxis.net/67011-findcomponent-%3D-fuer-variablen.html)

Hallo_Thomas 7. Apr 2006 21:53


FindComponent =>Für Variablen?
 
Irgendwie hab ich mah wieder keinen plan, wie ich sowas anstelle:

Das ist der Ausgangscode, der funktioniert
Delphi-Quellcode:
Form1.Name[x]:= Round(100*(Form2.FindComponent('Name'+IntToStr(x)) as TJvSpinEdit).Value);//Form1.Name:Array[1..12] of Integer
Und so gehts nicht:('Felder[y][x]'Hier liegt wohl eindeutig das Problem)

Delphi-Quellcode:
  Felder[1]:='Name';////Array [1..12]of WideString
  for y:= 1 to 1 do
    for x := 1 to 12 do
      Form1.Felder[y][x]:= Round(100*(Form2.FindComponent(Felder[y]+IntToStr(x)) as TJvSpinEdit).Value);
Irgendwie ist mir im Moment nicht so richtig klar, wie ich hier die Variable(Form1.Felder[y][x) eigenlich Form1.Name[x]) ansteuere, wenn diese den gleichen namen hat, wie die Komponente? :drunken:


Unter was muss ich da suchen???Wie geht datt??

alzaimar 7. Apr 2006 22:03

Re: FindComponent mit Variablen kombinieren ?
 
Gewöhn Dir einfach ab, dieses bescheuerte 'FindComponent' zu verwenden. Pack die Controls, über die Du iterieren willst, in ein Array und gut ist. Dann kannst Du den Komponenten endlich ordendliche Namen verpassen, z.B. 'edTolerance', oder 'sedToleranz' (sed=Spin edit)...

Hallo_Thomas 7. Apr 2006 22:10

Re: FindComponent mit Variablen kombinieren ?
 
@alzaimar
Genau das will ich ja für die Programmberechnung tun, doch dafür muss den Variablen erst mal datt Value aus dem JVSpinedit zuweisen oder???

Zitat:

Pack die Controls ,in ein Array
Wie geht das???(Zur Laufzeit erstellte ,das ist klar.)

alzaimar 8. Apr 2006 08:55

Re: FindComponent =>Für Variablen?
 
Ha, ha. Immer wenn ich 'FindComponent' sehe, reagiere ich so. Pavlov eben.

Wie ist 'Form1.Felder' denn definert? Egal wie, Du schreibst einerseits
Delphi-Quellcode:
Felder[1]:='Name'; // Felder ist also ein Array of String
und danach
Delphi-Quellcode:
Felder[y]{[x] := Round (irgendwas); // Felder ist also ein Array of Array of Integer
Und Komponenten in Arrays packen geht ganz einfach:
Delphi-Quellcode:
Type
  TMyForm = Class (TForm)
  ...
  Private
     fMySpinEdits : Array of TJvSpinEdit;
  ...
End;

Procedure TMyForm.FormCreate (Sender : TObject);
Begin
  SetLength (fMySpinEdits,10); // Wenn Du 10 Spin Edits hast
  fMySpinEdits[0] := SomeSpinEdit;
  fMySpinEdits[1] := sedTolerance;
  ...
End;
Dein Problem ist aber die Deklaration von Form1.Felder


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 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