AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TStrings-Objekt mit anderem TStrings-Objekt verknüpfen
Thema durchsuchen
Ansicht
Themen-Optionen

TStrings-Objekt mit anderem TStrings-Objekt verknüpfen

Ein Thema von scouty · begonnen am 16. Jan 2004 · letzter Beitrag vom 16. Jan 2004
Antwort Antwort
scouty

Registriert seit: 27. Nov 2003
Ort: Dresden
47 Beiträge
 
#1

TStrings-Objekt mit anderem TStrings-Objekt verknüpfen

  Alt 16. Jan 2004, 20:02
Ich stelle die Eigenschaft Remark (is TStrings) eines Objektes Obj, welche im Objekt in einem TStringsObjekt gehalten wird, im Formular mittels einer TRichEdit-Komponente Re dar (Eigenschaft Lines). Wie verknüpfe ich aber das Attribut Lines der Komponente am besten mit dem des Objektes. Der Aufruf:

Re.Lines := Obj.Remark funktioniert nicht. Was natürlich die einfachste Lösung wäre. Jetzt könnte ich mir eine Routine schreiben, die Zeile für Zeile von der einen StringList in die andere schreibt. Das erscheint mir allerdings zu umständlich. Wie bekomme ich Delphi dazu, dass die StringList der TRichEdit-Komponente einfach nur immer auf die StringList des jeweiligen aktuellen Objektes zeigt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen

  Alt 16. Jan 2004, 20:26
Nimm mal eine StringListe. TStrings hat nur virtuelle nicht implementierte Methoden, die erst von den Nachfahren implementiert werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
scouty

Registriert seit: 27. Nov 2003
Ort: Dresden
47 Beiträge
 
#3

Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen

  Alt 16. Jan 2004, 21:03
Danke für den Tipp, aber leider funktioniert es immer noch nicht. Ich glaube, ich übersehe hier irgendeine Zeigerregel, wenn ich das einfach so zuweise, wie ich es oben geschrieben habe. Leider seh' aber nicht durch


Greetings Scouty...
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen

  Alt 16. Jan 2004, 21:11
Hallo,

ohne zusätzlichen Quelltext nicht zu sagen. und
Zitat:
aber leider funktioniert es immer noch nicht
sind immer so detailierte Beschreibungen. WAS genau geht denn nich?

aber Re.Lines := Obj.Remark wird noch gehen, da hier beim zuweisen automatisch Re.Lines.assign(Obj.Remark) gemacht wird.
Obj.Remark := Re.Lines; sieht dann evtl schon anders aus, wenn du bei deinem Objekt in der Set-Methode kein assign mit drin hast, dann kopierst du nicht die Inhalte sondern biegst nur den Zeiger um und das könnte dir schon Problem machen.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen

  Alt 16. Jan 2004, 21:22
Eventuell hilft es den zeiger (das Object von TStringlist) zu typisieren damit nicht einfach an der stelle vom speicher was rumgeschrieben wird sondern die dazugehörigen routinen ausgeführt werden so wie es der typ festlegt
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
scouty

Registriert seit: 27. Nov 2003
Ort: Dresden
47 Beiträge
 
#6

Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen

  Alt 16. Jan 2004, 21:53
Ich denke mal mit dem Assign bin ich schon ein Schritt weiter aber so richtig durchblicken tu’ ehrlich gesagt noch nicht, so dass die Funktionalität natürlich auch noch nicht läuft.

Ich will mein Problem etwas genauer schildern:


Wir haben eine Klasse MyClass, deren Instanzen MyObjects das Attribut Remark vom Typ TStrings besitzen. Von Instanzen vom Typ MyClass gibt eine Menge in der Anwendung. Der Anwender soll immer eins bearbeiten können. Um auf das Attribut Remark der Objekte zugreifen zu können. Soll dieses mit der StringList einer TRichEdit-Komponente verbunden werden. Ich möchte, dass sobald der User eine Instanz von MyObjekt aktiviert, deren Attribut Remark automatisch in der TRichEdit-Komponente abgebildet wird, wo es auch verändert werden kann. Wenn der Users ein anderes MyObject wählt, soll das Neue in der TRichEdit-Komponente angezeigt werden und die Änderungen des vorherigen Objektes aus TRichEdit in das Attribute Remark des vorherigen Objektes übernommen werden.

Ich meine mit einfachen Datentypen (z.B. Strings) ist das ja bekanntlich einfach. Wählt der User Objekt A aus, sage ich einfach

TEdit.Text := A.Text; Zum Zurückschreiben der Änderungen drehe ich das ganze einfach um:

A.Text := TEdit.Text; damit sind die Änderungen am Text von A über TEdit nach A zurück geschrieben und es kann ein neues Objekt in TEdit angezeigt werden.

Die Frage ist nun, wie geht das mit TStrings????
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen

  Alt 16. Jan 2004, 22:00
ich hab jetzt leider nicht mehr viel zeit, muß los.
aber text ist kein objekt. bei objekten biegst du mit objekt1:=objekt2 nur den zeiger um und objekt1 zeigt nun auf objekt2.

Hast du die Sourcen, (ab Pro-Version? ) dann gugg dir einfach mal den Aufbau von dem richedit an , imnsbesondere die set-methode von lines.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr.
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