Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Frage zu erstellen einer for-Schleife (https://www.delphipraxis.net/154091-frage-zu-erstellen-einer-schleife.html)

Jerry 27. Aug 2010 10:10

Delphi-Version: 2010

Frage zu erstellen einer for-Schleife
 
Hallo zusammen

Habe folgende Ausgangslage:
Variablen in aufzählender Form:
pp_KontoInhaberZ1
pp_KontoInhaberZ2
bis
pp_KontoInhaberZ7

Variable pp_KontoInhaber ist vom Typ TppField
Text wird so ausgelesen: pp_KontoInhaberZ1.AsString

Ich möchte nun alle Variablen von 1-7 in eine Memobox einlesen und mit #10 in eine neue Zeile legen.
Hier der ungefähre Code an dem ich jetzt bastle...

Delphi-Quellcode:
procedure Trpt_eVVPrint.MemoKunde3Print(Sender: TObject);
var
  i : integer;
begin
  MemoKunde3.Text := pp_KontoInhaberZ1.AsString + #10;
  for I := 2 to 7 do
  begin
    if TppField(FindComponent('pp_KontoInhaberZ' + intToStr(i)).AsString) <> '' then // hier stimmt auch was nicht...??
    begin
      //   hier einfüllen aber wie...
    end;

  end;
end;
Ich fühle mich mit dem FindComponent noch nicht so zurecht....

Wer kann mit mit dem richtigen Syntax helfen?
Vielen Dank.

mkinzler 27. Aug 2010 10:16

AW: Frage zu erstellen einer for-Schleife
 
Nimm besser .Append() oder .Add() statt den Text selber zusammenzubasteln.
Warum beginnst du bei 2?
Ein Softcast wäre besser:
Delphi-Quellcode:
(FindComponent('pp_KontoInhaberZ' + intToStr(i) as TppField).AsString

Jerry 27. Aug 2010 10:28

AW: Frage zu erstellen einer for-Schleife
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für Deine Antwort.
Leider ist das Append und Add in dieser Memobox nicht vorhanden.
Jetzt habe ich aber folgendes Problem:
Siehe hier Screen: (auf Eigenschaft AsString kann nicht zugegriffen werden.
Danke für weitere Tipps... :-)

mkinzler 27. Aug 2010 10:29

AW: Frage zu erstellen einer for-Schleife
 
Du hast die Klammern auch falsch gesetzt

DeddyH 27. Aug 2010 10:31

AW: Frage zu erstellen einer for-Schleife
 
Und so?
Delphi-Quellcode:
var CurrField: TppField;

...

CurrField := FindComponent('pp_KontoinhaberZ' + IntToStr(i)) as TppField;
if Assigned(CurrField) and (CurrField.AsString <> '') then

Jerry 27. Aug 2010 10:36

AW: Frage zu erstellen einer for-Schleife
 
mmmm sorry der will net... :-(

Delphi-Quellcode:
procedure Trpt_eVVPrint.MemoKunde3Print(Sender: TObject);
var
  i : integer;
begin
  for i := 1 to 7 do
    begin
      if Findcomponent('pp_KontoInhaberZ' + intToStr(i) as TppField).AsString <> '' then
      begin
        MemoKunde3.Text := MemoKunde3.Text + Findcomponent('pp_KontoInhaberZ' + intToStr(i) as TppField).AsString + #10;
      end;
    end;
end;

Jerry 27. Aug 2010 10:40

AW: Frage zu erstellen einer for-Schleife
 
so habs nun.. ;-)

Delphi-Quellcode:
procedure Trpt_eVVPrint.MemoKunde3Print(Sender: TObject);
var
  i : integer;
begin
  for i := 1 to 7 do
    begin
      if (Findcomponent('pp_KontoInhaberZ' + intToStr(i)) as TppField).AsString <> '' then
      begin
        MemoKunde3.Text := MemoKunde3.Text + (Findcomponent('pp_KontoInhaberZ' + intToStr(i)) as TppField).AsString + #10;
      end;
    end;
end;
Vielen Dank an alle!

mkinzler 27. Aug 2010 10:41

AW: Frage zu erstellen einer for-Schleife
 
Delphi-Quellcode:
 if (Findcomponent('pp_KontoInhaberZ' + intToStr(i)) as TppField).AsString <> '' then

Nachteule 27. Aug 2010 10:53

AW: Frage zu erstellen einer for-Schleife
 
Zitat:

Leider ist das Append und Add in dieser Memobox nicht vorhanden.
hähh?


Delphi-Quellcode:
MemoKunde3.Lines.Add((Findcomponent('pp_KontoInhaberZ' + intToStr(i)) as TppField).AsString );

hoika 27. Aug 2010 10:59

AW: Frage zu erstellen einer for-Schleife
 
Hallo,

Delphi-Quellcode:
if (Findcomponent('pp_KontoInhaberZ' + intToStr(i)) as TppField).AsString <> '' then
begin
  MemoKunde3.Text := MemoKunde3.Text + (Findcomponent('pp_KontoInhaberZ' + intToStr(i)) as TppField).AsString + #10;
end;
Du rufst FindComponent jetzt 2mal auf.
Weiter oben war der Tip mit der lokalen Variable.
Das Memo hat übrigens ein Lines.Add

Das erspart dir das #10 (was eigentlich #13#10 ein müsste).


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.
Seite 1 von 2  1 2      

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