Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kann nicht in edit schreiben (https://www.delphipraxis.net/73936-kann-nicht-edit-schreiben.html)

Executor 25. Jul 2006 20:33


Kann nicht in edit schreiben
 
Hi all, hab da nur n kleines Problem, was ich noch nie hatte, und deshalb auch nicht lösen kann -.-

Ich hab da son edit, wenn ich da rein schreiben will, wird jeder alte Buchstabe durch einen neuen erstetzt (also steht immer nur ein Buchtsabe drin :(

Hoffe ihr könnt mir helfen

Executor

mkinzler 25. Jul 2006 20:35

Re: Kann nicht in edit schreiben
 
Was für einen Wert hat .MaxLength?

faux 25. Jul 2006 21:09

Re: Kann nicht in edit schreiben
 
Zitat:

Zitat von mkinzler
Was für einen Wert hat .MaxLength?

Dann würde IMHO nur ein *ding* kommen, aber nichts ersetzt werden.
Ich tippe mal darauf, dass Ins/Einfg aktiviert ist. Sonst poste mal den OnEdit- oder OnKeyDown/Press-Code, falls es einen gibt.

Grüße
Faux

mkinzler 25. Jul 2006 21:16

Re: Kann nicht in edit schreiben
 
Es könnte auch an .AutoSelect liegen.

Executor 26. Jul 2006 02:25

Re: Kann nicht in edit schreiben
 
Also .MaxLength ist auf 0.

Delphi-Quellcode:
procedure TForm1.edit2KeyPress(Sender: TObject; var Key: Char);
begin

  if key = #13 then SendClick(Self);
  edit2.Text:='';

end;
und:
Delphi-Quellcode:
procedure TForm1.SendClick(Sender: TObject);
var Text:string;
    i:integer;
begin

  BroadCast('System',edit2.Text);

end;
sry Broadast ist folgende :lol:
Delphi-Quellcode:
procedure TForm1.Broadcast(const Name, Text: String);
begin

  memo1.Lines.Add(Name+': '+Text);
  ClientSend('Said'+#13+Name+#13+Text+#13);

end;
Die Procedure ClientSend kann ich auf Anfrage auch posten^^
Aber das mit dem edit kapier ich einfach net :roll:

Matze 26. Jul 2006 05:43

Re: Kann nicht in edit schreiben
 
Hi

Zitat:

Zitat von Executor
Aber das mit dem edit kapier ich einfach net :roll:

Aber ich. ;)

Du hast (ich formatiere es einmal um) das hier:

Delphi-Quellcode:
procedure TForm1.edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
    SendClick(Self);

  Edit2.Text := '';
end;
Du leerst das Edit also im OnKeyPress. Um mehrere Bedingungen einer if-Abfrage zuordnen zu können, müssen diese in einen begin-end-Block eingefasst werden:

Delphi-Quellcode:
procedure TForm1.edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    SendClick(Self);
    Edit2.Text := '';
  end;
end;

Executor 26. Jul 2006 22:11

Re: Kann nicht in edit schreiben
 
Die Procedure hat ja funktioniert, aber danke, ich werde sie ausbessern.

Also das mit dem Edit is so:

Ich schreibe meinetwegen ein "a", wenn ich jetzt ein "b" schreiben will, wird das "a" durch das "b" ersetzt -> ergo kann ich nur ein zeichen in das edit eintippen.
Wieso? :wall:
Hoffe ihr könnt mir helfen
bis dann
Executor

NecroWurst 27. Jul 2006 08:33

Re: Kann nicht in edit schreiben
 
Hi!

Die Prozedur hat sicher bei dem Drücken der Enter-Taste perfekt funktioniert. Nur wenn du einen Beitrag weiter oben liest, siehst du auch den Fehler:

Dein Originalcode
Delphi-Quellcode:
procedure TForm1.edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then // Wenn die Taste Enter gedrückt wurde
    SendClick(Self); // Dann soll er SendClick() ausführen

  Edit2.Text := ''; // Da diese Zeile nicht im If-Block steht
                     // wird diese Anweisung immer im OnKeyPress ausgelöst, bei jeder Taste
end;
Und da natürlich dein 'a' im Edit schon drinne stand, wird das Edit geleert und dein 'b' nun reingeschrieben. Korrektur findest du im Beitrag von Matze!

Executor 28. Jul 2006 01:21

Re: Kann nicht in edit schreiben
 
Hey Cool!
Es geht!
Da wär ich nie drauf gekommen... :zwinker:

Danke danke =)

Man sieht sich :-D

Executor


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