versuche eine if Anweisung umzusetzen! Bin aber auf dem Holzweg

Oh....
Wenn das (Edit35) 7 Zeichen erreicht hat, soll das Feld gesperrt werden. (enable:= false)
Code: Alles auswählen
if Edit35.MaxLength <=6 then begin
Code: Alles auswählen
if Edit35.MaxLength <=6 then begin
Code: Alles auswählen
if Length(Edit35.text) > 6 then
for I := 1 to Length(Edit35.text) do
begin
Code: Alles auswählen
procedure TForm3.BitBtn13Click(Sender: TObject);
var
i: Integer;
begin
Memo1.Color:=clred;
Memo1.Font.Color:=clblack;
Memo1.Enabled:= true;
if Application.MessageBox('Alarm- Text auslösen?', 'Hinweis', MB_ICONINFORMATION or MB_OKCANCEL or MB_DEFBUTTON2) = IDOK
then begin
if (ComboBox7.Text='a')or(ComboBox7.Text='b')or(ComboBox7.Text='c')or(ComboBox7.Text='d')then begin
if Length(Edit35.Text) > 6 then begin
for I := 1 to Length(Edit35.text) do
begin
Showmessage('Test');
Edit35.Clear;
end;
end else
Showmessage('Feuer');
Memo1.Color:=clwhite;
Memo1.Font.Color:=clblack;
Memo1.Enabled:= false;
end else begin
Showmessage('Fehler');
Memo1.Color:=clwhite;
Memo1.Font.Color:=clblack;
Memo1.Enabled:= false;
end;
end else begin
Memo1.Color:=clwhite;
Memo1.Font.Color:=clblack;
Memo1.Enabled:= false;
end;
end;
Nehmen wir mal an, Edit35.text hat eine Länge von 100, dann wird "ShowMessage" und "Edit35.Clear" 100mal aufgerufen! Bei "for I := 1 to Length(Edit35.text)" wird nur 1mal "Length(Edit35.text)" ausgewertet und dieser Wert wird für die Schleife genutzt.aldi hat geschrieben:Code: Alles auswählen
for I := 1 to Length(Edit35.text) do begin Showmessage('Test'); Edit35.Clear; end;
Code: Alles auswählen
...
if Length(Edit35.Text) > 6 then begin
// for I := 1 to Length(Edit35.text) do
// begin
Showmessage('Test');
Edit35.Clear;
// end;
end else
Showmessage('Feuer');
...
m.fuchs hat geschrieben:Falls du nur möchtest, dass der Benutzer nciht mehr als 6 Zeichen eingeben kann (diese aber sehr wohl wieder löschen und bearbeiten), dann solltest du im Objektinspektor MaxLength auf den entsprechenden Wert setzen.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Naja, das ist nun auch übertrieben. Der eine oder andere Poster wird ja vielleicht doch noch lernwillig.Christian hat geschrieben:LoL es gibt Tage an dem ich mir jemand wünschen würde der Schwachsinnige Threads löscht.
Allerdings funktioniert das nicht mehr, wenn Umlaute oder andere Unicode-Zeichen enthalten sind, die mit 2 Byte kodiert sind. In diesem Fall hilft UTF8Length() aus der Unit LauUTF8.aldi hat geschrieben:das ist die Lösung!
Code: Alles auswählen
if Length(Edit35.text) > 6 then