| Autor |
Beitrag |
kattzze
Hält's aus hier
Beiträge: 14
|
Verfasst: Sa 27.09.08 20:35
Ich habe da gleich noch eine frage.
wie kann ich denn den inhalt von bezeichnern leeren?
bei den editfeldern ist das ja ganz simpel aber wenn ich das mit den bezeichnern genauso mache, bekomme ich einen fehler angezeigt!
also die editfelder habe ich so gelöscht : edit1.text:=''
Moderiert von Gausi: Abgetrennt von [url=www.delphi-forum.de/...?t=86851]hier[/url].
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 27.09.08 20:44
kattzze hat folgendes geschrieben: | | wenn ich das mit den bezeichnern genauso mache, bekomme ich einen fehler angezeigt! |
Wie sieht dein Bezeichner aus? Welcher Fehler wird gemeldet? So muss ich leider einfach mal ins Blaue raten: Lass das .Text weg.
€: Wie immer gilt eigentlich, für jede Frage ein eigener Thread. Sonst wirds hier hinterher ziemlich chaotisch.
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 28.09.08 16:14
Ích habe zwei globale bezeichner als typ byte deklariert.
Wenn ich jetz also mein programm starte und dann einmal etwas berechne(es ist ein programm um potezen zu berechnen) und keine genaue ösung raus kommt gibt er mir an, dass die zahl sagen wir zwischen 2 und drei liegt. Wenn ich dann die editfelder leere, sagt er mir nur noch die höhere zahl und keine zwischenlösungen mher. Mir wurde gasagt, dass das daran liegt, dass die bezeichner nicht geleert werden.
Desshalb diese frage.
Vielleicht liegt es ja auch an etwas anderem und jemand weiß woran.
Das wäre natürlich auch gut!
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 28.09.08 16:19
Dann würde ich den "Bezeichnern" einfach wieder den Wert Null zuweisen. Also MeineByteVariable := 0;. Oder verstehe ich das was komplett falsch? 
_________________ We are, we were and will not be.
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 28.09.08 16:38
du verstehst das schon richtig!
genau das sollte gamacht werden nur dann gibt as programm immer nur eine zahl zurück.
vielleicht gibs ja komplikationen mit dem restlichen proramm?
Einloggen, um Attachments anzusehen!
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 28.09.08 16:54
Die Übergabeparameter heißen genauso wie die globalen Variablen. Dadurch werden diese innerhalb der Funktionen nicht geändert.
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 28.09.08 17:12
könntest du einen vorschlag machen. wie ich das anders schreiben kann?
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 28.09.08 17:25
Benenn doch einfach entweder die globalen Variablen oder die Übergabeparameter um, so dass Du eindeutig weißt, worauf Du aktuell überhaupt zugreifst.
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 28.09.08 17:34
DeddyH hat folgendes geschrieben: | | Benenn doch einfach entweder die globalen Variablen oder die Übergabeparameter um, so dass Du eindeutig weißt, worauf Du aktuell überhaupt zugreifst. |
woher weiß ich denn, wann ich auf die globalen und wann auf die anderen zugreife?
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 28.09.08 17:35
Das scheint ja gerade Dein Problem zu sein. Überleg Dir einmal, ob Du aus den Funktion nicht besser Prozeduren machst, in denen Du die globalen Variablen änderst.
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 28.09.08 17:38
DeddyH hat folgendes geschrieben: | | Das scheint ja gerade Dein Problem zu sein. Überleg Dir einmal, ob Du aus den Funktion nicht besser Prozeduren machst, in denen Du die globalen Variablen änderst. |
Ja genau das ist mein problem! Ich soll das ja mit funltionen schreiben.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 28.09.08 17:48
Dann benenn doch einfach die globalen Variablen um und schau, was passiert.
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 28.09.08 17:53
DeddyH hat folgendes geschrieben: | | Dann benenn doch einfach die globalen Variablen um und schau, was passiert. |
Hab ich gemacht.
Macht trotzdem den selben fehler!
Man is das ein schei* programm
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 28.09.08 18:33
Es ist doch Dein Programm, dann ändere das 
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 28.09.08 18:36
DeddyH hat folgendes geschrieben: | Es ist doch Dein Programm, dann ändere das  |
Wenn ich wüsste wie, würde ich hier nicht fragen.
Außerdem weiß ich ja nichtmal genau wo nun der fehler liegt! Weil er nach allem was ich versicht habe immernoch bestand.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 28.09.08 18:40
Also nochmal: globale Variablen gelten eigentlich programmweit. Wenn Du allerdings lokale Variablen (dazu zählen auch Übergabeparameter) mit demselben Namen deklarierst, haben diese innerhalb der Funktion/Prozedur/Methode Vorrang. Eine Quick&Dirty-Lösung wäre z.B. sowas: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var a,b: integer; ...
function Tuwas(c,d: integer): integer; begin a := c; b := d; Result := a/b; end; |
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 28.09.08 18:55
Deine ideen sind ja alle soweit richtig, nur leider beheben sie den Fehler nich!
Sorry

|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 28.09.08 18:56
Entschuldige, aber ohne ein bisschen Eigeninitiative Deinerseits kommen wir wohl nicht weiter.
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: So 28.09.08 19:56
Zeig mal den Code, den du jetzt hast. Ich hab das Gefühl, dass hier irgendjemand was falsch versteht.
Nicht anhängen, sondern einfach den relevanten Teil der Unit in Delphi-Tags in den Beitrag schreiben.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
kattzze 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 29.09.08 18:06
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
| implementation var basis, exponent: byte ; var ganzzahlig:boolean=false; {$R *.dfm}
function FktPotenz(basis, exponent: byte) : int64; var produkt: int64; i : byte; Begin produkt:= 1; for i := 1 to exponent do produkt:= produkt * basis; FktPotenz:=produkt; end;
function FktBasis(exponent: Byte; potenz:Int64):Byte; begin basis:=0; while FktPotenz(basis, exponent)< potenz do basis:= basis+1; if Potenz=FktPotenz(basis,exponent) then ganzzahlig:= true; FktBasis:= basis; end;
procedure TForm1.Button2Click(Sender: TObject); begin basis:=strtoint(edit1.text); exponent:=strtoint(edit2.text); edit3.text:=inttostr(FktPotenz(basis,exponent)) end;
procedure TForm1.Button4Click(Sender: TObject); begin edit1.Text:=''; edit2.Text:=''; edit3.Text:=''; basis:=0 ; exponent:=0 ; end;
procedure TForm1.Button3Click(Sender: TObject); var potenz: byte; begin exponent:=strtoint(edit2.text); potenz:= strtoint(edit3.text); edit1.Text:=inttostr(FktBasis(exponent,potenz)); if ganzzahlig= false then edit1.Text:= 'zahl liegt zwischen ' + IntToStr(FktBasis(exponent,potenz)-1)+ ' und '+ IntToStr(FktBasis(exponent, potenz)) else edit1.Text:= IntToStr(FktBasis(exponent,potenz)); end; |
Moderiert von matze: Delphi-Tags hinzugefügt
|
|