Autor Beitrag
neuling321
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win10prof
Delphi 10 Seattle Prof.
BeitragVerfasst: Fr 13.05.16 15:07 
Hallo

Ich bin blutiger Anfänger bei Delphi.
Ich habe ein Programm in dem es 3 Memofelder gibt, diese Felder möchte ich
prüfen, ob sie nicht leer sind.
Dies möchte ich über eine Schleife machen.

Ich habe aber überhaut kein Ansatz, wie ich das mit einer schleife realisieren soll.
Die Schleife soll erkennen wie viele Memofelder es gibt, den Namen auslesen und dann
prüfen ob in dem Memofeld was drin steht.

Danke


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 13.05.2016 um 20:37
Schafschaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 63
Erhaltene Danke: 2

Windows 10
C# (VS 2015)
BeitragVerfasst: Fr 13.05.16 15:31 
Versteh ich jetz nicht ganz, gibt es immer 3 Memofelder oder kann der Benutzer beliebig viele (oder bis zu 3) Memofelder erstellen?
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 13.05.16 20:55 
Wenn es drei Memofelder (TMemo?) gibt und das feststeht, müssen diese nicht gezählt werden. Anderenfalls muß die Menge der Controls iteriert und dabei deren Typen ermittelt werden. Das dürfte für einen "blutigen Anfänger" deutlich zu heftig sein.

Mit einer Schleife bei 3 Memofeldern ist das auch so eine Sache. Der Zugriff darauf klappt nur, wenn diese - z.B. wie bei der automatischen Benennung - fortlaufend numeriert werden. Und dann muß man Findcomponent verwenden. Auch zu anspruchsvoll für den Einstieg.

Nur beim Prüfen auf Inhalt ist es einfacher: Es müßte eine Eigenschaft "Memo1.Lines.Count" (oder so ähnlich) geben, die man (aus-)lesen kann.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 13.05.16 21:25 
- Nachträglich durch die Entwickler-Ecke gelöscht -
neuling321 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win10prof
Delphi 10 Seattle Prof.
BeitragVerfasst: Sa 14.05.16 16:00 
Hallo

Vielen Dank für die Antworten,
@Frühlingsrolle

Leider funktioniert das bei mir nicht, ich bekomme den Fehler "Undeklarierter Bezeichner ControlCount"
Ich habe die Controls aber eingebunden, bzw war sie als vcl.controls schon unter uses vorhanden.
Kannst Du mir da noch mal helfen.


Danke

Ich weiss das man die drei Memofelder nicht extra zählen muss, da sie ja feststehen, aber vielleicht braucht man das
mal wann anders und dann weiss man es wie es geht :-)
Habe die Zeile nun so geschrieben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
function checkmemo():string;
var
           i: integer;
  nameofmemo: string;
begin
  for i := 0 to form1.ControlCount -1 do
  begin
    if form1.Controls[i] is TMemo then
    begin
      nameofmemo := TMemo(form1.Controls[i]).Name;
      showmessage(nameofmemo);
    end;

  end;
end;


Nun bekomme ich keine Fehler mehr, allerdings findet die Schleife auch kein Memofeld :-(
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 14.05.16 17:51 
- Nachträglich durch die Entwickler-Ecke gelöscht -