Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Incompatible Types: 'Boolean' and 'Integer' (https://www.delphipraxis.net/3472-incompatible-types-boolean-integer.html)

flomei 14. Mär 2003 17:34


Incompatible Types: 'Boolean' and 'Integer'
 
Tach!
Ich würd gerne den Text eines Labels in ein Memo hinzufügen.
Das ganze will ich möglichst einfach mit
Code:
infocheck.Lines.add(Lblyes.Caption);
machen. Egal was ich änder (leuchtet mir ein dass man nicht viel am Typ der Komponente :? (oder war das jetzt falsch) ändern kann) ich krieg jedesmal dieses schöne?!? Fehlermeldung:
Zitat:

[Error] Unit2.pas(93): Incompatible types: 'Boolean' and 'Integer'
Ich hoffe ich muss euch das nicht übersetzen :wink:

Was kann ich ändern oder besser machen, damit es funktioniert???

Thx im Voraus!

MfG Florian

Daniel B 14. Mär 2003 17:43

Hallo flomei,

das Problem kommt woanders her. Wenn Dir dieser Fehler angezeigt wird, wo steht dann der Cursor?
Denn
Memo1.Lines.Add(Label1.Caption);
geht sehr wohl!

Grüsse, Daniel :hi:

flomei 14. Mär 2003 17:48

Meine Fresse bin ich dämlich! :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall:

Code:
if
yes.Checked
then
infocheck.Lines.add(Lblyes.Caption);
Das war jetzt aber echt dämlich!
:wall: :wall: :wall: :wall:

Vielen Dank für die schnelle Hilfe!

MfG Florian

flomei 14. Mär 2003 18:04

Jetzt weiss ich wieder was ich noch Fragen wollte!
Wie kann ich innerhalb einer Prozedur mehrere If Bedingungen einbauen. Ich demonstrier das besser mal kurz:
Delphi-Quellcode:
//tu dies
//tu das
//tu noch mehr
//immer noch was machen
//immer weiter

if
blabla.Checked
then
//tu noch was anderes
else
if {<-- ich glaub hier ist der erste Fehler}
blablabla.Checked
then
//tu noch was ganz anderes
{jetzt irgendwie Ende der Bedingungen}

{neue fangen an}
if
blabla.Checked
then
//tu noch was anderes
else
if
blablabla.Checked
then
//tu noch was ganz anderes

{ende zum zweiten}

Form3.ShowModal;
end;
Ich hoffe ihr versteht jetzt so ungefähr was ich meine.

Thx!

MfG Florian

[edit=Daniel B]Delphi-Tags gesetzt. Florian, Bitte [ delphi]und[/delphi], anstatt [ code]und[/code] benutzen. Danke! MfG Daniel B.[/edit]

Haegar 14. Mär 2003 18:07

haste es denn schonmal so probiert???
aber eigentlich könnteste dir dann das "else" sparen.

gruss haegar

Hansa 14. Mär 2003 18:20

Hi Flomei,

wer haut sich so den Kopf gegen die Wand, so dumm war die Frage doch nicht, krieg ja fast selber Kopfweh. :wall: Was Du brauchst (mit IF THEN ELSE usw.) ist CASE Bitte in der Hilfe nachlesen.

P.S.: habe gerade noch gesehen, daß in dem Posting anscheinend Code-Tags hinzugefügt sind, der sieht aber trotzdem kriminell aus. :mrgreen: Wie willst Du da die Übersicht behalten und was ist mit den ";" :?: Der erste Fehler könnte wegen eines fehlenden ; komme, oder wegen eines überflüssigen vor ELSE.

flomei 14. Mär 2003 19:10

Verzeihung Daniel!

Naja, ich steig noch durch. Das sollte auch nicht mehr werden.

tut mir leid, dass ich das nicht sofort nachgucken kann aber ich hab Mandelentzündung und deshalb geh ich gleich wieder ins Bett.
Ich hab das schon mal ohne else ausprobiert aber da bekam ich auch ne Fehlermeldung, glaub ich. :?

Sorry, aber es geht mir heute echt nicht so gut. Ich setz mich bald wieder dran.

Trotzdem Thx!

MfG Florian

P.S.: Mittwoch fahr ich zur CeBit :bouncing4: :bounce1: :bounce2: :dancer: :dancer2:

RomanK 14. Mär 2003 22:03

Hoi,
erst mal gute Besserung und viel Spaß auf der CeBit :evil:
Nun zum Problem:

Delphi-Quellcode:
if flomei.krank then
// naja dann bist du halt krank ;)) und kannst ned zur CeBit ;)) der eine Befehl hier darf kein ; am ende haben!!!!

else if flomei.vater.krank then // dieser bedingung wird nur überprüft wenn du gesund bist.
// leider ist dein vater krank... du kannst ned zur CeBit ;)) der eine Befehl hier darf kein ; am ende haben!!!!
else // das wird nur ausgeführt wenn alle vorherigen abfragen negativ verlaufen sind, also du und dein Vater gesund sind.

// jetzt kannsch zur CeBit :D dieser befehl aber bitte mit ;
oder wenn du mehrere Aktionen pro Bedingung machen willst dann immer mit begin und end.
Delphi-Quellcode:
if flomei.krank then
begin
// naja dann bist du halt krank ;)) und kannst ned zur CeBit ;))
// Hier kannst du mehr als nur ein Befehl ausführen.
end // wichtig: ohne ;
else if flomei.vater.krank then // dieser bedingung wird nur überprüft wenn du gesund bist.

begin
// leider ist dein vater krank... du kannst ned zur CeBit ;))
// Hier kannst du mehr als nur ein Befehl ausführen.
end
else // das wird nur ausgeführt wenn alle vorherigen abfragen negativ verlaufen sind, also du und dein Vater gesund sind.
begin
// jetzt kannsch zur CeBit :D
end; // wichtig: mit ;
flomei.krank und flomei.vater.krank mussen boolsche Werte sein
Naja, ich hoffe das es dir Hilft.
PS: wenn du in der Hilfe unter if-Anweisungen suchst findest du eine gute Beschreibung über die ganze Sache.

Haegar 14. Mär 2003 23:27

:mrgreen: ich göaub das war mehr als verständlich :mrgreen:
wirklich kompetente leute hier :D

gruss haegar

Luckie 15. Mär 2003 03:06

@flo...-Dingsbums: Neue Frage, neuer Thread bitte. Dann findet man Themen mit der Suche leichter wieder.

flomei 15. Mär 2003 19:43

hm
 
Danke, danke!

Ich hab meinen Quelltext jetzt verändert aber es gibt immer noch Probleme. (Sch*** Bedingungen :( )

Delphi-Quellcode:
if
yes.Checked
then
addnewguestfinal.checkinfo.Lines.Add(smokeryes.Caption);
addnewguestfinal.ShowModal
else  //Zeile 96 im Quelltext
addnewguestfinal.checkinfo.Lines.Add(smokerno.Caption);
addnewguestfinal.ShowModal
end;
Fehlermeldung:
Zitat:

[Error] Unit2.pas(96): 'END' expected but 'ELSE' found
Ich hab jetzt keine Peilung wo der Fehler liegt. Leider!

hm...

Thx!

MfG Florian

Daniel B 15. Mär 2003 19:46

Hallo flomei,

das Problem ist, Du hast die Hilfe nicht gelesen.
Wenn nach dem then oder else mehrere Zeilen kommen, also mehr als eine, so musst Du es in begin und end setzen.
Also, entweder:
Delphi-Quellcode:
if bla then
  blabla
else
  blablabla
end;
oder:
Delphi-Quellcode:
if bla then
begin
  bla
  bla
  bla
end
else
begin
  bla
  bla
  bla
end;
Grüsse, Daniel :hi:

flomei 15. Mär 2003 19:53

Das geht jetzt. Er fängt an zu kompilieren und dann krieg ich ne üble Fehlermeldung.
Zitat:

begin
if
newguestform.yes.Checked //<-- hier steht dann ein grüner Pfeil
then
S-O-S :wink:

MfG Florian

Hansa 15. Mär 2003 19:56

Vor allem aber : ; hinter jedes "bla", also "bla;"

Da es aber keine Regel ohne Ausnahme gibt :

vor dem ELSE BEGIN keiner :!:

@everyone : an so was kann ein Anfänger verzweifeln.

Daniel B 15. Mär 2003 19:57

Hmm,

ich nehme mal an das es sich dabei um eine CheckBox handelt. Du solltest die Namen so vergeben das man noch erkennen kann was es ist, ist eine sehr schlechte Angewohnheit was Du da hast!
Also, wie lautet die Meldung.
"newguestform.yes.Checked" sieht recht seltsam aus. Eine CheckBox hätte eigentlich nur einen Namen. Was wäre dann das yes in der mitte?

Ein grüner Pfeil ist allerdings seltsam. Sieht eher nach einem Breakpoint aus, wenn der Debugger dort anhält.

Grüsse, Daniel :hi:

Daniel B 15. Mär 2003 19:59

Zitat:

Zitat von Hansa
Vor allem aber : ; hinter jedes "bla", also "bla;"
Da es aber keine Regel ohne Ausnahme gibt :
vor dem ELSE BEGIN keiner :!:
@everyone : an so was kann ein Anfänger verzweifeln.

Daher wäre es doch sinnvoll sich gleich anzugewöhnen grundsätzlich alles in begin und end zu setzen, auch wenn es anfangs nur eine Zeile ist, später wenn man etwas geschickter ist und die Regeln hält, kann man immernoch kürzer schreiben.

Grüsse, Daniel :hi:

Luckie 16. Mär 2003 02:14

Zitat:

Zitat von flomei
Das geht jetzt. Er fängt an zu kompilieren und dann krieg ich ne üble Fehlermeldung.

*Grrrrrrrrr* Und was für eine bitte? :evil:

Desweitern kenne ich kein Objekt, welches die Methode oder Eigenschaft "yes" kennen würde. :shock:

Einen Haken in eine Checkbox setzte man mit:
Delphi-Quellcode:
  Chekcbox1.Checked := TRUE;
So und jetzt bitte noch mal alles komplett mit Code, wo er stehen bleibt mit was für einer Fehlermeldung und von was für einen Typ die Objekte sind.

Hättest du das gleich von anfang an beherzigt, dann wäre dein Problem wohl schon spätestens nach dem zweiten Posting gelöst gewesen. Und wenn du dann noch die Hilfe zu Rate gezogen hättest plus eventuell ein paar Grundlagen Tutorilas und / oder Bücher, dann wäre dein Posting sogar wahrscheinlich überflüssig. Dies bezüglich will ich dir auch gleich noch zwei gute Seiten an das Herz legen: www.delphi-treff.de und www.delphi-source.de .

Anmerkung:
Der grüne Pfeil ist nicht seltsam, den zeig die IDE immer, wenn der Debugger an einer fehlerhaften Stelle im Code stehen bleibt. Die Zeile ist dann noch zusätzlich farblich gekennzeichnet. Und die zugehörige Fehlermeldung steht unten im Ausgabefenster.

______________________________________


Und das nächste mal bitte für eine neue Frage einen neuen Thread! Jetzt ist es schon zu spät, wo schon so viele geantwortet haben.

Noch was: Quote-Tags heißen Quote-Tags, weil man Zitate damit kennzeichnet. Und jetzt rate mal für was die Code-Tages und insbesondere die Delphi-Tags da sind. :roll:

flomei 16. Mär 2003 13:07

Liste der Anhänge anzeigen (Anzahl: 2)
RE: hm

Das ist ein Breakpoint! Ich krieg immer ne Meldung wegen einer Zugriffsverletzung.

newguestform = Form2

yes = RadioButton in einer GroupBox

Wenn ich das so:
Delphi-Quellcode:
if
yes.Checked
then
.
.
.
schreibe krieg ich eine Fehlermeldung:
Zitat:

[Error] Unit2.pas(94): Undeclared identifier: 'yes'
Mit newguestform davor hab ich das Problem nicht.


Auf Luckies Bitte hin hab ich den kompletten Quelltext mal angehängt.
Das ganze soll ein Verwaltungsprogramm für ein Hotel werden (zum Gäste anlegen und so) und ausserdem die Fehlermeldung

flomei 16. Mär 2003 13:11

Ich immer noch/ schon wieder: Luckie verzweifel bitte nicht an mir!
:lol: :angle2: :angle: :oops: :roll: :? :)

Daniel B 16. Mär 2003 13:43

Ich habe den Fehler, aber Du wirst ihn selber suchen. Siehe Anhang.
Du schaust Dir das Bild an bist Du es kapiert hast!!

Grüsse, Daniel :hi:

flomei 16. Mär 2003 15:50

Delphi-Quellcode:
end;
nach dem addnewguestfinal... ist falsch, oder?
Hoffe ich mal!
:? :? :?

MfG Florian

Daniel B 16. Mär 2003 15:51

Du hast nach dem end; der Prozedur einfach irgedn welche Zeilen geschrieben. Also ausserhalb. Kann nicht gehen.

Grüsse, Daniel :hi:

flomei 16. Mär 2003 16:04

Nach dem end; der Unterprozedur:
Delphi-Quellcode:
end;
begin
Das ist das end, oder?

Wie soll man das denn ändern damit es geht? Denn jetzt ist die ja beendet aber wie soll man die neue einleiten (Prozedur)

Wenn man das Semikolon entfernt gibt es einfach diese Meldung:
Delphi-Quellcode:
[Error] Unit2.pas(92): ';' expected but 'BEGIN' found
Ist also noch nicht fertig.

hm...

MfG Florian

Daniel B 16. Mär 2003 16:07

Du solltest Dir im Klaren sein was Du tust und was Du willst!

Also,
Delphi-Quellcode:
procedure
begin
  //Sonstiger Code
  if then
  begin
  end
  else
  begin
  end;
  //Sonstiger Code
  if then
  begin
  end
  else
  begin
  end;
  //Sonstiger Code
  if then
  begin
  end
  else
  begin
  end;
  //Sonstiger Code
  if then
  begin
  end
  else
  begin
  end;
end;
Wo ist das Problem?

Grüsse, Daniel :hi:

flomei 16. Mär 2003 16:21

Juhu! Jetzt läuft alles.

Das war eine wirklich schwere Geburt. Vielen Dank an alle die geholfen haben und nicht an mir verzweifelt sind.

Ich bitte einen Moderator darum, diesen Thread zu schliessen, damit endlich Schluss ist.

Thx again!

:bouncing4: :bounce1: :bounce2: :bounce2: :bounce1: :bouncing4:

Thx again! ;-)

MfG Florian

flomei 16. Mär 2003 16:22

*lock*
:mrgreen:

Daniel B 16. Mär 2003 16:24

Zitat:

Zitat von flomei
Juhu! Jetzt läuft alles.

Halleluja. ;)
Zitat:

Das war eine wirklich schwere Geburt. Vielen Dank an alle die geholfen haben und nicht an mir verzweifelt sind.
Ich bitte einen Moderator darum, diesen Thread zu schliessen, damit endlich Schluss ist.
Naja, schliessen jetzt nicht gerade. Aber aufgrund Deines Beitrages hat glaub ich jeder gemerkt das hier Schluss ist. ;)
Zitat:

Thx again!
:bouncing4: :bounce1: :bounce2: :bounce2: :bounce1: :bouncing4:
Thx again! ;-)
Keine Ursache. :mrgreen:

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz