AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Hilfe bei Richedit und Tstring bzw string
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei Richedit und Tstring bzw string

Ein Thema von flacky · begonnen am 20. Dez 2006 · letzter Beitrag vom 20. Dez 2006
Antwort Antwort
flacky

Registriert seit: 20. Dez 2006
4 Beiträge
 
#1

Hilfe bei Richedit und Tstring bzw string

  Alt 20. Dez 2006, 14:11
Hi,
ich hab momentan ein kleines Problem mit RIchEdit etc...
also um die ganze Sache mal zu beschreiben :
Ich habe eine doppelt verkettete Liste als Datensatz.
Diese Liste wird dann in einer listview wiedergegeben.
Ich benutze als eines der Eingabefelder ein RichEdit.
Gespeichert wird es dann so :
Delphi-Quellcode:
 
var
  neu : TKnoten; // Neuer Knotenpunkt
  i,z:integer; // Zaehler fuer bemerkung (trichedit)
begin
 i:=form_hinzufuegen.edit_bemerkung.Lines.Count-1; // Zählt die lines ;)
  for z:=0 to i do
  begin
    neu.Daten.bemerkung:=neu.Daten.bemerkung+form_hinzufuegen.edit_bemerkung.Lines[z]+'; ';
  end;
Das geht soweit gut.
Nun will ich auch die Eintraege editieren und will sie dann wieder zurueck ins RichEdit laden, mit den Absätzen, die ich ja vorher durch Semikolons ersetz habe.
    form_editieren.richedit_bemerkung.Text := StringReplace(lauf.Daten.bemerkung, '; ', #13, [rfReplaceAll]); Wenn ich das so mache, wird der erste Eintrag, den ich editieren will, zwar in alllen anderen Feldern angezeigt, aber das RichEdit ist leer. Erst wenn ich es ein zweites mal aufrufe - dann geht es ueberall wunderbar.
Warum ist das so, bzw. gibt es da vielleich eine Lösung

Ich hoffe ihr konntet meine Schilderung verstehen. Mein erstes mal hier Wenn ihr das Programm selber anschauen wollt, sagt es und ich lad es hoch
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Hilfe bei Richedit und Tstring bzw string

  Alt 20. Dez 2006, 14:21
Herzlich willkommen in der Delphi-PRAXiS, flacky.

Weißt du, dass du die Zeilen einfach mit ihrem normalen Zeilentrenner übernehmen kannst?

Delphi-Quellcode:
 
var
  neu: TKnoten; // Neuer Knotenpunkt
begin
  // ...
  neu.Daten.bemerkung := form_hinzufuegen.edit_bemerkung.Text;
  // ...
end;
Wenn du aber einen Vorteil in der Zeichenkette '; ' siehst, dann so:

form_editieren.richedit_bemerkung.Text := StringReplace(lauf.Daten.bemerkung, '; ', sLineBreak, [rfReplaceAll]); Dabei darf dann dein Trenner nicht als normaler Textbestandteil auftauchen...

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
flacky

Registriert seit: 20. Dez 2006
4 Beiträge
 
#3

Re: Hilfe bei Richedit und Tstring bzw string

  Alt 20. Dez 2006, 14:38
Danke fuer die schnelle Antwort
Joip, das weiß ich schon, nur wir dies dann in der listview als zwei Balken dargestellt.
Gruß flacky

edit:
Zitat von marabu:
form_editieren.richedit_bemerkung.Text := StringReplace(lauf.Daten.bemerkung, '; ', sLineBreak, [rfReplaceAll]);
geht zwar wunderbar, aber auch erst, nachdem einmal schon editieren aufgerufen wurde.
Ich habe mal das Programm im Anhang Ist mein erstes Programm. Es geht um ein Lustiges Taschenbuch Archiv, ist für die Schule
Angehängte Dateien
Dateityp: exe info_141.exe (1,07 MB, 7x aufgerufen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Hilfe bei Richedit und Tstring bzw string

  Alt 20. Dez 2006, 14:54
Nicht schlecht für dein erstes Programm - aber am ausführbaren Programm kann ich nicht erkennen, warum beim ersten Editiervorgang das RichEdit leer bleibt.

Übrigens: Wenn du bei deinem RichEdit die Eigenschaft WantReturns auf False setzt, dann kannst du dir das Hin- und Herwandeln der Zeilentrenner schenken.

Freundliche Grüße
  Mit Zitat antworten Zitat
flacky

Registriert seit: 20. Dez 2006
4 Beiträge
 
#5

Re: Hilfe bei Richedit und Tstring bzw string

  Alt 20. Dez 2006, 15:44
Danke,
ist zwar eine einfache Lösung, aber denoch genau das, was ich brauchte
danke dir!
Aber das eigentlich Problem besteht leider immer noch. Beim ersten mal Editieren fehlt der Text im RichEdit

mfg flacky

ps.: Danke fürs Lob
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Hilfe bei Richedit und Tstring bzw string

  Alt 20. Dez 2006, 16:57
Zeige doch mal den Code, welcher ausgeführt wird, wenn auf den Schalter "Editieren" geklickt wird. Vielleicht ergeben sich daraus weitere Erkenntnisse.

Freundliche Grüße
  Mit Zitat antworten Zitat
flacky

Registriert seit: 20. Dez 2006
4 Beiträge
 
#7

Re: Hilfe bei Richedit und Tstring bzw string

  Alt 20. Dez 2006, 19:34
Delphi-Quellcode:
procedure Tmain.sbutton_open_editierenClick(Sender: TObject);
var
  lauf : TKnoten;
begin
  if (Listview.ItemIndex <> -1) then
  begin
    lauf:=anfang;
    while (lauf.Daten.ltb_nummer) <> strtoint(Listview.Items.Item[Listview.ItemIndex].Caption) do
    begin
      lauf:=lauf.nach;
      if (lauf=ende) then
      begin
        showmessage('Kein ordnungsgemäßer Eintrag ausgewählt!');
        exit;
      end;
    end;
    form_editieren.edit_bemerkung.Text := Trim(lauf.Daten.bemerkung);
    form_editieren.edit_nummer.Text := inttostr(lauf.Daten.ltb_nummer);
    form_editieren.edit_titel.Text := lauf.Daten.titel;
    form_editieren.cb_bestand.Checked := lauf.Daten.bestand;
    form_editieren.tbar_bewertung.Position := lauf.Daten.bewertung ;
    form_editieren.showmodal ;
  end;
end;
Leider fehlt die Dokumentierung :/
edit_bemerkung ist das Richedit. Wie du mir forgeschlagen hast, habe ich WantReturns auf false gesetzt und somit ein bisschen vereinfacht
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Hilfe bei Richedit und Tstring bzw string

  Alt 20. Dez 2006, 20:03
Wir wissen beide, dass der Eintrag aus der verketteten Liste gefunden wird, weil (1) die Message nicht ausgegeben wird und (2) einige Felder des Edit-Dialogs korrekt befüllt werden. Du könntest mal einen Breakpoint hinter die While-Schleife setzen und den Inhalt von lauf.Daten überprüfen. Setze auch Breakpoints auf alle Stellen, an denen der Bemerkungstext gesetzt wird, dann solltest du dem Fehler recht bald auf die Spur kommen. Ich muss jetzt wieder auf mein Krankenlager.

Gute Nacht
  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 04:29 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