![]() |
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ß |
Re: Edit1.Text Inhalt sperren ?
Einfach jede Änderung des Benutzers rückgängig machen.
|
Re: Edit1.Text Inhalt sperren ?
Delphi-Quellcode:
ReadOnly := True;
|
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:
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.
Edit.Text := AltFeldWert;
|
Re: Edit1.Text Inhalt sperren ?
Zitat:
Danke! Mit ReadOnly:=true ist die beste Lösung :thumb: Gruß |
Re: Edit1.Text Inhalt sperren ?
Zitat:
warum braucht jedes Edit sein eigenes OnExit?
Delphi-Quellcode:
procedure OnExit(Sender: TObject);
begin (Sender as TEdit).Text := AltFeldWert; end; |
Re: Edit1.Text Inhalt sperren ?
Zitat:
|
Re: Edit1.Text Inhalt sperren ?
Hi
OnChange funktioniert besser aber am besten ReadOnly:= True :wink: Gruß |
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.
|
Re: Edit1.Text Inhalt sperren ?
Zitat:
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ß |
Re: Edit1.Text Inhalt sperren ?
Wenns mit ReadOnly so geht, wie gewünscht, dann sei doch froh. Dein Problem ist somit gelöst. Das heißt aber nicht, dass andere Hinweise für jemand anderes nicht was nützen könnten. Der Hinweis von der Kuh (ja, bist selber Schuld :mrgreen: ) war ja schon berechtigt, weil eben nichts geändert werden soll => 1 OnExit reicht, aber nur in diesem, deinem konkreten Fall. OnChange birgt grundsätzlich erhebliche Gefahren. Rest wurde bereits gesagt. :???:
|
Re: Edit1.Text Inhalt sperren ?
Zitat:
von einer Seite du hast recht: Es reicht nicht nur OnChange, nun habe ich ich den Befehl einmal Onchange und einmal bei Form OnCreate oder OnShow und damit ist kein Gefahr mehr :thumb: Oder gibt es noch immer noch Gefahr :( Gruß |
Re: Edit1.Text Inhalt sperren ?
Zitat:
|
Re: Edit1.Text Inhalt sperren ?
Hallo,
Zitat:
Gruß Jörg |
Re: Edit1.Text Inhalt sperren ?
Quick stimmt, aber wieso ist das dirty ? :shock: Brauche das zwar nicht, aber vielleicht irgendwann doch. Für den beschriebenen Einzelfall ist ReadOnly wohl schon das Beste, weil das Feld ja nicht geändert werden soll. Ansonsten ist Onchange quick and dirty. Normalerweise ist bei einer Änderung eines Buchstabens in einem Edit kein Aktionismus gefordert. :P
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 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 by Thomas Breitkreuz