AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Nach Showmessage Daten aus einem Editfeld einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

Nach Showmessage Daten aus einem Editfeld einlesen

Ein Thema von kaddy · begonnen am 27. Apr 2003 · letzter Beitrag vom 28. Apr 2003
Antwort Antwort
Seite 1 von 2  1 2      
kaddy

Registriert seit: 8. Apr 2003
Ort: Clausthal
39 Beiträge
 
Delphi 6 Personal
 
#1

Nach Showmessage Daten aus einem Editfeld einlesen

  Alt 27. Apr 2003, 13:37
Hallo Netz,
ich möchte wie oben schon angekündigt nach dem Befehl showmessage Daten aus einem Editfeld einlesen. Hier ist mein code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
per: integer;

begin
 
 //Eingabe der Maschinendaten
 showmessage('Anzahl Maschinen eingeben');
 mac:=strtoint(Eingabefeld.text);

end;
Mein Problem ist nun, dass ich durch die Showmessage dem Benutzer sagen möchte, was er ins EditFeld eingeben soll. Wenn er nun okay klickt, stürtzt der Rechner ab, da er aus dem Editfeld nichts einlesen kann. Wenn ich vorher etwas eingebe funktioniert es, was ich aber nicht möchte. Hat jemand eine Idee. Ich bin nicht auf das showmessage festgelegt. Ich möchte grundsätzlich nur dem Benutzer sagen, was er eingeben soll und er soll dann die Zahlenwerte eingeben. Ich kann aber nicht für alles ein extra Editfeld mit Label bauen, da es zu viele Daten sind.
Danke!
Gruß
Kaddy

[edit=DAniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 27. Apr 2003, 13:47
Moin Kaddy,

das klingt für mich so, als solltest Du noch mal das Layout überarbeiten, wenn alle Eingabefelder ohne Beschriftung sind, so dass eine Meldung erforderlich ist, was einzugeben ist.
Und wenn es so viele Felder sind, dass es zu aufwendig wäre immer ein Label/Static hinzuzufügen, dürfte es für die Anwender recht nervig werden, immer wieder eine Meldung zu erhalten und bestätigen zu müssen.

Das einzige was mir einfiele, wäre ein nicht modales Meldungsfenster, bzw. ein Bereich im Formular, in dem die Meldungen was einzugeben ist angezeigt werden (z.B in einer Statusbar), wobei dann das nicht modale Fenster bei jedem Focuswechsel programmseitig zu schliessen und ein neues zu öffnen wäre.
Das Problem ist halt, dass Du bei einem modalen Meldungsfenster nichts in das Eingabefenster eingeben kannst.
Ausserdem könnte es nichts schaden, wenn den Eingabefeldern noch ein Hint zugeordnet wäre.

Die Exception bei StrToInt kannst Du mit StrToIntDef umgehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#3
  Alt 27. Apr 2003, 13:49
Dein problem ist eigentlich nur, dass du dem Benutzer keine Zeit lässt, etwas einzugeben. Delphi arbeitet die Anweisungen von oben nach unten durch. Bei ShowMessage pausiert das Programm so lange, bis man die meldung schließt. Machs doch so: Zeig die Message ganz normal an. dann lässt du den Benutzer die Daten eingeben und dann machst du beim Onkeydown ereignis des EditFeldes eine Abfrage, ob es die Entertaste war, dann kann er die Daten einlesen. Sprich: Der Benutzer soll einfach seine Eingabe mit Enter bestätigen. Andererseits ginge es doch auch, dass du einfach ein Label nimmst, es auf das Formular setzt, und nach jeder bestätigten Eingabe den Inhalt Änderst, so dass der benutzer immer aktuelle Infos da hat, was er eingeben soll.

man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#4
  Alt 27. Apr 2003, 14:19
Hallo,
eine andere Methode wäre, man läßt das Eingabefeld weg und benutzt InputBox oder InputQuery. Dann hat man Hilfetext und Antwort zusammen.

Bye
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 27. Apr 2003, 14:34
Hallo,

siehe hier.

Grüsse, Daniel
  Mit Zitat antworten Zitat
kaddy

Registriert seit: 8. Apr 2003
Ort: Clausthal
39 Beiträge
 
Delphi 6 Personal
 
#6
  Alt 27. Apr 2003, 15:37
Hallo,
danke Euch für die vielen hilfreichen Antworten. Habe mich für die Variate Label und Enter entschieden. Habe leider aber etwas Probleme sie umzusetzen. Hier mein Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
mac: integer;
per: integer;

begin
 data_init;
 bedarf_init;
 prod_struc_init;

 //Eingabe der Maschinendaten
  Label1.caption:='Anzahl Maschinen eingeben';
  TForm1.EingabefeldKeyDown(Sender,key,shift);
  mac:=strtoint(Eingabefeld.text);

end;



procedure TForm1.EingabefeldKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key =13 then
end;
Was mache ich falsch? Er kann nicht complieren und springt auf key.
Danke!
Kaddy 8)
[edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 27. Apr 2003, 15:43
Moin Kaddy,

der Fehler wird wohl in dieser Zeile geliefert:

TForm1.EingabefeldKeyDown(Sender,key,shift); Du kannst zwar die Methode KeyDown auch direkt aufrufen, aber musst dazu natürlich die Parameter mit übergeben.
Das heisst statt Sender,key,Shift musst Du die entsprechenden Werte angeben. Bei Sender hast Du nur Glück gehabt, dass Du die Methode aus einer anderen Methode, die Sender als Parameter erhält, aufgerufen hast, ansonsten wäre die Meldung schon bei Sender gekommen.

Was mir nicht so ganz klar ist:
Was willst Du mit dem Aufruf überhaupt bewirken?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#8
  Alt 27. Apr 2003, 15:44
Du muss #13 schreiben, sonst meint er dass du eine Integer Zahl willst und Word und Integer passt nicht zusammen.

schmarrn. vergiss, was ich grad geschrieben hab. is totaler müll

man liest sich Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9
  Alt 27. Apr 2003, 15:48
Zitat von Stanlay Hanks:
Word und Integer passt nicht zusammen.
Informier dich bitte mal über ganzzahl Datentypen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 27. Apr 2003, 15:50
Moin Stanlay,

Zitat von Stanlay Hanks:
...und Word und Integer passt nicht zusammen
Doch, warum nicht? Es handelt sich bei beiden Datentypen um ganzzahlige Typen, nur dass eben Word einen kleineren Wertebereich hat. Word 16 Bit ohne Vorzeichen, integer (bei 32 Bit Compilern) 32 Bit mit Vorzeichen.

@Kaddy:
Wenn ich mir so Deinen Code ansehe stellt sich mir eine Frage:
Kann es sein, dass Du bislang noch nicht mit ereignisgesteuerten Programmen gearbeitet hast?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 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