Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Text-Teile ersetzen im Memo-Feld (https://www.delphipraxis.net/79225-text-teile-ersetzen-im-memo-feld.html)

Coder 18. Okt 2006 15:02


Text-Teile ersetzen im Memo-Feld
 
a) ich möchte Teile eines Textes im Memofeld ersetzen
Ihc markiere den Textteil
frage nach Drücken von STRG+V im FormKeyDown() ab:
Delphi-Quellcode:
 if (ssCtrl in Shift) and (key = $56) then
begin
 memo1.SelText :='';
 memo1.SelText := Clipboard.AsText;
end;
doch es erscheint dann
2x der selbe eingefügte Text hintereinander: Bsp.: eingefügt: 'Das ist ein Satz.' , dann steht nacher im Memo: Das ist ein Satz.Das ist ein Satz.

Das kann doch nicht wahr sein, daß der o.g. Befehl 2x ausgeführt wird ?


weil's gerade auch hierzu paßt und Probleme gibt:
b) das Memeofeld soll nach dem Start direkt den Focus bekommen
habe das memo1.SetFocus; im Form.oncreate() stehen - aber da kommt nur
Delphi-Quellcode:
Im Projekt web_Test.exe ist eine Exception der Klasse EInvalidOperation aufgetreten. Meldung: 'Ein deaktiviertes oder unsichtbares Fenster kann nicht den Fokus erhalten'. Prozeß wurde angehalten.
Fortfahren mit Einzelschritt oder Start.
als Fehlermeldung beim Starten der Exe.
Das aber müßte doch dennoch gehen, oder?
Das Programm besitzt noch eine zweite Form. Liegt's daran?

Klaus01 18. Okt 2006 15:05

Re: Text-Teile ersetzen im Memo-Feld
 
Zitat:

Zitat von Coder
Im Projekt web_Test.exe ist eine Exception der Klasse EInvalidOperation aufgetreten. Meldung: 'Ein deaktiviertes oder unsichtbares Fenster kann nicht den Fokus erhalten'. Prozeß wurde angehalten.
Fortfahren mit Einzelschritt oder Start. als Fehlermeldung beim Starten der Exe.
Das aber müßte doch dennoch gehen, oder?
Das Programm besitzt noch eine zweite Form. Liegt's daran?

Vielleicht solltes Du den Focus im OnShow setzen?

Und unterstüzt das memo nicht von Hause aus Copy/Paste und somit hast Du es doppelt implementiert.

Grüße
Klaus

bttb930 18. Okt 2006 15:08

Re: Text-Teile ersetzen im Memo-Feld
 
Naja, du brauchst STRG-V nicht abzufragen - das Memo-Feld reagiert da von selbst drauf.
Da du es doch abfragst wird nunmal zweimal drauf reagiert.

Zitat:

Zitat von Coder
a) ich möchte Teile eines Textes im Memofeld ersetzen
Ihc markiere den Textteil
frage nach Drücken von STRG+V im FormKeyDown() ab:
Delphi-Quellcode:
 if (ssCtrl in Shift) and (key = $56) then
begin
 memo1.SelText :='';
 memo1.SelText := Clipboard.AsText;
end;
doch es erscheint dann
2x der selbe eingefügte Text hintereinander: Bsp.: eingefügt: 'Das ist ein Satz.' , dann steht nacher im Memo: Das ist ein Satz.Das ist ein Satz.

Das kann doch nicht wahr sein, daß der o.g. Befehl 2x ausgeführt wird ?


weil's gerade auch hierzu paßt und Probleme gibt:
b) das Memeofeld soll nach dem Start direkt den Focus bekommen
habe das memo1.SetFocus; im Form.oncreate() stehen - aber da kommt nur
Delphi-Quellcode:
Im Projekt web_Test.exe ist eine Exception der Klasse EInvalidOperation aufgetreten. Meldung: 'Ein deaktiviertes oder unsichtbares Fenster kann nicht den Fokus erhalten'. Prozeß wurde angehalten.
Fortfahren mit Einzelschritt oder Start.
als Fehlermeldung beim Starten der Exe.
Das aber müßte doch dennoch gehen, oder?
Das Programm besitzt noch eine zweite Form. Liegt's daran?


Coder 18. Okt 2006 15:23

Re: Text-Teile ersetzen im Memo-Feld
 
arrrrg, joa, .. blöder Denkfehler - aber irgendwie hatte das vorher nicht funktioniert, darum hab ich's dann noch implementiert.

zu b)
jo, im onSHow () daran hatte ich nicht mehr gedacht..
danke!

Hawkeye219 18. Okt 2006 15:32

Re: Text-Teile ersetzen im Memo-Feld
 
Hallo Jens,

über die Eigenschaft Delphi-Referenz durchsuchenTForm.ActiveControl kannst du ohne Code bereits zur Entwurfszeit festlegen, welches Control beim Start der Anwendung den Fokus hat.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 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