Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Memofelder Zählen
neuling321 - Fr 13.05.16 15:07
Titel: Memofelder Zählen
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 Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 13.05.2016 um 20:37
Schafschaf - 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 - 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.
Delete - Fr 13.05.16 21:25
- Nachträglich durch die Entwickler-Ecke gelöscht -
neuling321 - 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:
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 :-(
Delete - Sa 14.05.16 17:51
- Nachträglich durch die Entwickler-Ecke gelöscht -
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!