Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - ner procedure TStrings übergeben...
McFarlane - Di 23.10.07 19:42
Titel: ner procedure TStrings übergeben...
Moin,
ich hab ne Klasse erstellt die in ner Prozedur ein TStrings übergeben bekommen muss.
Delphi-Quelltext
1: 2:
| TDings.procedure(strings: TStrings); |
Geht das überhaupt? Weil ich muss doch eigentlich das TStrings Objekt erst createn, oder?
Ich kann leider nicht mit Quelltext dienen, weil ich den erst schreibe, wenn ich weiß dass das so geht. Wär nämlich verdammt viel.
Ich versuch mal zu erklären was ich machen will:
Ich wandele in der Protzedur mehrzeiligen Text um, sprich ich muss irgendwie erkennen können, wieviele Zeilen er hat.
Beim Memo kann man das ja so ganz gut auslesen.
Oder gibts da nich ne bessere Variante?
Thx, McFarlane
mkinzler - Di 23.10.07 21:13
Zitat: |
Geht das überhaupt? |
Warum nicht?
Zitat: |
Weil ich muss doch eigentlich das TStrings Objekt erst createn, oder? |
Ja, aber in der rufenden Prozedur.
Lossy eX - Mi 24.10.07 08:57
Zitat: |
Geht das überhaupt? |
Um da mal etwas mehr ins Detail zu gehen. Du kannst so ziemlich alles an eine Procedur übergeben. Ist immer nur die Frage ob es Sinn macht oder nicht. Aber ein TStrings ist eine Klasse wie jede andere und die kannst du natürlich überall hin übergeben.
Deine Strings solltest du nur dort erstellen wo du sie brauchst um unnötigen balast zu vermeiden. Allerdings eine kleine Anmerkung zu TStrings. TStrings ist normal nur die Klasse die überall hin weiter gereicht wird. Aber unten drunter wird TStringList benutzt. Denn die TStringList implementiert erst die funktionalität um Texte zu verwalten. Mit anderen Worten du solltest eine TStringList erstellen und diese an Methoden, die ein TStrings erwarten, reichen. Funktioniert so problemlos. Das aber nur als Anmerkung, da du die ganze Zeit von TStrings sprichst.
Alternativen. Wenn du mit wirklich großen Texten arbeitest oder diese Stelle sehr zeitkritisch ist dann könntest du auch per Hand durch den Text gehen und die Zeilenumbrüche zählen, da eine StringListe den Text kopieren muss. Was Zeit und etwas Speicher kostet. Allerdings erfordert das manuelle Zählen auch ein wenig mehr Erfahrung. Ein wenig. Ansonsten kannst du das durchaus so machen.
McFarlane - Fr 26.10.07 22:27
Joa, danke für die Antworten.
Hab TStrings genommen, aber werd die jetzt mal auf TStringList umstellen.
Kurze Frage am Rande:
Fals jemand von euch die wunderbare PHPFunktion br2nl() kennt, gibts sowas auch in delphi?
Bzw. ist sowas wie \n in Delphi vorhanden?
Narses - Fr 26.10.07 23:19
Moin!
Bitte erstelle für deine "Randfrage" ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Danke ;)
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!