Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - inhalt aus bezeichner löschen
kattzze - Sa 27.09.08 20:35
Titel: inhalt aus bezeichner löschen
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=http://www.delphi-forum.de/viewtopic.php?t=86851]hier[/url].
Marc. - Sa 27.09.08 20:44
Titel: Re: inhalt aus bezeichner löschen
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 - So 28.09.08 16:14
Titel: Re: inhalt aus bezeichner löschen
Í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 - 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? :gruebel:
kattzze - 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?
Delete - 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 - So 28.09.08 17:12
könntest du einen vorschlag machen. wie ich das anders schreiben kann?
Delete - 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 - 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?
Delete - 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 - 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.
Delete - So 28.09.08 17:48
Dann benenn doch einfach die globalen Variablen um und schau, was passiert.
kattzze - 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
Delete - So 28.09.08 18:33
Es ist doch Dein Programm, dann ändere das ;)
kattzze - 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.
Delete - 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 - So 28.09.08 18:55
Deine ideen sind ja alle soweit richtig, nur leider beheben sie den Fehler nich!
Sorry
:autsch:
Delete - So 28.09.08 18:56
Entschuldige, aber ohne ein bisschen Eigeninitiative Deinerseits kommen wir wohl nicht weiter.
Timosch - 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.
kattzze - Mo 29.09.08 18:06
Delphi-Quelltext
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
Delete - Mo 29.09.08 18:12
Setz das ganz in Delphi-Tags!Dann ist es leserlicj!!!!!!
kattzze - Mo 29.09.08 18:18
hatte ich hinterher denn auch rausgefundne wies geht!
mustte es erst suchen! :lol:
Andreas L. - Mo 29.09.08 19:33
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var basis, exponent: byte ; var ganzzahlig:boolean=false; {$R *.dfm}
function FktPotenz(basis, exponent: byte) : int64; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var Fbasis, Fexponent: byte ; var ganzzahlig:boolean=false; {$R *.dfm}
function FktPotenz(basis, exponent: byte) : int64; |
Das meinte DeddyH. Und jetzt klappts bestimmt auch ;-)
Delete - Mo 29.09.08 20:22
Endlich mal jemand, der mich versteht.:mrgreen:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!