![]() |
Einstellungen im Editfenster
Hallo
kann man im Editfenster einstellen, dass man nur ein Zeichen eingeben darf und es nur in Blockbuchstaben geschrieben werden kann danke im Voraus |
Re: Einstellungen im Editfenster
Zur Länge schau Dir mal MaxLength an, aber was meinst Du mit Blockbuchstaben?
|
Re: Einstellungen im Editfenster
dass er nur Großbuchstaben ausgibt ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
Re: Einstellungen im Editfenster
Stell CharCase auf ecUpperCase.
|
Re: Einstellungen im Editfenster
gut danke :thumb: :firejump:
kann man eigentlich auch sagen, dass er die Einstellungen auf für mehrere Editfenster übernehmen soll?? :?: |
Re: Einstellungen im Editfenster
Klar, so geht das per Code.
Sucht sich alle Editfelder, welche nach dem Standard benannt sind ;)
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; const Name = 'Edit'; begin for i := 1 to ComponentCount do begin if Components[i-1].ClassName = 'TEdit' then with TEdit(FindComponent(Name + IntToStr(i))) do begin MaxLength := 10; CharCase := ecUpperCase; end; end; end; |
Re: Einstellungen im Editfenster
Zitat:
|
Re: Einstellungen im Editfenster
Oder du markierst die entsprechenden Edit's in der Objekt-Hirarchie und verstellst dann im ObjektManager die Einstellungen, dann wird das für alle markierten Edit's entsprechend übernommen.
|
Re: Einstellungen im Editfenster
ja so würde es auch gehen, habe es mal bei einem Button gemacht und dann hat er mir die ganze Zeit Fehlermeldungen ausgegeben :?: keine Ahnung warum
würde es auch mit For-Schleife gehen so z.b:
Delphi-Quellcode:
var x : integer
begin for x:=1 to 3 do edit[x]:= edit[x].text:= 'Hallo' end. |
Re: Einstellungen im Editfenster
Zitat:
|
Re: Einstellungen im Editfenster
Liste der Anhänge anzeigen (Anzahl: 1)
naja, habe ich mir nur so nebenbei gedacht, aber es sollte für die Edit[1-3] in den Text zb. Hallo schreiben
Zitat:
er gibt mir die Fehlermeldung aus |
Re: Einstellungen im Editfenster
Delphi-Quellcode:
Ungetestet.
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; begin for i := 1 to 3 do begin with TEdit(FindComponent('Edit' + IntToStr(i))) do begin MaxLength := 10; CharCase := ecUpperCase; Text := 'Hallo'; end; end; end; |
Re: Einstellungen im Editfenster
Wie heissen denn deine Edits? Falls du den Source von quendolineDD verwendest, müssen deine Edits mit "Edit" anfangen und durchnummeriert werden: Edit1, Edit2, ...
|
Re: Einstellungen im Editfenster
genau :thumb: super :firejump:
@ArmyMan: sie heißen eh alle und Edit1, Edit2, ... |
Re: Einstellungen im Editfenster
entschuldige meine vielen Fragen, aber das ist ja hoffentlich zu Silvester nicht verboten
1.kann man wenn man in ein Editfenster ein Zeichen hineinschreibt, man aber ein zweites Zeichen schreibt, dass der Rechner dann auf das nächste Editfenster umspringt? 2.wie kann man mit den Pfeiltasten die Edits rauf und hinunter fahren? guten Rutsch! |
Re: Einstellungen im Editfenster
...relativ einfach.
zu 1. - im ONChange die Länge des Strings abfragen. - ist Länge > 1 dann setze Focus auf nächstes Edit Feld. zu 2. - im OnKeyDown / OnKeyUp virtuellen Tastencode abfragen. - bei Übereinstimmung SetFocus nächstes Feld. ...mit diesen Stichwörtern solltet Du was anfangen können... :hi: Guten Rutsch alle miteinander... :party: |
Re: Einstellungen im Editfenster
anfangen ja, nur umsetzten nicht wirklich
1.
Delphi-Quellcode:
oder wie
if edti1.text<1 then..
2. schaffe nicht einmal den Anfange :pale: :pale: :duck: |
Re: Einstellungen im Editfenster
Hi,
du meinst bestimmt Length
Delphi-Quellcode:
if Length(Edit1.Text)> 1 then
|
Re: Einstellungen im Editfenster
Wenn es für alle TEdits gelten soll, kann man es im FormCreate so machen:
Delphi-Quellcode:
Dann lässt sich nur ein Zeichen eingeben und Buchstaben werden großgeschrieben. Andere Zeichen werden im OnKeyPress abgefangen. Vielleicht so:
procedure TForm1.FormCreate(Sender: TObject);
var i : Integer; ... begin ... for i := 0 to ComponentCount - 1 do begin if Components[i] is TEdit then with (Components[i] as TEdit) do begin MaxLength := 1; CharCase := ecUpperCase; Text := ''; OnKeyPress := EditKeyPress; end; end; ... end;
Delphi-Quellcode:
Bei der Form1 sollte unter private noch
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin case Key of #0.. #7 : Key := #0; // Steuerzeichen #9..#31 : Key := #0; // Steuerzeichen #34 : Key := #0; // " #42 : Key := #0; // * #47 : Key := #0; // / #58 : Key := #0; // : #60 : Key := #0; // < #62 : Key := #0; // > #63 : Key := #0; // ? #92 : Key := #0; // \ #124 : Key := #0; // | #127 : Key := #0; // Sonderzeichen #129 : Key := #0; // Sonderzeichen #131..#195 : Key := #0; // Sonderzeichen #197..#213 : Key := #0; // Sonderzeichen #215..#219 : Key := #0; // Sonderzeichen #223 : Key := #0; // ß #224..#227 : Key := #0; // Sonderzeichen #229..#245 : Key := #0; // Sonderzeichen #247..#251 : Key := #0; // Sonderzeichen #253..#255 : Key := #0; // Sonderzeichen end; end;
Delphi-Quellcode:
deklariert werden.
procedure EditKeyPress(Sender: TObject; var Key: Char);
|
Re: Einstellungen im Editfenster
und warum nicht so !
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char); begin case Key of #65..#90 : begin end; else key := #0; end; end; |
Re: Einstellungen im Editfenster
Geht natürlich auch. Und wenn Du schon minimierst, kannst Du das "begin end" auch weglassen. Das ";" reicht.
|
Re: Einstellungen im Editfenster
So fände ich es besser lesbar:
Delphi-Quellcode:
if not (Key in ['A'..'Z']) then
Key := #0; |
Re: Einstellungen im Editfenster
Zitat:
was bewirkt das := #0 @bitsetter ja genau, nur wie soll ich dem Programm dann sagen, dass er ins nächste Feld umspringen soll? alles Gute im Neuen Jahr |
Re: Einstellungen im Editfenster
Zitat:
Delphi-Quellcode:
Perform(WM_NEXTDLGCTL,0,0)
|
Re: Einstellungen im Editfenster
Sorry, hab die 2. Seite nicht gesehen
|
Re: Einstellungen im Editfenster
Hallo...
Zitat:
... nimm es raus und du wirst hören... :-D Zitat:
ein bestimmtes Feld 'anspringen' z.B. mit...
Delphi-Quellcode:
Edit1.SetFocus;
... noch eine Variante:
Delphi-Quellcode:
...Delphi Hilfe ---> virtuelle Tastencodes
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if key = VK_ESCAPE then --mach nichts; if key = VK_RETURN then --mach was; if key = VK_UP then --gehe zum nächsten Edit; end; :hi: |
Re: Einstellungen im Editfenster
aha, mit ein bischen Grübeln werde ich hoffentlich jetzt was zu Stande bringen, wenn nicht, dann hört ihr sicher wieder von mir :wink:
kann man es nicht auch so schreiben?
Delphi-Quellcode:
@DeddyH die Briefmarke hat mir besser gefallen :( :(
case key of
#1:=; //mach nichts |
Re: Einstellungen im Editfenster
Zitat:
Delphi-Quellcode:
was so viel ist wie:
...
with (Components[i] as TEdit) do begin ... OnKeyPress := EditKeyPress; end; ... end;
Delphi-Quellcode:
Das bedeutet, dem Ereignis OnKeyPress des TEdits wird die Procedure EditKeyPress zugewiesen. Heißt, wenn das Edit den Focus hat und eine Taste wird gedrückt wird diese Procedure ausgeführt.
(Components[i] as TEdit).OnKeyPress := EditKeyPress;
|
Re: Einstellungen im Editfenster
Zitat:
[edit] Zitat:
Delphi-Quellcode:
[/edit]
case key of
#1:; //mach nichts (ohne Gleichheitszeichen) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04: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-2025 by Thomas Breitkreuz