Announcement

Collapse
No announcement yet.

TEdit und TMemo mit INSERT ein/aus

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TEdit und TMemo mit INSERT ein/aus

    Wie kann ich für <B>TEdit</B> und <B>TMemo</B> das <B>Einfügen</B> bzw. <B>Überschreiben</B> programmieren? Der entsprechende Modus kann bereits eingestellt werden, nur das Feld weiss noch nichts von seinem Glück.

    Wie sag ich's meinem Feld??

  • #2
    Hmmm....<br>
    Ich bin mir nicht ganz sicher (beschäftige mich mit OpenGL und Client-Server) aber versuch mal die Prozedur<br>
    <b>PasteFromClipboard</b><br>
    zu überschreiben!<br>
    ACHTUNG: Vielleicht ist die virtuell, dann musst du bei der Deklaration "virtual;" hinten anhägen, außerdem würde ich "inherited PasteFromClipboard" mit reinschreiben, um so Delphi die Daten vom Clipboard holen zu lassen und dann diese zu bearbeiten. Mehr dazu gibts in Büchern über Vererbung!<br>
    bis denne Volker

    Comment


    • #3
      Hier geht es aber nicht um das Einsetzen eines Textes, sondern beim Eintippen soll das Feld entsprechend dem eingestellten Modus <B>EINFÜGEN</B> oder <B>ÜBERSCHREIBEN</B> die Zeichen eben reindrängeln oder übertippen.

      Aber vielleicht hast Du noch eine Idee

      Comment


      • #4
        Hmmm im Delphi Editor funzt das doch mit der Einfügen Taste! Ich weiß im Moment den Speicherbereich nicht genau (glaub aber: $0:614) da stehen die Stati von ALT STRG EINF NUM SCROLL und ROLL in Bits! Ich hab das Buch verliehen, wo das drin war. Guck mal ob du wenn du EINF drückst das Verhalten der Objekte umstellen kannst... Wenn ja guck in nem Dos oder Pascal Buch nach der Speicherstelle.<br>
        WARNUNG:<br>
        Ich hab das nur früher unter Pascal benutzt und weiß nicht ob die obige Adresse die richtige ist und was Windows bzw. Delphi mit dem Speicher da überhaupt macht.<br>
        Ansonsten mach ne Variable die den Status EINF/ÜBERSCHR speichert und veränder die OnKeyPress,OnKeyDown,OnKeyUp Events so dass der gewünschte Effekt eintritt! Wie du allerdings die momentane Cursor Position herausfindest weiß ich nicht (beschäftige mich mehr mit OpenGL und Client/Server als mit sowas!)<br>
        Viel Erfolg!<br>
        --Volker

        Comment


        • #5
          Das ist nicht das Problem.
          <B>ALT STRG EINF NUM SCROLL</B> sind in einer Statuszeile definiert.

          Der Zustand wird richtig analysiert und korrekt anzeigt.

          Ich weiss wann <FONT COLOR="GREEN">EINF</FONT> ein oder <FONT COLOR="RED">EINF</FONT> aus ist.

          Was muss aber bei OnKeyPress, OnKeyDown, OnKeyUp getan werden? Ich habe gedacht, dass es für eine derartige grundlegende Funktion etwas einfacheres gibt

          Comment


          • #6
            Ein überschreibmodus für diese Komponenten gibt es in dieser form meines wissens nicht, ein bischen kann man sich höchstens mit den Eigenschaften selStart und selLength behelfen, diese geben an wo sich der Cursor befindet und wie viel markiert ist, das kann man zum einen programmgesteuert sezten, z.B. durch Edit1.selLength := Length(Edit1.text)-Edit.selStart markiert von der CursorPosition bis ans ende, dieser markierte Bereich wird dann ja beim nächsten tastendruck automatisch überschrieben. Alternativ könnte mann, wenn überschreiben eingeschaltet nach jedem Tastendruck erneut selLength auf 1 setzen, dann müßte immer das nächste zeichen ersetzt werden (habe ich nicht getestet)

            Comment


            • #7
              Danke Karsten!

              Genau diese Lösung habe ich schon im Einsatz.

              Ich hatte nur gedacht, es gibt etwas eleganteres.

              Gibt es weitere Vorschläge

              Comment

              Working...
              X