WinFuture-Forum.de: Einige Blöde Fragen Vom Anfänger - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Einige Blöde Fragen Vom Anfänger Delphi


#1 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 11. August 2007 - 18:24

Hallo, ich habe in der Schule angefangen, Delphi zu lernen und auch schon etwas programmiert. Es war eine kleine Spielerei mit Linien. Das Projekt war auf einem USB-Stick der den Geist aufgegeben hat. Nun möchte ich das Projekt noch einmal "starten".

Nun meine Frage: Wie kann man eine zahl hochzählen. Also ich will, das eine Zahl im Edit1 hochgezählt wird.

Ich kann mich noch an ein Paar zeilen erinnern.
procedure TForm1.Button1Click(Sender: TObject);
 label pro1;
 var a:integer;
 begin
 
 a:=0;
 a:=a+1;
 
 pro1:


und am ende dann
If a <=1000 then goto pro1;


könnt ihr mir den code vervollständigen? BITTE

Dieser Beitrag wurde von Ghost92 bearbeitet: 16. Oktober 2007 - 21:49

Zufällig interessante Videos schauen? http://random-video.net !
0

Anzeige



#2 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 11. August 2007 - 21:22

Hi,

einfach und übersichtlich macht man solche Sachen mit Schleifen. Wie sowas in Delphi (Pascal) aussieht, findest du unter http://de.wikibooks.org/wiki/Programmierku...scal:_Schleifen

Ich habe zwar auch irgendwann mal Pascal "gelernt", aber keine Garantie auf meine untenstehende Umsetzung, da ich es nicht probieren kann.

Um jetzt von 0 bis 1000 zu zählen, würde das folgendermaßen aussehen:

var
	a: Integer;

begin
	for a := 0 to 1000 do
		Edit1.Text := IntToStr(a);
end.


Gruß,
Stefan
0

#3 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 11. August 2007 - 21:39

Danke Stefan! der Code funktioniert.
Könntest du es auch so machen, dass es jede zahl in Edit1 anzeigt? Also 1;2;3;...
Zufällig interessante Videos schauen? http://random-video.net !
0

#4 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 11. August 2007 - 22:07

Beitrag anzeigenZitat (Ghost92: 11.08.2007, 22:39)

Danke Stefan! der Code funktioniert.
Könntest du es auch so machen, dass es jede zahl in Edit1 anzeigt? Also 1;2;3;...


Dürfte ganz einfach gehen.

Mach mal aus
Edit1.Text := IntToStr(a);
folgendes:
Edit1.Text := Edit1.Text + IntToStr(a) + ';';

Gruß,
Stefan
0

#5 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 12. August 2007 - 13:19

Beitrag anzeigenZitat (Diewie: 11.08.2007, 23:07)

Dürfte ganz einfach gehen.

Mach mal aus
Edit1.Text := IntToStr(a);
folgendes:
Edit1.Text := Edit1.Text + IntToStr(a) + ';';

Gruß,
Stefan


Das klappt auch, nur habi ich mich wahrscheinlich falsch ausgedrükt. Ich meinte es eigentlich so, dass die 1 in Edit1 Reingeschrieben wird, dann die 1 gelöscht und gleichzeitig die 2 reingeschrieben wird und so weiter.
Zufällig interessante Videos schauen? http://random-video.net !
0

#6 Mitglied ist offline   TO_Webmaster 

  • Gruppe: Moderation
  • Beiträge: 3.212
  • Beigetreten: 27. März 02
  • Reputation: 82
  • Geschlecht:Männlich

geschrieben 12. August 2007 - 13:43

Beitrag anzeigenZitat (Ghost92: 12.08.2007, 14:19)

Das klappt auch, nur habi ich mich wahrscheinlich falsch ausgedrükt. Ich meinte es eigentlich so, dass die 1 in Edit1 Reingeschrieben wird, dann die 1 gelöscht und gleichzeitig die 2 reingeschrieben wird und so weiter.


var
	a: Integer;

begin
	for a := 0 to 1000 do
	  begin
		Edit1.Text := IntToStr(a);
		application.ProcessMessages;
		sleep(10);
	  end;
end.

The old reverend Henry Ward Beecher
called a hen the most elegant creature.
The hen pleased for that,
laid an egg in his hat.
And so did the hen reward Beecher.
0

#7 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 12. August 2007 - 13:53

Danke TO_Webmaster. Klappt bestens. Jetzt kann ich endlich weitermachen.

Kann man irgend wie den teil eines Codes von mir oben verwenden? Also mit diesem Label oder das von TO_Webmaster, nur mit stepweite, weil ich will ein Paar striche zeichnen( in form1) damit dan alles z.B wie ein karriertes Blatt aussieht oder so, denn jetzt bekomme ich nur eine Fläche und keine Striche.

Ich will das mit dem Code hier machen:
form1.Canvas.Pixels[10,a]:=clred;
form1.Canvas.Pen.Color:=clred;

Form1.Canvas.LineTo(a,100);
Form1.Canvas.MoveTo(a,10);
oder so halt.

Dieser Beitrag wurde von Ghost92 bearbeitet: 12. August 2007 - 14:24

Zufällig interessante Videos schauen? http://random-video.net !
0

#8 Mitglied ist offline   TO_Webmaster 

  • Gruppe: Moderation
  • Beiträge: 3.212
  • Beigetreten: 27. März 02
  • Reputation: 82
  • Geschlecht:Männlich

geschrieben 12. August 2007 - 19:21

Beitrag anzeigenZitat (Ghost92: 12.08.2007, 14:53)

Danke TO_Webmaster. Klappt bestens. Jetzt kann ich endlich weitermachen.

Kann man irgend wie den teil eines Codes von mir oben verwenden? Also mit diesem Label oder das von TO_Webmaster, nur mit stepweite, weil ich will ein Paar striche zeichnen( in form1) damit dan alles z.B wie ein karriertes Blatt aussieht oder so, denn jetzt bekomme ich nur eine Fläche und keine Striche.

Ich will das mit dem Code hier machen:
form1.Canvas.Pixels[10,a]:=clred;
form1.Canvas.Pen.Color:=clred;

Form1.Canvas.LineTo(a,100);
Form1.Canvas.MoveTo(a,10);
oder so halt.


var
	a: Integer;

begin
	form1.Canvas.Pen.Color := clred;
	for a := 1 to 15 do
	  begin
		Form1.Canvas.MoveTo( 10 * a, 0 );
		Form1.Canvas.LineTo( 10 * a, 100 );
	  end;
end.


Das sind die vertikalen Linien. Die horizontalen seien dir als Übungsaufgabe überlassen.

MfG TO_Webmaster
The old reverend Henry Ward Beecher
called a hen the most elegant creature.
The hen pleased for that,
laid an egg in his hat.
And so did the hen reward Beecher.
0

#9 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 12. August 2007 - 20:39

Danke, jetzt geht es wieder.
Mal ne Frage, wie lange dauert es bis man es einigermaßen kann. Nur so zur info.
Zufällig interessante Videos schauen? http://random-video.net !
0

#10 Mitglied ist offline   TO_Webmaster 

  • Gruppe: Moderation
  • Beiträge: 3.212
  • Beigetreten: 27. März 02
  • Reputation: 82
  • Geschlecht:Männlich

geschrieben 12. August 2007 - 22:04

Beitrag anzeigenZitat (Ghost92: 12.08.2007, 21:39)

Mal ne Frage, wie lange dauert es bis man es einigermaßen kann. Nur so zur info.


Schwer zu beantworten. Aber eins steht fest: Man lernt nie aus.

So kleinere Sachen, die du da gerade machst, lernt man recht schnell, aber wenn man professionell programmieren will, dauert das schon einige Monate bis Jahre - und bei den Fragen, die du in diesem Thema teilweise gestellt hast, tippe ich eher auf letzteres. Aber du bist ja auch noch jung.

MfG TO_Webmaster
The old reverend Henry Ward Beecher
called a hen the most elegant creature.
The hen pleased for that,
laid an egg in his hat.
And so did the hen reward Beecher.
0

#11 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 19. August 2007 - 21:33

Hi, ich bins noch mal. Ich möchte gerne diese Schleiche hier Abbrechen, in dem ich auf einen Button klicke.
procedure TForm1.Button7Click(Sender: TObject);
Label dia;
var
	a:integer;
begin
a := 0;


dia:						//Bilder sollen sich 10 mal abwächseln
  a := a + 1;
	Image1.Stretch:=True;
	  Image1.Picture.LoadFromFile('\Bilder\bild2.bmp');
		sleep(1000);
	  Image1.Repaint;

	  Image1.Picture.LoadFromFile('\Bilder\bild.bmp');
		sleep(1000);
	  Image1.Repaint;

 If a <= 10 then goto dia

 Else edit1.Text := 'Fertig';

end;


Ich finde aber nirgend eine Lösung dafür.

Dieser Beitrag wurde von Ghost92 bearbeitet: 19. August 2007 - 21:35

Zufällig interessante Videos schauen? http://random-video.net !
0

#12 Mitglied ist offline   christoph_hausner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 68
  • Beigetreten: 23. August 07
  • Reputation: 0

geschrieben 23. August 2007 - 14:51

Du machst dir eine globale Variable vom Typ Boolean, die du auf true setzt, sobald du den Button drückst. In der Schleife prüfst du dann jedesmal, ob diese Variable true ist, und wenn ja, brichst du die Schleife per break ab. Wichtig ist, dass du in der Schleife regelmäßig Application.ProcessMessages aufrufst.

Dieser Beitrag wurde von christoph_hausner bearbeitet: 23. August 2007 - 14:52

0

#13 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 25. August 2007 - 12:00

Danke, hat geklappt.
Zufällig interessante Videos schauen? http://random-video.net !
0

#14 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 16. Oktober 2007 - 21:49

So, ich komme mal wieder nicht weiter und im Internet hab ich auch nichts gefunden.

Ich möchte aus jeder Zeile eines Memofeldes eine Zahl auslesen und sie in jeweils einem array abspeichern. Es sollen je nach zeilenanzahl genauso viele array geben.
Dann soll beim klick auf einen zweiten Button diese werte wieder in Memo2 ausgegeben werden.

Ich hab etwas geschrieben, funktioniert aber nicht richtig.

var
  Form1: TForm1;
  arr: array of integer;
  index:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetLength(arr, Memo1.Lines.Count);

  for index	:= 0 to Memo1.Lines.Count-1 do

	arr[index] := StrToInt(Memo1.Lines[index]);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  memo2.Lines.Add(inttostr(arr[index]));
  
end;


Könntet ihr bitte den code korrigieren. Das wäre echt nett.

Edit: Hat sich erledigt!
"Neuer" code
var
  Form1: TForm1;
  arr: array of integer;
  index:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetLength(arr, Memo1.Lines.Count);

  for index	:= 0 to Memo1.Lines.Count-1 do
	arr[index] := StrToInt(Memo1.Lines[index]);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
for index := Low(arr) to High(arr) do
  memo2.Lines.Add(inttostr(arr[index]));

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo2.Lines.Clear;
end;

Dieser Beitrag wurde von Ghost92 bearbeitet: 17. Oktober 2007 - 15:07

Zufällig interessante Videos schauen? http://random-video.net !
0

#15 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 06. November 2007 - 21:00

Ich bin es wieder.

Ich habe ein "neues" Gebiet betreten und hab ein Problem:
Was stimmt an dem Code nicht?
procedure TForm1.Button1Click(Sender: TObject);
var y: integer;
begin

 for y:= 0 to 10 do
  stringgrid1.Cells[0,y+1]:=inttostr(y);
  stringgrid1.Cells[1,y+1]:=inttostr(sqr(y));
  y:=round(100*sqrt(y)/100);
  stringgrid1.Cells[2,y+1]:=floattostr(y);

end;

end.


Ich komme einfach nicht dahinter.
Zufällig interessante Videos schauen? http://random-video.net !
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0