Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Edit1.Text Inhalt sperren ? (https://www.delphipraxis.net/98391-edit1-text-inhalt-sperren.html)

taktaky 26. Aug 2007 17:18


Edit1.Text Inhalt sperren ?
 
Hallo,

bis jetzt verwende ich den Inspector die Option Enabled. Aber mit dieser Option kann man den Inhalt nicht kopieren und der Feld wird deaktiviert.

So möchte ich nicht sondern der Inhalt soll gesperrt werden d.h. kopieren ja, ändern nein

so möchte ich den Feld von Edit1.Text haben.

Wie kann ich sowas machen?

Gruß

mkinzler 26. Aug 2007 17:23

Re: Edit1.Text Inhalt sperren ?
 
Einfach jede Änderung des Benutzers rückgängig machen.

Nils_13 26. Aug 2007 17:32

Re: Edit1.Text Inhalt sperren ?
 
Delphi-Quellcode:
ReadOnly := True;

Hansa 26. Aug 2007 17:39

Re: Edit1.Text Inhalt sperren ?
 
Knapper gehts nimmer. :mrgreen: Ich habe eine Form da ist das so ähnlich. Diese Form hat eine private Variable AltFeldWert. Im Edit.OnEnter wird der gesetzt. Bei mir gehts drum zu sehen, ob überhaupt was geändert wurde. Falls ja : Aktion durchführen (im Edit.OnExit). Bei dir müsste man lediglich den im OnEnter gespeicherten Wert im OnExit zurücksetzen.
Delphi-Quellcode:
Edit.Text := AltFeldWert;
Es reicht ein gemeinsames OnEnter für die gewünschten Edits. Jedes einzelne müsste allerdings sein eigenes OnExit besitzen. Alternative (aber nicht nötig) : jedes Edit erhält eine eigene Variable um den alten Wert zu speichern.

taktaky 26. Aug 2007 18:22

Re: Edit1.Text Inhalt sperren ?
 
Zitat:

Zitat von Nils_13
Delphi-Quellcode:
ReadOnly := True;

Hallo zusammen,

Danke!

Mit ReadOnly:=true ist die beste Lösung :thumb:

Gruß

Die Muhkuh 26. Aug 2007 18:25

Re: Edit1.Text Inhalt sperren ?
 
Zitat:

Zitat von Hansa
Knapper gehts nimmer. :mrgreen: Ich habe eine Form da ist das so ähnlich. Diese Form hat eine private Variable AltFeldWert. Im Edit.OnEnter wird der gesetzt. Bei mir gehts drum zu sehen, ob überhaupt was geändert wurde. Falls ja : Aktion durchführen (im Edit.OnExit). Bei dir müsste man lediglich den im OnEnter gespeicherten Wert im OnExit zurücksetzen.
Delphi-Quellcode:
Edit.Text := AltFeldWert;
Es reicht ein gemeinsames OnEnter für die gewünschten Edits. Jedes einzelne müsste allerdings sein eigenes OnExit besitzen. Alternative (aber nicht nötig) : jedes Edit erhält eine eigene Variable um den alten Wert zu speichern.

Hi Hansa,

warum braucht jedes Edit sein eigenes OnExit?

Delphi-Quellcode:
procedure OnExit(Sender: TObject);
begin
  (Sender as TEdit).Text := AltFeldWert;
end;

Hansa 26. Aug 2007 21:21

Re: Edit1.Text Inhalt sperren ?
 
Zitat:

Zitat von Die Muhkuh
..warum braucht jedes Edit sein eigenes OnExit?...

Weil bei mir DB dahinter hängt. Da muss schon das richtige Feld aktualisiert werden, oder die entsprechende SP aufgerufen werden. Der alte Feldwert alleine nützt da nichts. Der Fragesteller braucht allerdings tatsächlich nur ein OnExit.

taktaky 26. Aug 2007 21:25

Re: Edit1.Text Inhalt sperren ?
 
Hi

OnChange funktioniert besser aber am besten ReadOnly:= True :wink:

Gruß

Hansa 26. Aug 2007 21:40

Re: Edit1.Text Inhalt sperren ?
 
OnChance ? :shock: Wieso ist das besser ? Als was ? Das gilt jedenfalls mal nicht für ein DB-Programmm welches Änderungen durchführt. Bei ReadOnly sollte das OnChange sowieso nicht gehen. :mrgreen: Es wäre ein Unding die Datenbank mit jedem einzelnen geänderten Zeichen zu belästigen, obwohl das Feld letztendlich zum Schlusss nicht mal geändert wurde. Benutze du lieber die OnEnter/Onexit Methode, um das Edit-Feld notfalls einfach zurückzusetzen. Ich hingegen muss eben hingehen und nachgucken, ob eine Änderung an den Daten gemacht werden musss oder nicht. Deshalb wird der geänderte Wert auch benötigt, um eine Änderung durchzuführen. Also nicht irgendwas einfach rückgängig machen, sondern auch, um eine Änderung an der richtigen Stelle zu machen. Und genau deshalb reicht zwar ein OnEnter, aber nicht nur ein OnExit.

taktaky 27. Aug 2007 00:35

Re: Edit1.Text Inhalt sperren ?
 
Zitat:

Zitat von Hansa
OnChance ? :shock: Wieso ist das besser ? Als was ? Das gilt jedenfalls mal nicht für ein DB-Programmm welches Änderungen durchführt. Bei ReadOnly sollte das OnChange sowieso nicht gehen. :mrgreen: Es wäre ein Unding die Datenbank mit jedem einzelnen geänderten Zeichen zu belästigen, obwohl das Feld letztendlich zum Schlusss nicht mal geändert wurde. Benutze du lieber die OnEnter/Onexit Methode, um das Edit-Feld notfalls einfach zurückzusetzen. Ich hingegen muss eben hingehen und nachgucken, ob eine Änderung an den Daten gemacht werden musss oder nicht. Deshalb wird der geänderte Wert auch benötigt, um eine Änderung durchzuführen. Also nicht irgendwas einfach rückgängig machen, sondern auch, um eine Änderung an der richtigen Stelle zu machen. Und genau deshalb reicht zwar ein OnEnter, aber nicht nur ein OnExit.

Hi

der Feld wird automatisch bei Form1.OnCreate ausgefüllt werden (Windows Version)
Vielleicht deswegen hat es bei mir nicht geklappt.

Ich habe die Option ReadOnly:=true verwendet

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz