Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - (x as TEdit).text;


AlMacMoe - Fr 05.12.03 12:43
Titel: (x as TEdit).text;
Tag auch Leute,

ich habe da ein Problem, ich möchte den Namen eines Editfeldes generieren um seinen Inhalt abfragen zu können und zwar wie folgend:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
    for i := 0 to RowCount do begin

        Namu := 'Ed' +IntToStr(i);
        Cells[i,zaehler] :=(namu as TEdit).text;

    end;

ich bekomme aber immer folgenden Fehler:
Zitat:
[Fehler] Unit1.pas(266): Operator ist auf diesen Operandentyp nicht anwendbar

PS: namu is nen Sting

Wäre nett wenn mir einer helfen könnte ....

Danke schon mal im voraus.
Greating MOE

Moderiert von user profile iconTino: Delphi- & Quote-Tags hinzugefügt.


Keldorn - Fr 05.12.03 12:49

Hallo

benutz bitte delphi-Tags für den Code, das ist lesbarer.

so wie du das machst gehts das nicht, gugg dir Suche in: Delphi-Forum, Delphi-Library FINDCOMPONENT hier im Forum und in der Onlinehilfe an, solltest einiges dazu finden

Zitat:

for i := 0 to RowCount do begin

hmm, buist du dir hier sicher? du beginnst von 0 zu zählen, und die letzte Zeile wäre rowcount-1.

Mfg Frank


AlMacMoe - Fr 05.12.03 14:23

Die for schleife ist schon richtig .......
aber viel weiter bin ich leider immer noch nicht....

Trozdem danke habe heute das erste mal hier gepostet.

Greatings MOE


Keldorn - Fr 05.12.03 14:37

AlMacMoe hat folgendes geschrieben:
Die for schleife ist schon richtig .......

ich sehe deinen restlichen code nicht, du greifst aber auf ein stringgrid zu und dann ist es falsch. wenn rowcount z.B. 5 ist, hast du 5 Zeilen [0,1,2,3,4]. da du von 0 anfängst zu zählen ist wärst du in deiner schleife bei i=rowcount=5 beim Arrayindex [5] und damit außerhalb des Arraybereiches. Eine Listbox würde dir hier eine Exception liefern, ein Stringgrid da humaner, aber deine Ergebnisse sind evtl falsch.

mit Findcomponent ist nu wirklich nicht schwer und in der Hilfe ist auch ein Beispiel, sogar mit einem Edit :roll:

Delphi-Quelltext
1:
Cells[i,zaehler] := TEdit(FindComponent('Ed' + IntToStr(i)))                    


Die edits müssen aber existieren, sonst gibt hier auch ne exception. ggf. hier noch ne überprüfung einbauen

Delphi-Quelltext
1:
2:
3:
4:
5:
Var comp:Tcomponent
begin
   comp:=FindComponent('Ed' + IntToStr(i));
   if comp is TEdit then Cells[i,zaehler] := Tedit(comp).text;
end;


Mfg Frank