Seite 1 von 1

TextArea

Verfasst: Sa 3. Mär 2012, 23:01
von Alex
Hi,
ich möchte eine oder mehrere Markierte Zeilen aus einem TextArea auslesen, um die Zeile zu veränder und anschließend dieße in TextArea wieder auszugeben.
Mit der Anweisung "i = TextArea1.Selection" das funktioniert leiter nicht.

Wie kann ich die Markierte Zeilen auslesen ?

Re: TextArea

Verfasst: Mo 5. Mär 2012, 07:55
von tux_
Hi,

TextArea.Selection ist nur ein virtuelles Objekt vom Typ .TextAreaSelection (http://gambasdoc.org/help/comp/gb.qt/textarea/selection). TextArea.Selection.Text wäre der gewünschte Text.
Nach der Veränderung des Textes findest du in TextArea.Selection auch weitere Informationen über Position und Länge des, in der TextArea ausgewählten, Textes, die du mit der Mid$()-Funktion verwenden kannst, um den veränderten Text wieder in die Area hineinzuschreiben.

MfG,
tux_

Re: TextArea

Verfasst: Mo 5. Mär 2012, 18:16
von Alex
Hi, tux_,
Vielen Danke, das funktioniert. :D

M.f.G
Alex

Re: TextArea

Verfasst: Mo 5. Mär 2012, 19:10
von Honsek
Guten Tag Alex,

ich habe als Antwort auf Deine Anfragen und den Kommentar von tux_ mal ein klitzekleines Projekt beigelegt. Dann dürften sich Deine Fragen schnell beantworten:
Hier der Quelltext mit den 2 wesentlichen Prozeduren:

Code: Alles auswählen

' Gambas class file

PRIVATE bChange AS Boolean

PUBLIC SUB Form_Open()
  FMain.Center
  FMain.Border = 1
  bChange = FALSE
END ' Form_Open()

PUBLIC SUB btnCopy_Click()
  IF TextArea1.Selected THEN 
     TextBox1.Text = TextArea1.Selection.Text
  ENDIF 
END ' btnCopy_Click()

PUBLIC SUB btnErsetzen_Click()
  TextArea1.Selection.Text = Replace(TextArea1.Selection.Text, TextBox1.Text, TextBox2.Text)
  bChange = TRUE
END ' btnErsetzen_Click()

PUBLIC SUB btnClose_Click()
  FMain.Close
END ' btnClose_Click()

PUBLIC SUB Form_Close()
  DIM iIndex AS Integer
 
  IF bChange = TRUE THEN 
    Message.Question("Wollen Sie den geänderten Text speichern?", "Ja", "Nein")
    IF iIndex = 0 THEN ' Damit wird man von der eingestellten Sprache unabhängig!
       File.Save(User.Home &/ "mustertext.txt", TextArea1.Text)
    ENDIF ' IF iIndex = 1 
  ENDIF ' IF Change 
END ' Form_Close()
Du musst den Text - der ersetzt werden soll - markieren, um das Ersetzen anzuschieben.

Mit freundlichem Gruß

Honsek
p1.tar.gz
Beispiel-Programm
(12.76 KiB) 210-mal heruntergeladen

Re: TextArea

Verfasst: Di 6. Mär 2012, 07:14
von Alex
Hi Honsek,
auch dir Vilen Dank, ich Programmiere gerade eine IDE für die Bash mit Syntax verfolständigung usw. da werde ich das auch gebrauchen können.

Nochmal vielen Dank. :D

M. f. G.
Alex