Memory feld !?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
daredevil321
Beiträge: 5
Registriert: Sa 28. Nov 2009, 18:51

Memory feld !?

Beitrag von daredevil321 »

Hallo,
hier erstmal der code:

Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    CheckBox1: TCheckBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure CheckBox1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1; 
  z:integer;
  l,r:integer;
implementation
 
{ TForm1 }
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if form1.edit1.text = '100' then form1.Button1.Enabled:=false
  else form1.edit1.text:=inttostr(strtoint(form1.Edit1.text)+1);
  if strtoint(form1.Edit1.text) >0 then form1.button2.enabled:=true;
  if strtoint(form1.edit1.text)>9 then form1.button4.enabled:=true;
end;
 
procedure TForm1.Button13Click(Sender: TObject);
VAR zwerg:integer;
begin
    zwerg:=strtoint(edit2.text);
  if zwerg=z then form1.memo1.text:=('Zahl geraten, gewonnen! '+ form1.edit2.text);
  if zwerg>z then form1.memo1.text:=('Zahl zu groß '+ form1.edit2.text);
  if zwerg<z then form1.memo1.text:=('Zahl zu klein '+ form1.edit2.text); 
end;
 
procedure TForm1.Button10Click(Sender: TObject);
begin
  form1.button1.enabled:=false;
  form1.button2.enabled:=false;
  form1.button3.enabled:=false;
  form1.button4.enabled:=false;
  l:=(l+r)div 2;
  edit2.text:=inttostr((l+r)div 2);
  end;
 
procedure TForm1.Button11Click(Sender: TObject);
begin
  form1.button1.enabled:=false;
  form1.button2.enabled:=false;
  form1.button3.enabled:=false;
  form1.button4.enabled:=false;
  r:=(l+r)div 2;
  edit2.text:=inttostr((l+r)div 2);
end;
 
procedure TForm1.Button12Click(Sender: TObject);
begin
  form1.button1.enabled:=true;
  form1.button2.enabled:=true;
  form1.button3.enabled:=true;
  form1.button4.enabled:=true;
  form1.edit2.text:='0';
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  if form1.edit1.text='0' then form1.button2.enabled:=false else
  form1.edit1.text:=inttostr(strtoint(form1.Edit1.text)-1);
  if strtoint(form1.Edit1.text)< 100 then form1.Button1.enabled:=true;
  if strtoint(form1.Edit1.text)<91 then form1.button3.enabled:=true;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
  if strtoint(form1.edit1.Text)>90 then form1.Button3.enabled:=false else
  form1.edit1.text:=inttostr(strtoint(form1.Edit1.text)+10);
  if strtoint(form1.edit1.text)>9 then form1.button4.enabled:=true;
  if strtoint(form1.Edit1.text) >0 then form1.button2.enabled:=true;
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
  if strtoint(form1.edit1.Text)<10 then form1.Button4.enabled:=false else
  form1.edit1.text:=inttostr(strtoint(form1.Edit1.text)-10);
  if strtoint(form1.Edit1.text)<91 then form1.button3.enabled:=true;
  if strtoint(form1.Edit1.text)< 100 then form1.Button1.enabled:=true;
end;
 
procedure TForm1.Button5Click(Sender: TObject);
begin
  if strtoint(form1.edit2.text)>strtoint(form1.edit1.text)-1 then form1.Button5.Enabled:=false
  else form1.edit2.text:=inttostr(strtoint(form1.Edit2.text)+1);
  if strtoint(form1.Edit2.text)>0 then form1.button6.enabled:=true;
  if strtoint(form1.edit2.text)>9 then form1.button8.enabled:=true;
end;
 
procedure TForm1.Button6Click(Sender: TObject);
begin
  if strtoint(form1.edit2.text)<1 then form1.Button6.Enabled:=false
  else form1.edit2.text:=inttostr(strtoint(form1.Edit2.text)-1);
  if strtoint(form1.Edit2.text)<strtoint(form1.edit1.text) then form1.button5.enabled:=true;
  if strtoint(form1.edit2.text)<strtoint(form1.edit1.text)-10 then form1.button7.enabled:=true;
end;
 
procedure TForm1.Button7Click(Sender: TObject);
begin
  if strtoint(form1.edit2.text)>strtoint(form1.edit1.text)-10 then form1.Button7.Enabled:=false
  else form1.edit2.text:=inttostr(strtoint(form1.Edit2.text)+10);
  if strtoint(form1.Edit2.text)>0 then form1.button6.enabled:=true;
  if strtoint(form1.edit2.text)>9 then form1.button8.enabled:=true;
end;
 
procedure TForm1.Button8Click(Sender: TObject);
begin
  if strtoint(form1.edit2.text)<10 then form1.Button8.Enabled:=false
  else form1.edit2.text:=inttostr(strtoint(form1.Edit2.text)-10);
  if strtoint(form1.Edit2.text)<strtoint(form1.edit1.text) then form1.button5.enabled:=true;
  if strtoint(form1.edit2.text)<strtoint(form1.edit1.text)-10 then form1.button7.enabled:=true;
end;
 
procedure TForm1.Button9Click(Sender: TObject);
begin
 if form1.checkbox1.checked= false then
 begin
 z:=random(strtoint(edit1.text)+1);
 edit2.text:=inttostr(strtoint(edit1.text)div 2);
 end else
 begin
  form1.button1.enabled:=true;
  form1.button2.enabled:=true;
  form1.button3.enabled:=true;
  form1.button4.enabled:=true;
  form1.button5.enabled:=true;
  form1.button6.enabled:=true;
  form1.button7.enabled:=true;
  form1.button8.enabled:=true;
  l:=0;
  r:=strtoint(edit1.text);
  edit2.text:=inttostr((l+r)div 2);
  end;
  end;
 
procedure TForm1.CheckBox1Change(Sender: TObject);
begin
 if form1.checkbox1.Checked=true then
 begin
  form1.Button10.visible:=true;
  form1.button11.visible:=true;
  form1.button12.visible:=true;
  form1.label1.visible:=true;
  form1.button5.visible:=false;
  form1.button6.visible:=false;
  form1.button7.visible:=false;
  form1.button8.visible:=false;
  form1.button13.visible:=false;
  form1.Button9.caption:='Los';
  edit2.text:='0';
  end else
  begin
  form1.button1.enabled:=true;
  form1.button2.enabled:=true;
  form1.button3.enabled:=true;
  form1.button4.enabled:=true;
  form1.button5.enabled:=true;
  form1.button6.enabled:=true;
  form1.button7.enabled:=true;
  form1.button8.enabled:=true;
  form1.Button10.visible:=false;
  form1.button11.visible:=false;
  form1.button12.visible:=false;
  form1.label1.visible:=false;
  form1.button5.visible:=true;
  form1.button6.visible:=true;
  form1.button7.visible:=true;
  form1.button8.visible:=true;
  form1.button13.visible:=true;
  form1.button9.caption:='Reset';
  end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  z:=random(strtoint(edit1.text)+1);
  edit2.text:=inttostr(strtoint(edit1.text)div 2);
  form1.checkbox1.checked:=true;
  form1.checkbox1.checked:=false;
end;
 
 
 
initialization
  {$I unit1.lrs}
 
end.
hierbei möchte ich ein memo feld einbauen welches mir die Züge durchnummeriert.aber diese zeile soll nicht sofort bei dem nächsten zug gelöschtwerden sondern es soll eine darauffolgende zeile geben. heißt:" 1.Zug, Zahl zu klein , Zahl geraten: 15 ","2.Zug, Zahl zu klein..... " hierbei soll außerdem die variable ' zz ' die anzahl der züge sein. ich hoffe mir kann hier jemand helfen.

MFG

Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Re: Memory feld !?

Beitrag von theo »

Wie bitte?
Hänge entweder ein kompilierbares Projekt an, oder - noch viel besser - stelle eine auf's Wesentliche reduzierte Frage die man beantworten kann ohne einen Haufen ungelenken Code anschauen zu müssen.

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: Memory feld !?

Beitrag von hendy »

if zwerg=z then form1.memo1.text:=('Zahl geraten, gewonnen! '+ form1.edit2.text);
if zwerg>z then form1.memo1.text:=('Zahl zu groß '+ form1.edit2.text);
if zwerg<z then form1.memo1.text:=('Zahl zu klein '+ form1.edit2.text);
memo1.append('Ein string') ist es, was du suchst
Dankt monta !!

daredevil321
Beiträge: 5
Registriert: Sa 28. Nov 2009, 18:51

Re: Memory feld !?

Beitrag von daredevil321 »

also ich will nur wissen wie man in einem memo feld eine auflistung machen kann schon wie oben genann soll er erkennen das wie vielte mal ich auf einen knopfgedrückhab( 1,2,3,4......mal)

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Memory feld !?

Beitrag von DiBo33 »

Entweder du lässt eine Zählvariable mitlaufen oder nutzt die Anzahl der Zeilen im Memo als Zähler.

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: Memory feld !?

Beitrag von felix96 »

Wäre nicht eine Listbox besser?
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Memory feld !?

Beitrag von pluto »

Ach so: Du hast verschiedene Buttons. Nun möchtest du Zählen, wie oft ein Button gedrückt wurde ?

Eine Einfache Lösung wäre, folgenden Code, in deiner Klick-Methode hinzuzufügen: inc((Sender as TComponent).tag);
Damit erhörst du für jeden Button den Tag wert.

Edit01:
Raten macht doch Irgendwie Spaß oder nicht ? Mal sehen, wer seine Frage Erraten kann *G*
MFG
Michael Springwald

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: Memory feld !?

Beitrag von felix96 »

Fies aber Warheit:
pluto hat geschrieben:Raten macht doch Irgendwie Spaß oder nicht ? Mal sehen, wer seine Frage Erraten kann *G*
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Memory feld !?

Beitrag von pluto »

Das war nicht gemein "gemeint", sondern sollte das eigentliche Problem aufzeigen.
MFG
Michael Springwald

Antworten