Autor |
Beitrag |
Fluffy19
      
Beiträge: 19
|
Verfasst: Mi 29.10.08 17:29
Hi!
Ich wollte, um ein paar Noobs zu verarschen (nichts gegen Noobs, bin selbst ein Noob was Delphi angeht!) ein kleines Programm schreiben.
Wir haben in der Schule jetzt mit Delphi angefangen und deshlab habe ich noch nicht soviel Ahnung!
Also folgender Quellcode:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); begin Button1.Caption := 'Bitte warten!'; if Edit1 <0 then Canvas.Textout(Form1.Width div 3,Form1.height div 4,'geben Sie eine IP Adresse ein!') else Canvas.Textout(Form1.Width div 3,Form1.height div 4,'Verbindung wird aufgebaut...'); Sleep(1 * 1000); Canvas.Textout(Form1.Width div 4,Form1.height div 2,'Fehler: Die Verbindung wurde durch eine Firewall geblockt!');
end; |
Wenn in Edit1 nichts eingetragen ist soll die Meldung geben sie eine Ip Adresse ein! angezeigt werden.
STeht in Edit 1 jedoch etwas soll die Fehlermeldung Verbindung geblockt kommen.
Es wäre nett wenn jemand einem Anfänger auf die Sprünge helfen könnte!
Fluffy
Moderiert von Christian S.: Delphi-Tags hinzugefügt
|
|
Apollo
      
Beiträge: 125
Windows 7
Delphi 3 Prof., Delphi 2005
|
Verfasst: Mi 29.10.08 17:35
 im Forum!!
Würde ich so machen:
Delphi-Quelltext 1: 2: 3: 4: 5:
| If edit1.text = '' then Showmessage('geben sie eine Ip Adresse ein') else Sleep(1 * 1000); Showmessage('Verbindung geblockt'); |
habs nicht getestet müsste aber funtzen
Tipp: Stelle den code in Delphi-Tags, erhöht die lesbarkeit 
_________________ Im Zweifelsfall immer das Richtige tun
Zuletzt bearbeitet von Apollo am Mi 29.10.08 17:38, insgesamt 2-mal bearbeitet
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 17:36
Du schreibst alles direkt hintereinander, d.h. es sieht im laufenden Programm so aus, als würde alles gleichzeitig ausgeführt werden (stimmt ja auch beinahe). Und if Edit1 <0 macht keinen Sinn, wenn, dann z.B. mit if Length(Edit1.Text) = 0
|
|
Fluffy19 
      
Beiträge: 19
|
Verfasst: Mi 29.10.08 17:37
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 17:39
Du musst prüfen wie viele Zeichen im Edit stehen.Das geht mit length()
Edit: Das kommt davon wenn man mal kurz au Klo geht: 4 Minuten zu spät!
|
|
Apollo
      
Beiträge: 125
Windows 7
Delphi 3 Prof., Delphi 2005
|
Verfasst: Mi 29.10.08 17:48
Warum machst du es eigendlich mit TCanvas? Nim doch einfach label1.caption:= 'Dein Text'. Kann man dann besser positionieren und ist auch generel geläufiger als Buchstaben zu zeichnen 
_________________ Im Zweifelsfall immer das Richtige tun
|
|
Fluffy19 
      
Beiträge: 19
|
Verfasst: Mi 29.10.08 17:53
gibt es die möglichkeit nach then Showmessage('Geben sie eine Ip Adresse ein!')
noch ein Close einzufügen obwohl danach elso kommt?
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 17:56
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| if Bedingung then begin MachWas; MachNochwas; end else begin MachWasAnderes; MachNochwasAnderes; end; |
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 18:00
@Apollo: Ich finde das durchaus nützlich.Man kann mit einem sachten Form1.repaint alles wieder wegbekommen.Mit nem Label geht das nicht.Dafür
bietet das Label aber andere Vorteile. 
|
|
Fluffy19 
      
Beiträge: 19
|
Verfasst: Mi 29.10.08 18:01
if Bedingung then
begin
MachWas;
MachNochwas;
Machnochwas geht leider nicht -> ohne end -> ; nicht erlaubt vor else
mit end-> ; erwartet aber else gefunden ->Abbruch
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 18:02
|
|
Fluffy19 
      
Beiträge: 19
|
Verfasst: Mi 29.10.08 18:05
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); begin Button1.Caption := 'Bitte warten!'; If edit1.text = 'Ip Adresse eingeben' then Showmessage('Geben sie eine Ip Adresse ein!'); close; end else begin label2.caption:= 'Verbindung wird hergestellt...'; Sleep(2* 1000); Canvas.Textout(Form1.Width div 4,Form1.height div 2,'Fehler: Die Verbindung wurde durch eine Firewall geblockt!');
end; |
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 18:07
Da fehlt das begin nach dem ersten then.
Edit: Versuche mal deinen Code zu strukturieren.
So:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| begin if ich.hunger < 0 then ich.goto(Kuehlschrank) else begin ich.siton(stuhl); ich.play_or_programming; end; end; |
€:Am Ende fehlt auch noch ein end!
Zuletzt bearbeitet von j.klugmann am Mi 29.10.08 18:15, insgesamt 3-mal bearbeitet
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mi 29.10.08 18:07
Zuletzt bearbeitet von Marc. am Mi 29.10.08 18:10, insgesamt 2-mal bearbeitet
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 18:07
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Button1Click(Sender: TObject); begin Button1.Caption := 'Bitte warten!'; If edit1.text = 'Ip Adresse eingeben' then begin Showmessage('Geben sie eine Ip Adresse ein!'); close; end else begin label2.caption:= 'Verbindung wird hergestellt...'; Sleep(2* 1000); Canvas.Textout(Form1.Width div 4,Form1.height div 2,'Fehler: Die Verbindung wurde durch eine Firewall geblockt!'); end; end; |
[edit] Gewöhn Dir am besten sofort eine anständige Einrückung an, dann sieht man so etwas gleich auf den ersten Blick [/edit]
|
|
Fluffy19 
      
Beiträge: 19
|
Verfasst: Mi 29.10.08 18:12
Jetzt geht alles wie ichs gern hätte!
Einrückung werd ich mir angewöhnen
Ich bin echt erstaunt, dass man hier so schnell Antworten bekommt!
In anderen Foren wartet man Tage...
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 18:14
|
|
Apollo
      
Beiträge: 125
Windows 7
Delphi 3 Prof., Delphi 2005
|
Verfasst: Mi 29.10.08 18:15
j.klugmann hat folgendes geschrieben : | @Apollo: Ich finde das durchaus nützlich.Man kann mit einem sachten Form1.repaint alles wieder wegbekommen.Mit nem Label geht das nicht.Dafür
bietet das Label aber andere Vorteile.  |
Klar geht das: Label1.caption:= ''. Ist zwar noch da aber trotzdem sieht man nichs.
_________________ Im Zweifelsfall immer das Richtige tun
Zuletzt bearbeitet von Apollo am Mi 29.10.08 18:16, insgesamt 1-mal bearbeitet
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mi 29.10.08 18:15
Zum Thema Einrücken: Schau Dir diesbezüglich mal das Tool DelForExp an.
Damit kann jedenfalls nichts mehr schief gehen. 
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.08 18:18
|
|