Ergebnis 1 bis 3 von 3

Thema: Memoinhalte in Varis speichern

  1. #1

    Miaaa Gast

    Memoinhalte in Varis speichern

    Tach. Ich weiß, ich bin schrecklich, aber ich hab mal wieder ein Prob.: Wie der Betreff schon sagt, weiß ich nicht, wie ich bei Delphi die Inhalte eines Texteingabefeldes in eine Vari bekommen kann. Wenn ich z.B. einen String nehme, sagt Delphi bei einem Memo: 'Inkompatible Typen: String und TStrings!'
    Wenn miaaa irgentjemand einen Tipp geben kann... (Es ist mir wirklich EGAL, was für eine Texteingabe-Komponente dafür gebraucht wird, TMemo, TEdit, TRichEdit... alles 'erlaubt' )
    Thanke im Voraus!

  2. #2
    ich enpfehle dir eine TStringList
    TStrings ist ein verallgemeinerter Stringlistentyp .. das heisst, da stehen viele Strings drinn in vielen Zeilen angeprdnet ...

    die sache sieht dann in etwa so aus ...

    Code:
    Procedure TForm1.Button1Click(Sender:TObject);
    var myList:TStringList;
    begin
    myList:=TStringList.create; //Neues Object von TStringList erzeugen
    myList.AddStrings(Memo1.Lines); //Daten uebertragen
    //tu was immer du willst hier
    myList.free; //Speicher des Objects wieder freigeben !!Wichtig!!
    end;
    Aber wofuer willst du eine Stringlist in deine eigenen Variablen speichern ? ... meistens braucht man das nicht ...

    wenn du aber meinst, wie du auf die einzelnen Strings zugreifen kannst ... das geht folgendermassen ....

    ein Object vom Typ TStrings hat zwei wichtige Eigenschaften ...
    TStrings.Count gibt die Anzahl von Strings wieder, die darin gespeichert ist.
    TStrings.Strings ist das Array der gespeicherten Strings. Dabei wird von 0 bis Count-1 indexiert.

    Code:
    Procedure TForm1.Button2Click(Sender:TObject);
    var i:integer;
        s:String;
    begin
    for i:=0 to Memo1.Lines.Count-1 do
     begin
      s:=Memo1.Lines.Strings[i]; // s:=Memo1.Lines[i]; waere genau so richtig .. ist eine Abkuerzung
      //hier den String verarbeiten
      Memo1.Lines.Strings[i]:=s; // und gegebenenfalls zurueckschreiben
     end;
    end;
    Wenn du nur einen einzeiligen Text hast, ist es oft aber bequemer einen TEdit komponente zu nehmen ...

    Den Text kannst du dann mit der eigenschaft TEdit.Text ansprechen ...
    Code:
    Procedure TForm1.Button3Click(Sender:TObject);
    var s:String;
    begin
     s:=Edit1.Text; //String holen ..
     // String verarbeiten
     Edit1.Text:=s; //String veraendert zurueckspeichern ?
    end;
    mehr gibts da eigentlich nicht zu sagen ^^

  3. #3

    Miaaa Gast
    So wie dein drittes Beispiel hab ichs gemeint. (Bis jetzt wusste ich aber nicht, dass es '.Text' gibt, sondernhab es immer mit '.Lines' versucht. Und s:=Memo1.Lines; will er nich'.)
    Thanke

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •