Autor Beitrag
rob87
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Mo 04.12.06 10:43 
Hallo,


mein Problem ist folgendes:

Ich möchte, dass in einem Edit-Feld nur Integer mit max 3 Stellen eingetragen werden können. Ansonsten soll beim Bestätigen der Eingabe eine mtWarning erscheinen und der Vorgang muss wiederholt werden.

Des Weiteren würd ich gerne wissen, wie ich es schaffe, durch Klick eine RadioGroup aus einem anderen Formular auf Visible zu setzen.


Vielen Dank im Voraus


PS: Ich bin ein Laie ;-)
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mo 04.12.06 10:50 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Edit1KeyPress(Sender: TObject; Key: Char; ...);
begin

 if key = vk_bla then  //richtigen Tastaturcode hier einsetzen. Einfach mal hier im Forum suchen, da gibts irgendwo ne Tabelle.
  begin

   //was passieren soll wenn das eingegebene Zeichen richtig ist. Du musst die weitere if Fragen einfügen für jedes Zeichen also 1 - 9 und 0. Ne Case-Anweisung wäre für dich evtl. auch Interessant.

  end
 else
  begin

   ShowMessage('Bitte nur Zahlen von 1 - 9 eingeben!');

  end;

end;


//---------------------------
form2.radiogroup1.visible := true;
DaKirsche
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187

Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
BeitragVerfasst: Mo 04.12.06 10:58 
Also zumindest bei einem MaskEdit kannst du mit der Eigenschaft Mask die Eingabemaske auf Zahlen festlegen, so dass nur Zahlen eingegeben werden können.
Die Länge kannst du mit MaxLenght festlegen glaube ich :)

Das Ansprechen eines 'Objektes eines anderen Formulars schaffst du mit "FormName.ObjekName.Eigenschaft:=Option"...Dann musst du halt die entsprechende Unit unter Uses einbinden....

_________________
Die simpelsten Fehler sind meist die Schwersten...
rob87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Mo 04.12.06 11:01 
user profile iconAndreas L. hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Edit1KeyPress(Sender: TObject; Key: Char; ...);
begin

 if key = vk_bla then  //richtigen Tastaturcode hier einsetzen. Einfach mal hier im Forum suchen, da gibts irgendwo ne Tabelle.
  begin

   //was passieren soll wenn das eingegebene Zeichen richtig ist. Du musst die weitere if Fragen einfügen für jedes Zeichen also 1 - 9 und 0. Ne Case-Anweisung wäre für dich evtl. auch Interessant.

  end
 else
  begin

   ShowMessage('Bitte nur Zahlen von 1 - 9 eingeben!');

  end;

end;


//---------------------------
form2.radiogroup1.visible := true;



------------------------------------------- EDIT ---------------------------

//-- Weiter-Button --
procedure TForm2.B4Click(Sender: TObject);
begin
Form2.Visible := false;
Form3.Visible := true;
case Form2.RG1.ItemIndex of
0 : Form3.RG1.Visible := true;
1 : Form3.RG2.Visible := true;
end;
end;


Das ist mein Quelltext für die Öffnung des weiteren Formulares.
Aber damit funktioniert es leider auch nicht. Irgendwo hab ich noch nen kleinen Fehler. Ein Visible := true oder ein Visible := false vergessen oder zuviel. Mit Sicherheit nur ne Kleinigkeit.

----------------------------------


Aber den ersten Teil hab ich leider nicht ganz verstanden. "if key = vk_..."??

Gibt es da einen Code, der mir sagt, wieviel Integer-Stellen ich haben darf? Und dann brauch ich ja nur noch die Edit-Abfrage.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mo 04.12.06 11:06 
Benutz bitte demnächst die Delphi-Tags.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
//-- Weiter-Button --
procedure TForm2.B4Click(Sender: TObject);
begin
 Form3.show;
 Form2.hide;
 case Form2.RG1.ItemIndex of   //sicher das der ItemIndex auch nur 0 oder 1 haben kann?
  0: Form3.RG1.Visible := true;
  1: Form3.RG2.Visible := true;
 end;
end;


Mit ist an deinen Code nur das Hervorgehobene aufgefallen das ich ja verbessert habe. Was geht denn nun nicht? bekommst du eine Fehlermeldung? Was spricht der Compiler?
rob87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Mo 04.12.06 11:13 
An DaKirsche:

MaxLength is nun klar. Aber da muss ich ja dann die Fehlermeldung von Delphi hinnehmen, oder? Da kann ich ja dann keine eigene Fehlermeldung gestalten.


Aber wo find ich des MaskEdit? Im Objektinspektor oder als Programmierbefehl?

Und was geb ich da ein?

---------------------

An Andreas:

Ich habe in dem neuen Formular zwei RadioGroups, welche ich in der Entwicklungsphase deckungsgleich hingerichtet habe. Und nun macht er mir bei der einen Auswahl-Variante die richtige Visible-Funktion sprich: er setzt das nächste Formular mit der richtigen RG im Vordergrund. Das ist genau die RG, welche in der Entwicklung "oben" ist.

Und bei der anderen Auwahl arbeitet der Compiler und bringt weder das nächste Formular, noch die richtige RG.

Ich hoffe, ich konnte alles verständlich erklären. ;-)


Zuletzt bearbeitet von rob87 am Mo 04.12.06 11:32, insgesamt 1-mal bearbeitet
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mo 04.12.06 11:21 
Zitat:
MaskEdit? Im Objektinspektor oder als Programmierbefehl?
Ist eine Komponenten (TMaskEdit)
Zitat:
MaxLength is nun klar. Aber da muss ich ja dann die Fehlermeldung von Delphi hinnehmen, oder? Da kann ich ja dann keine eigene Fehlermeldung gestalten.
Du kannst den Fehler durch einen try..except Block abfangen und dann deine eigene Fehlermeldung ausgeben.

_________________
Markus Kinzler.


Zuletzt bearbeitet von mkinzler am Mo 04.12.06 11:39, insgesamt 1-mal bearbeitet
rob87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Mo 04.12.06 11:33 
Titel: An Andreas
Formular und RadioGroup-Fehler ist behoben!!!


Ich hab einfach am Anfang des neuen Formulares beide RG's auf Visible := false gesetzt. ;-)


Trotzdem vielen Dank.