AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form-Felder in eigene Procedure integrieren

Ein Thema von Delphi Freak · begonnen am 19. Feb 2010 · letzter Beitrag vom 20. Feb 2010
Antwort Antwort
Delphi Freak

Registriert seit: 3. Jan 2010
13 Beiträge
 
Delphi 7 Personal
 
#1

Form-Felder in eigene Procedure integrieren

  Alt 19. Feb 2010, 20:17
Hallo Forum,

ich versuche gerade einen Taschenrechner zu programmieren, bei dem man auch die Zahlen über Buttons eingeben soll, da man natürlich auch mehrere Zahlen hintereinander reihen muss, ist die Procedure pro Zahl nicht wirklich kurz und deshalb dachte ich mir, ich kann ja einfach eine Procedure mit einer Variable für die jeweiligen Zahlen(0-9) schreiben und dann bei jeder Zahl soll einfach nur die Procedure mit dem jeweiligen Wert(0-9) durchlaufen. So weit bin ich auch schon, jetzt zu meinem Problem:
Ich überprüfe in dieser genannten Procedure, ob in dem Edit-Feld, über das die Zahlen angezeigt werden, ob dort eine "0" steht und wenn ja, wird sie ja überschrieben, wenn dort nicht "0" steht, wird die nächste Zahl angereiht. Wir kann ich die "Form" in meine Procedure integrieren, damit ich auf das Edit-Feld zugreifen kann? Bis jetzt kommt nur eine Fehlermeldung: Undefinierter Bezeichner: "Edit";
Und wo genau muss ich die Procedure schreiben? Bei Public oder Private oder einfach dort, wo auch die anderen Proceduren sind?

Danke schon im voraus für die Antworten.

Grüße
Florian
"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von ap_computers
ap_computers

Registriert seit: 24. Nov 2009
26 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Form-Felder in eigene Procedure integrieren

  Alt 19. Feb 2010, 20:25
Versuch mal den Button über eine Prozedur zu ermitteln. Etwa so:

Delphi-Quellcode:
procedure TForm1.Button1.Click(Sender: TObject);
var
  bt: TButton;
begin
  bt:= TButton(Sender);
  case StrToInt(bt.Caption) of
  ...
  end;
end;
Verknüpfe im Objektinspektor alle OnClick Ereignisse der Buttons mit der Button1Click Methode.
  Mit Zitat antworten Zitat
Delphi Freak

Registriert seit: 3. Jan 2010
13 Beiträge
 
Delphi 7 Personal
 
#3

Re: Form-Felder in eigene Procedure integrieren

  Alt 19. Feb 2010, 20:30
Ich verstehe nicht so genau, was ich machen soll (Ich programmiere noch nicht lange mit Delphi).

Das wäre das Grundgerüst meiner Procedure:

Delphi-Quellcode:
procedure ZahlEingabe(y: Integer);
begin
  if Edit.Text = '0then
  begin
    Edit.Text := y;
  end
  else
  begin
    Edit.Text := Edit.Text + y;
  end;
end;
kannst du mir vllt mit meinem Grundgerüst genauer zeigen, wie du es meinst?

Danke
"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von ap_computers
ap_computers

Registriert seit: 24. Nov 2009
26 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Form-Felder in eigene Procedure integrieren

  Alt 19. Feb 2010, 20:50
Delphi-Quellcode:
procedure TForm1.Button1.Click(Sender: TObject);
var
  bt: TButton;
begin
  bt:= TButton(Sender); // ermittelt auf welchen Button geklickt wurde
  if bt.Text = '0then // wenn du auf "0" geklickt hast
  begin
    Edit1.Text := '0'; // dann überschreiben
  end
  else
  begin
    Edit1.Text := Edit1.Text + bt.Text; // sonst Zeichen anhängen
  end;
end;
reicht dir das so als erklärung ???
  Mit Zitat antworten Zitat
Delphi Freak

Registriert seit: 3. Jan 2010
13 Beiträge
 
Delphi 7 Personal
 
#5

Re: Form-Felder in eigene Procedure integrieren

  Alt 19. Feb 2010, 21:28
Danke für die Antwort, so grob tuts jetzt, ist aber immer noch ein Fehler drin

Delphi-Quellcode:
procedure TForm1.Button1.Click(Sender: TObject);
var
  bt: TButton;
begin
  bt:= TButton(Sender); // ermittelt auf welchen Button geklickt wurde
  if bt.Caption = '0then // wenn du auf "0" geklickt hast
  begin
    Edit.Text := '0'; // dann überschreiben
  end
  else
  begin
    Edit.Text := Edit.Text + bt.Caption; // sonst Zeichen anhängen
  end;
end;
bei Buttons heißts net .Text, sondern .Caption, des hab ich geändert und mein Edit-Feld heißt einfach nur Edit, aber des tut ja nicht viel zur Sache, habs dementsprechend umgeändert.

Wenn ich auf "0" klicke, steht in meinem Edit-Feld unabhängig, was davor drin stand "0" drin, wenn ich auf eine andere Zahl klicke, wird sie angehängt, aber die "0" bleibt davor stehen


Hab den Fehler jetzt gefunden:

Delphi-Quellcode:
procedure TForm1.Bu0Click(Sender: TObject);
var
  bt: TButton;
begin
  bt:= TButton(Sender); // ermittelt auf welchen Button geklickt wurde
  if Edit.Text = '0then // wenn im Edit-Feld "0"
  begin
    Edit.Text := bt.Caption; // dann überschreiben
  end
  else
  begin
    Edit.Text := Edit.Text + bt.Caption; // sonst Zeichen anhängen
  end;
end;
ich weiß nicht, ob du mich falsch verstanden hast oder obs nen Fehler war, ist ja auch egal, trotzdem danke, für deine Hilfe!


Ich würde trotzdem noch gerne wissen, ob ich das Problem auch so lösen kann, wie ichs ursprünglich machen wollte, würd mich über weitere Antworten freuen.

Gruß
Florian
"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von ap_computers
ap_computers

Registriert seit: 24. Nov 2009
26 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Form-Felder in eigene Procedure integrieren

  Alt 20. Feb 2010, 22:43
Zitat von ap_computers:
if bt.Text = '0then // wenn du auf "0" geklickt hast
hupps das kommt davon wenn man mal schnell was ohne Delphi tippt.

Man könnte das ganze zwar auch über eine externe Methode machen, ich persönlich find aber die Lösung besser. Und wenns funktioniert, dann ist's doch gut, oder?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz