Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Editfeld verschwinden lassen und wieder aufrufen
Financeflash - Di 02.02.10 18:01
Titel: Editfeld verschwinden lassen und wieder aufrufen
Hi
Ich möchte auf meiner Oberfläche nur ein Button haben. Wenn ich auf diesen drauf klicke, dann soll mein Editfeld erscheinen.
DANKE für die hoffentlich richtige Lösung
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Di 02.02.2010 um 17:23
Blackheart666 - Di 02.02.10 18:04
Schau dir mal die Eigenschaft Visible an.
Financeflash - Di 02.02.10 18:07
danke
---
Moderiert von
Narses: Beiträge zusammengefasst---
Das ist mein Programm. Und zwar will ich einen Namen eingeben und diesen dann dem TString zuweisen. Danach soll nach dem man den Button betätigt hat sich das gleiche Fenster nochmal öffnen und der nächste Nme soll dem TString zugewiesen werden.
Leider funktioniert das mit den Editfeldern nicht. Die sind zwar weg, aber der mekert immer noch, dass ich dort was eingeben soll.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| unit Uohg;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; edGesellschafter: TEdit; btnBestaetigen: TButton; lbName: TLabel; edName: TEdit; lbKapital: TLabel; edKapital: TEdit; lbAufforderung: TLabel; procedure btnBestaetigenClick(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
var SVa:array[0..20] of string; SVb:array[0..20] of single;
procedure TForm1.btnBestaetigenClick(Sender: TObject); var count:integer;Name:string; begin if StrToInt(edGesellschafter.Text) > 20 then ShowMessage('Maximale Anzahl der Gesellschafter überschritten!') else begin for count:=1 to StrToInt(edGesellschafter.Text) do begin edKapital.Visible:=true; edName.Visible:=true; lbAufforderung.Caption:='Bitte geben die für jeden Gesellschter den Namen und das eingebrachte Kapital an!'; lbName.Caption:='Name des Gesellschafters:'; lbKapital.Caption:='eingebrachtes Kapital:'; SVa[count]:=edName.Text; SVb[count]:=StrToFloat(edKapital.Text); end; end; end; end. |
Sinspin - Di 02.02.10 21:31
Hallo und :welcome: in der EE!
Dein Quelltext macht genau das was du ihm aufgetragen hast. Sicherlich ist es aber etwas anderes was du von deinem Programm erwartest.
Als erstes würde ich dir als Anfänger (nicht bös gemeint) den
Crashkurs [
http://www.delphi-library.de/viewtopic.php?t=37446&start=0&postorder=asc&highlight=crashkurs] von Christian Stelzmann ans Herz legen.
Nun zu deinem Problem.
Du möchtest das dein Nutzer ein Anzahl von Namen und Wertepaaren eingibt. Bisher hat er dazu ja aber keine Chance da du die Eingabefelder erst sichtbar machst wenn du die Werte auch schon ausliest.
Fang doch besser erstmal so an das die Eingabefelder immer sichtbar sind.
Als weiteres brauchst du dafür auch keine Schleife. Du merkst dir lediglich wieviele Namen und Wertepaare er schon eingegeben hat. Den Wert kannst du ja auch anzeigen so das der Nutzer weis wieviele noch kommen.
Jedsmal wenn er auf einen Button clickt übernimmst du die Werte und erhöhst den Zähler dafür um eins. Und machst die Eingabefelder leer, so sieht er gleich das es die Daten übernommen wurden.
Nebenbei :
- Variablen speichert man nicht global sondern unter private in der Klasse. Das gillt dann auch für deine Zählvariable.
- Warum scheibst du die Texte für die Label erst im Quelltext? Die kannst du doch auch über den Designer eingeben. Wenn es dir ums unsichtbar machen geht. Visible gibt es auch bei Labeln.
- Was meints du mit TString? Das gibt es in deinem Quelltext nirgendwo. Falls es dir um eine StringListe geht heißt die TStringList. Mit der Klasse TString kann man nicht arbeiten.
Financeflash - Mi 03.02.10 17:00
Mein Problem ist:
Ich will zwie Editfelder haben und einen Button.
Ins erste Editfeld gebe ich den Namen ein und ins zweite sein Kapital.
Wenn ich auf den Button klicke sollen die Eingaben gespeichert werden und die Editfelder wieder gelöscht werden.
Wenn es 5 Bewerber sind muss dies 5 mal geschehen und am Ende will ich alles in einer Tabelle ausgeben.
Ich komme einfach nicht weiter.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!