Autor Beitrag
Fluffy19
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: 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:

ausblenden 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 user profile iconChristian S.: Delphi-Tags hinzugefügt
Apollo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Windows 7
Delphi 3 Prof., Delphi 2005
BeitragVerfasst: Mi 29.10.08 17:35 
:welcome: im Forum!!

Würde ich so machen:
ausblenden 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 :wink:

_________________
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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mi 29.10.08 17:37 
danke!

funktioniert!
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.10.08 17:39 
Du musst prüfen wie viele Zeichen im Edit stehen.Das geht mit length() :P

Edit: Das kommt davon wenn man mal kurz au Klo geht: 4 Minuten zu spät!
Apollo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Windows 7
Delphi 3 Prof., Delphi 2005
BeitragVerfasst: 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 :mrgreen:

_________________
Im Zweifelsfall immer das Richtige tun
Fluffy19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: 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



BeitragVerfasst: Mi 29.10.08 17:56 
ausblenden 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



BeitragVerfasst: 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. 8)
Fluffy19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: 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



BeitragVerfasst: Mi 29.10.08 18:02 
Zeig mal Deinen Code.
Fluffy19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mi 29.10.08 18:05 
ausblenden 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(21000);
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



BeitragVerfasst: Mi 29.10.08 18:07 
Da fehlt das begin nach dem ersten then.

Edit: Versuche mal deinen Code zu strukturieren.

So:
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 29.10.08 18:07 
user profile iconFluffy19 hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
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(21000);
    Canvas.Textout(Form1.Width div 4,Form1.height div 2,'Fehler: Die Verbindung wurde durch eine Firewall geblockt!');
 end;
end;

Da fehlt ein Begin und ein End;

€: Komplett eingerückte Version einen Post unter diesem.


Zuletzt bearbeitet von Marc. am Mi 29.10.08 18:10, insgesamt 2-mal bearbeitet
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.10.08 18:07 
ausblenden 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 //<-- fehlte
      Showmessage('Geben sie eine Ip Adresse ein!');
      close;
    end
  else
    begin
      label2.caption:= 'Verbindung wird hergestellt...';
      Sleep(21000);
      Canvas.Textout(Form1.Width div 4,Form1.height div 2,'Fehler: Die Verbindung wurde durch eine Firewall geblockt!');
    end; //<-- fehlte auch
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: 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



BeitragVerfasst: Mi 29.10.08 18:14 
user profile iconFluffy19 hat folgendes geschrieben Zum zitierten Posting springen:

Ich bin echt erstaunt, dass man hier so schnell Antworten bekommt!
In anderen Foren wartet man Tage...


Delphi-Forum eben. :D Schön ,dass es dir bei uns gefällt! :beer:
Apollo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Windows 7
Delphi 3 Prof., Delphi 2005
BeitragVerfasst: Mi 29.10.08 18:15 
user profile iconj.klugmann hat folgendes geschrieben Zum zitierten Posting springen:
@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. 8)


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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: 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. :zwinker:
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.10.08 18:18 
user profile iconMarc. hat folgendes geschrieben Zum zitierten Posting springen:
Zum Thema Einrücken: Schau Dir diesbezüglich mal das Tool DelForExp an.
Damit kann jedenfalls nichts mehr schief gehen. :zwinker:

Geniales Ding!Das wird mein neuer Standart-Post sein , für Leute die nicht einrücken.

@Apollo:Das ist aber viel aufwendiger! :wink: