Autor |
Beitrag |
Purzel90
Hält's aus hier
Beiträge: 4
|
Verfasst: Mi 27.02.08 21:45
Hallo
Ich habe folgendes Problem:
Ich habe einen Button, der nur Anklickbar sein soll wenn eine Eingabe in einem edit-Feld besteht.
Danke im Vorraus!
--
Gruß Purzel90
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Mi 27.02.08 21:52
Im Edit gibt ein Eregnis OnChange, das ausgelöst wird, wenn sich der Inhalt ändert.
Mit der Eigenschaft enabled vom Button kannst du einstellen, ob er aktiviert is.
Dann einfach den Inhalt des Edits mit nem Leerstring vergleichen und Enabled zuweisen.
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Mi 27.02.08 21:56
Hi und  im Delphi-Forum,
Die Eigenschaft, die du suchst ist Enabled:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.Edit1Change(Sender: TObject); begin if Edit1.Text = '' then Button1.Enabled := false; else Button1.Enabled := true; end; |
Das ist es im groben.
Edit: Zu langsam...
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Mi 27.02.08 21:59
Nein, bitte nicht so!
Du übergribst deiner if-Bedingung schon einen Boolean-Wert, wozu das if?
Delphi-Quelltext 1:
| Button1.Enabled:=not (Edit1.Text = '') |
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
Purzel90 
Hält's aus hier
Beiträge: 4
|
Verfasst: Mi 27.02.08 22:21
Danke für die schnellen Antworten!
--
Gruß Purzel90
|
|
Hanni007
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 04.02.11 19:37
Hallo!
Irgendwie klappt das bei mir nicht. Ich verwende gerade Delphi6 aber habe auf dem andren PC noch Delphi7, an dem ich gerade leider nicht ran komme. Naja.
Mein Problem hier konkret ist, dass ich zwei Editfelder habe, die erst, wenn in denen eine Zahl steht, einen Button aktivieren sollen. Dazu habe ich hier diese eingabe versucht.
Button1.Enabled:=not (Edit1.Text = '')
Aber das klappt leider nicht. Könnt ihr mir da bitte weiterhelfen, indem ihr den Befehl exakt aufschreibt? Ich programmiere erst seit kurzem mit Delphi.
Danke! =)
Hanni007
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Fr 04.02.11 19:46
Delphi-Quelltext 1:
| Button1.Enabled:=Length(TRIM( (Edit1.Text)) > 0; |
und schau Dir mal Actions an, die würden sich empfehlen.
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Crombo
      
Beiträge: 54
Erhaltene Danke: 8
Windows 7, Windows Vista, Windows XP
Delphi XE Architect, Visual Studio 2010 Professional
|
Verfasst: Fr 04.02.11 19:55
bummi hat folgendes geschrieben : | Delphi-Quelltext 1:
| Button1.Enabled:=Length(TRIM( (Edit1.Text)) > 0; |
und schau Dir mal Actions an, die würden sich empfehlen. |
Hallo,
nach über 2 Jahren wird ihn das wohl in dem Projekt nicht mehr weiterbringen, aber guter Vorschlag für alle, die jetzt den Thread hier lesen.
Crombo
_________________ one day your life will flash before your eyes. make sure it's worth watching
Für diesen Beitrag haben gedankt: bummi
|
|
Hanni007
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 04.02.11 20:02
geht das jetzt nun oder nicht?
Trotzdem schonmal danke! =)
|
|
Crombo
      
Beiträge: 54
Erhaltene Danke: 8
Windows 7, Windows Vista, Windows XP
Delphi XE Architect, Visual Studio 2010 Professional
|
Verfasst: Fr 04.02.11 20:10
Der Vorschlag von bummi:
Delphi-Quelltext 1:
| Button1.Enabled:=Length(TRIM( (Edit1.Text)) > 0; |
sollte funktioniert.
Crombo
_________________ one day your life will flash before your eyes. make sure it's worth watching
|
|
Hanni007
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 04.02.11 20:13
das geht leider nicht. da kommt ein error auf.
[Error] Unit1.pas(50): Incompatible types: 'String' and 'Integer'
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Fr 04.02.11 20:15
Hanni007 hat folgendes geschrieben : | das geht leider nicht. da kommt ein error auf.
[Error] Unit1.pas(50): Incompatible types: 'String' and 'Integer' |
Meine Glaskugel ist gerade etwas vernebelt. Zeigst Du ins bitte Deinen Code, denn der Code-Schnippsel sollte definitiv funktionieren.
Alternativ nocheinmal selbst drüber sinnieren. 
Zuletzt bearbeitet von Marc. am Fr 04.02.11 20:17, insgesamt 2-mal bearbeitet
|
|
Crombo
      
Beiträge: 54
Erhaltene Danke: 8
Windows 7, Windows Vista, Windows XP
Delphi XE Architect, Visual Studio 2010 Professional
|
Verfasst: Fr 04.02.11 20:15
Nein der Codeschnipsel funktioniert so eben nicht, weil da ne schließende Klammer fehlt...
Crombo
_________________ one day your life will flash before your eyes. make sure it's worth watching
|
|
Hanni007
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 04.02.11 20:18
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.Button1Click(Sender: TObject); var a,b : integer; begin a:=StrToInt(Edit1.Text); b:=StrToInt(Edit2.Text);
Button1.Enabled:=Length(TRIM( (Edit1.Text)) > 0;
Begin If a+b > 0 Then Button1.Visible:=false Else Button1.Visible:=true;
End; Randomize; Label5.Caption:=IntToStr(Random((b)-a+1)+a); Label6.Caption:=IntToStr(Random((b)-a+1)+a); Label7.Caption:=IntToStr(Random((b)-a+1)+a); Label8.Caption:=IntToStr(Random((b)-a+1)+a); Label9.Caption:=IntToStr(Random((b)-a+1)+a); end; |
so siehts aus.
ein button soll erst sichtbar sein, wenn in beiden editfeldern etwas steht, um dann zufallszahlen auszugeben.
Moderiert von Martok: Delphi-Tags gesetzt
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Fr 04.02.11 20:19
|
|
Hanni007
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 04.02.11 20:19
|
|
Crombo
      
Beiträge: 54
Erhaltene Danke: 8
Windows 7, Windows Vista, Windows XP
Delphi XE Architect, Visual Studio 2010 Professional
|
Verfasst: Fr 04.02.11 20:19
Hanni007 hat folgendes geschrieben : |
Button1.Enabled:=Length(TRIM( (Edit1.Text))) > 0;
so siehts aus.
ein button soll erst sichtbar sein, wenn in beiden editfeldern etwas steht, um dann zufallszahlen auszugeben. |
Habs rot markiert...
Crombo
--- Moderiert von Narses: Beiträge zusammengefasst---
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.Edit1Change(Sender: TObject); begin Button1.Enabled := Length(trim(Edit1.Text)) > 0; end; |
Das klappt bei mir wunderbar.
Crombo
_________________ one day your life will flash before your eyes. make sure it's worth watching
|
|
Hanni007
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 04.02.11 20:28
Sorry. Geht leider immernoch nicht.  Tut mir jetzt schon leid, dass ich euch damit nerve.
Hier nochmal der neue Quelltext:
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:
| procedure TForm1.Button1Click(Sender: TObject); var a,b : integer; begin a:=StrToInt(Edit1.Text); b:=StrToInt(Edit2.Text);
Begin Button1.Enabled:=Length(TRIM((Edit1.Text))) > 0; Button1.Enabled:=Length(TRIM((Edit2.Text))) > 0; End;
Begin If a+b > 0 Then Button1.Visible:=false Else Button1.Visible:=true;
End; Randomize; Label5.Caption:=IntToStr(Random((b)-a+1)+a); Label6.Caption:=IntToStr(Random((b)-a+1)+a); Label7.Caption:=IntToStr(Random((b)-a+1)+a); Label8.Caption:=IntToStr(Random((b)-a+1)+a); Label9.Caption:=IntToStr(Random((b)-a+1)+a); end; |
Moderiert von Martok: Delphi-Tags gesetzt
|
|
Crombo
      
Beiträge: 54
Erhaltene Danke: 8
Windows 7, Windows Vista, Windows XP
Delphi XE Architect, Visual Studio 2010 Professional
|
Verfasst: Fr 04.02.11 20:29
Dein Problem ist, dass du es beim Klick auf deinen Button überprüfst, der aber gar nichts von dem Klick mitbekommt, weil er nicht Enabled ist.
Machs in die Edit1.OnChange wie ich, dann funktionierts.
Crombo
_________________ one day your life will flash before your eyes. make sure it's worth watching
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Fr 04.02.11 20:30
wozu eigentlich diese wahllosen begins und ends im quelltext? machen das ganze nur unnötig länger und komplizierter.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|