Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Edit1 Löschen (https://www.delphipraxis.net/172913-edit1-loeschen.html)

GanjalfDerGruene 28. Jan 2013 17:08

Edit1 Löschen
 
Moin moin, Hier mal mein erster Post:
Ich bin nen relativer Delphi-Anfänger (hatten wir jetzt 1/2 Jahr in der Schule, hat aber nicht so viel gebracht). Jedenfalls wollte ich jetzt in einem Programm nen Feld machen, wo man nur Zahlen eingeben kann, und wenn man was anderes eingibt diese gelöscht werden.
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
var entfernung:integer;
begin
       if not (Key in ['0'..'9']) then
         begin
           Edit1.Clear;
           Edit1.Text:='0';
           Edit4.Text:='Nur Zahlen ohne Komma eingeben!';
         end;
end;
Doch das Problem ist, dass, wenn ich zb "a" eingebe dann da "a" und nicht "0" Steh - und hier komm ich nicht weiter (Lazarus 1.0.4).

DeddyH 28. Jan 2013 17:10

AW: Edit1 Löschen
 
Hallo und Willkommen in der DP :dp:,

wenn Du den Text neu zuweist, kannst Du Dir das Clear auch sparen. Und ist die Methode auch dem Ereignis zugewiesen (im Objektinspektor kontrollieren)? Hast Du einmal einen Haltepunkt gesetzt, und wenn ja, wird dort auch angehalten?

[edit] Achso, jetzt habe ich das erst richtig verstanden. Entwerte einmal ungültige Zeichen, indem Du Key auf #0 setzt.
Delphi-Quellcode:
if not (Key in ['0'..'9']) then
  begin
    Key := #0;
    (Sender as TEdit).Text := '0';
  end;
[/edit]

GanjalfDerGruene 28. Jan 2013 17:19

AW: Edit1 Löschen
 
Erstmal Danke :D

und Wow, das ging ja verdammt schnell (und es Funktioniert auch noch super)! Vielen Dank! So ein Forum hat man gerne :D

DeddyH 28. Jan 2013 17:21

AW: Edit1 Löschen
 
Schnell? Ich hab immerhin 2 Minuten gebraucht :mrgreen:

haentschman 28. Jan 2013 18:21

AW: Edit1 Löschen
 
OT:
Du wirst alt... :mrgreen: Tröste dich, ich hätte 5 Minuten gebraucht... :oops:

GanjalfDerGruene 28. Jan 2013 19:55

AW: Edit1 Löschen
 
^^ weis nicht, ob ich dazu nen neuen Thread aufmachen sollte, jedenfalls möchte ich jetzt dass das Programm aus einer Datei daten ausliest und beim betätigen des Buttons die eingegebenen Daten so aufschreibt..
es sollte in etwa so aussehen:
4Werte w,x,y,z
die sollen so etwa gespeichert werden
Code:
w=Heinz
x=123
y=14241
z=9034

w=Udo
x=...
, also dass man wenn man speichern drückt das so gespeichert wird (und, fällt mir grade ein, auf doppelgänger prüft).
Beim auslesen ist es so gedacht dass die werte dann gleich in Variablen umgewandelt werden.
Bei mir ist das problem dass ich das Speichern nicht hinbekomme, fürs Auslesen hätte ich dann die idee gehabt dass w (udo/heinz) in eine Listbox zugefügt wird und die xyz in entsprechenden edits ausgegeben werden.... oh gott, was will ich denn hier von euch :D

Da ich zwar anfänger bin aber es vom Prinzip her verstehe würde ich es jetzt mal so weit basteln wie ich kommen würde...

Speichern der Daten (Funktioniert aber nicht ^^) (gunname,speed etc werden aus diversen Edits in einer anderen Funktion geladen):
Delphi-Quellcode:
procedure TForm1.SpeichernClick(Sender: TObject);
var gunname,speed,caliber,weight: string;
var Datei: TextFile;
var liste: TStringList;
var zeilennr: integer;
var i: integer;
begin
  liste:=TStringList.Create;
  liste.LoadFromFile('Daten.txt');
    for zeilennr:=0 to liste.Count-1 do
      begin
        if liste[zeilennr]='#' then
          liste[zeilennr].Add(gunname);
          inc(zeilennr);
          liste[zeilennr].Add(speed);
          inc(zeilennr);
          liste[zeilennr].Add(caliber);
          inc(zeilennr);
          liste[zeilennr].Add(weight);
          inc(zeilennr);
          liste[zeilennr].Add('#');
      end;

  liste.SaveToFile('Daten.txt');
  liste.Free;
end;
Laden: Da hab ich grade Blackout...
Ich sag schonmal Tausend Dank wenn hier jemand seine wertvolle Zeit investiert. Bin dann mal für meine morgige Lateinarbeit lernen... Wünsch euch einen schönen Abend!
Grüße Sven

DeddyH 28. Jan 2013 20:14

AW: Edit1 Löschen
 
Was sind das denn für Daten? Ausschließlich Strings? Wenn ja, wie lang maximal? Auf den ersten flüchtigen Blick denke ich, da kommen typisierte Dateien oder TIniFile in Betracht, aber dazu bräuchte man etwas genauere Infos.

GanjalfDerGruene 28. Jan 2013 20:38

AW: Edit1 Löschen
 
Alles außer dem "gunname" (string) ist alles real (von 0.0- ca 1500.0). Wenn du Noch genauere Infos brauchst musst du leider bis morgen warten, ich geh schlafen

in diesem Sinne - Gute Nacht

Edit: das # war als Orientierung gedacht (neue gruppe)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz