Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Memo leer bei Klick (https://www.delphipraxis.net/176869-memo-leer-bei-klick.html)

Dyami 1. Okt 2013 12:46

Delphi-Version: 5

Memo leer bei Klick
 
Hallo,

ich habe eine Frage, die bestimmt total einfach zu lösen ist. Habe auch im Inet gegooglet, aber bin wahrscheinlich blind :D

Ich möchte, wenn ich in ein Memo klicke, dass der Text im Memo automatisch verschwindet.
Gibt es dafür eine Funktion oder muss ich dort weiterhin mit einem Button arbeiten?


Liebe Grüße

Philipp

Klaus01 1. Okt 2013 12:50

AW: Memo leer bei Klick
 
Hallo,

hat das Memo nicht ein onClick Ereignis?
Dort (sender as TMemo).clear sollte das tun.

Ob das sinnvoll ist sei mal dahingestellt.

Grüße
Klaus

DeddyH 1. Okt 2013 12:51

AW: Memo leer bei Klick
 
Möchtest Du das wirklich? Ich stelle mir gerade vor, dass ich in dem Memo etwas eintippe, einen Schreibfehler bemerke, mit der Maus an die betreffende Stelle klicke... und dann von vorn beginnen darf. Falls Du es aber unbedingt haben willst, kannst Du natürlich im OnClick des Memo Memo.Clear aufrufen.

Helmi 1. Okt 2013 12:51

AW: Memo leer bei Klick
 
Hallo,

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Clear;
end;

Dyami 1. Okt 2013 12:56

AW: Memo leer bei Klick
 
Oh, einfacher als gedacht. Habe aber lieber das OnDblClick genommen :D
DeddyH Aussage hatte schon Sinn :D

Danke euch! :)

Blup 1. Okt 2013 12:56

AW: Memo leer bei Klick
 
Vermutlich ist das im OnEnter-Ereignis am ehesten sinnvoll.

Dyami 2. Okt 2013 12:50

AW: Memo leer bei Klick
 
Also habe das eben gerade ausprobiert, das OnEnter-Ereignis, aber das spricht mir nicht so zu. Verlässt du das Feld kurz und willst dann z.B. weiterschreiben, dann löscht sich ja der Inhalt.
Das will ich ja nicht :D
Ich bleibe beim OnDblClick :P

Aber danke dir Blup

:) :) :)

Medium 2. Okt 2013 12:56

AW: Memo leer bei Klick
 
Am Rande: Das ist ein ziemlich unübliches Verhalten einer GUI. Klingt für mich nach einer prima Möglichkeit die User in leichte Wahnsinnsausbrüche zu lenken. Ich würde entweder beim zusätzlichen Button bleiben, oder darauf vertrauen, dass "Backspace bis Anschlag", "Text mit Maus markieren und Entf drücken" sowie "Strg-A Entf" hinreichend bekannt sind.

Dyami 2. Okt 2013 12:59

AW: Memo leer bei Klick
 
Ja das stimmt allerdings. Irgendwie hat jedes Ereignis ein kleinen Hacken, also was das Thema betrifft. Ich werde nochmal überlegen. Der zusätzliche Button ist ja schon da, dass ist ja nicht das Problem.
Naja, komischerweise kann ich im Memo aber nicht mit STRG+A arbeiten.. Dort passiert dann nämlich nichts..

hathor 2. Okt 2013 13:52

AW: Memo leer bei Klick
 
Wenn man auf die Rechtsklick-Rückgängig-Funktion nicht verzichten will,
ist folgender Code besser:

Delphi-Quellcode:
procedure TForm1.Memo1DblClick(Sender: TObject);
begin
Memo1.SetFocus;
Memo1.SelectAll;
Application.ProcessMessages; //muss sein!!!
Memo1.ClearSelection;
end;

himitsu 2. Okt 2013 14:37

AW: Memo leer bei Klick
 
So reicht es nicht?
Delphi-Quellcode:
procedure TForm1.Memo1DblClick(Sender: TObject);
begin
  Memo1.Clear;
end;
Nja, es kann sein, daß man noch irgendwas initialisieren mußte, damit sowas wie Strg+A von alleine ging.

Ansonsten im OnKeyDown
Delphi-Quellcode:
procedure TfrmMain.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) and (Key = Ord('A')) then begin
    (Sender as TCustomMemo).SelectAll;
    Key := 0;
  end;
end;

Dyami 2. Okt 2013 15:38

AW: Memo leer bei Klick
 
Danke für die Antworten, aber ich werde es erst Freitag ausprobieren können.
Dann melde ich mich nochmal ob es geht oder nicht :P

Aber danke euch!

Klaus01 2. Okt 2013 15:53

AW: Memo leer bei Klick
 
.. gut auch wenn das TMemo kein Strg-A unterstützt.
Rechts reinklicken - select all müsste aber schon funktionieren.

Grüße
Klaus

himitsu 2. Okt 2013 16:09

AW: Memo leer bei Klick
 
Bei mir geht das mit dem Strg+A von alleine. (hier im XE2)
Im Grunde sollte das ein Standardverhalten direkt von Windows sein (solange die nötigen Bibliotheken initialisiert sind und keine andere Komponente dazwischenfunkt)

Strg+Pos1
Strg+Shift+Ende

Strg drücken
Pos1 drücken und wieder loslassen
Shift drücken
Ende drücken und wieder loslassen
Strg und Shift loslassen


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz