Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Edit Felder in einem array zusammenfassen? (https://www.delphipraxis.net/4053-edit-felder-einem-array-zusammenfassen.html)

Lati 13. Apr 2003 09:52


Edit Felder in einem array zusammenfassen?
 
Hi
Bin neu in diesem Forum und habe von Delphi momentan nicht sehr viel Ahnung. :(
Da ich schon ziemlich lange auf der Suche war aber nichts gefunden habe hoffe ich einer von euch kann mir diese Frage beantworten (oder einen link geben wo es erklärt ist) :) .

"Problem"

angenommen man hat ein array of string und will diesem editfelder zuweisen

array[1]:=edit1.text;
array[2]:=edit2.text;
.
.
.
usw.

wäre es sehr hilfreich wenn man das in einer schleife machen könnte

for i:=1 to 10 do
array[i]:=edit[i].text;

(so funktioniert das natürlich nicht.)
Kann mir einer von euch sagen wie man das hinbekommen könnte?

vielleicht könnte es ja so gehen

for..
array[i]:=TTExt(i)

wobei TText zeiger auf die einzelnen Edit felder hat nur bekomme ich es nicht hin =(

Speedy1505 13. Apr 2003 10:07

:roll:
vielleicht hilft das weiter ....

Code:
var: FEdit : array[0..35]of TEdit;
     I    : Byte;
begin
 for I := 0 to 35 do
  begin
   FEdit := TEdit.Create(Self);
   FEdit[I].Name := 'Edit' + IntToStr(I);
   FEdit[I].Left := .....;
   ....
   FEdit[I].Text := FEdit[I].Name;
  end;
end;
das sollte dein problem lösen
:bounce1: :witch:

Lati 13. Apr 2003 10:47

Diesen Ansatz hatte ich auch nur steigt der Compiler mit der Fehlermeldung array und tedit sind incompatible typen aus :(
Funktioniert es denn bei dir?
Wenn ja könntest du mir dann nen bsp. quelltext schicken (mit compiler einstellungen [ strg + O, O im quelltext]).
garmoschka@hotmail.com =)

Speedy1505 13. Apr 2003 11:24

das ist aus meinem CqellCode:

Global:
Code:
 const Anzahl = 57;
 var
  SpinEdit         : array[1..Anzahl] of TSpinEdit;
  CheckBox         : array[1..Anzahl] of TCheckBox;
  LabelFeld        : array[1..Anzahl] of TLabel;
Procedure im Programm:
Code:
  procedure Komponenten_erstellen;
   var I : Byte;
    begin
     for I := 1 to Anzahl do
      begin
       SpinEdit[I] := TSpinEdit.Create(Application);
       with SpinEdit[I] do
        begin
         Parent := TabControl1;
         case I of
          1 ..19 : begin
                    Left := 7;
                    Top := 45 + ((I - 1) * 25);
                   end;
          20..38 : begin
                    Left := 270;
                    Top := 45 + ((I - 20) * 25);
                   end;
          39..57 : begin
                    Left := 533;
                    Top := 45 + ((I - 39) * 25);
                   end;
         end;
         Width := 36;
         AutoSize := False;
         MaxValue := 99;
         MaxLength := 2;
         Name := 'SpinEdit' + IntToStr(I);
         OnChange := SpinChange;
         Tag := I;
        end;    // Ende von SpinEdit
       CheckBox[I] := TCheckBox.Create(Application);
       with CheckBox[I] do
        begin
         Parent := TabControl1;
         case I of
          1 ..19 : begin
                    Left := 48;
                    Top := 47 + ((I - 1) * 25);
                   end;
          20..38 : begin
                    Left := 311;
                    Top := 47 + ((I - 20) * 25);
                   end;
          39..57 : begin
                    Left := 574;
                    Top := 47 + ((I - 39) * 25);
                   end;
         end;
         Width := 165;
         AutoSize := False;
         Name := 'CheckBox' + IntToStr(I);
         Caption := '';
         ShowHint := True;
         PopupMenu := PopupMenu1;
         OnClick := CheckBoxClick;
         OnContextPopup := CheckBox_Kontext;
         Tag := I;
        end;    // Ende von CheckBox
       LabelFeld[I] := TLabel.Create(Application);
       with LabelFeld[I] do
        begin
         Parent := TabControl1;
         case I of
          1 ..19 : begin
                    Left := 216;
                    Top := 50 + ((I - 1) * 25);
                   end;
          20..38 : begin
                    Left := 479;
                    Top := 50 + ((I - 20) * 25);
                   end;
          39..57 : begin
                    Left := 742;
                    Top := 50 + ((I - 39) * 25);
                   end;
         end;
         Width := 42;
         AutoSize := False;
         Name := 'Label' + IntToStr(I);
         Caption := '';
         Alignment := taRightJustify;
        end;    // Ende von Label
      end;
    end;    // Komponenten erstellen
den Quellcode hab ich aus meiner Einkaufsliste kopiert - was ich hier mit SpinEdit und CO mache, geht Problemlos auch mit TEdit .....

hoffe, es geht - bei mir geht es doch auch .... :roll:

Lati 13. Apr 2003 12:25

Hmpf.... also mit TEdit funzt es einfach net... owbwohl die Fehlermeldung vonwegen incompatible doch garnicht kommen dürfte denn das array ist ja vom typ tedit......... :roll:
Naja dennoch danke für die Hilfe hab was dazu gelernt :coder:

Speedy1505 13. Apr 2003 12:40

Schau nächste Freitag noch mal rein -- bis dahin hab ich dein Problem gelöst -- mit Quelltext :coder:

Wundere mich nur, das es nicht geht -- .....
:freak:

Lati 13. Apr 2003 13:36

:lol: Hat sich erledigt nach etwas dummen drüber lesen.... naja hab ich gesehen das am anfang ein [i] fehlte sprich er dem ganzen array das tedit zugewisesen hat ... also danke es geht wunderbar :)

( FEdit := TEdit.Create(Self); <---- FEdit[i] := TEdit.Create(Self); )


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