Re: Abi-Rechner
:glaskugel: Dann machst Du irgend etwas falsch, ich habe sie auch "frei Hand" in meinen Source geschrieben. Zur Not häng mal Deine Unit an, ich komplettiere sie dann.
|
Re: Abi-Rechner
Liste der Anhänge anzeigen (Anzahl: 1)
Alles klar!
siehe Anhang...
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus; type TForm2 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; CheckBox5: TCheckBox; CheckBox6: TCheckBox; procedure RefreshCbCount(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } FCntCBs: Cardinal; public { Public-Deklarationen } end; const cb1 = 1; cb2 = 2; cb3 = 3; cb4 = 4; cb5 = 5; cb6 = 6; var Form2: TForm2; iMenge: set of Byte; implementation uses Unit3, Unit1; {$R *.dfm} { Tform12 } procedure TForm1.RefreshCBCount(Sender: TObject); begin if Sender is TCheckBox then begin if TCheckBox(Sender).Checked then inc(FCntCBs) else dec(FCntCBs); if FCntCBs > 3 then MessageBox(Handle,'Zuviele Checkboxen gewählt','Info',MB_OK or MB_ICONINFORMATION); end; end; procedure TForm2.Button2Click(Sender: TObject); begin form2.Visible:=false; form1.visible:=true; end; procedure TForm2.Button4Click(Sender: TObject); begin form3.Visible:=true; end; procedure TForm2.Button3Click(Sender: TObject); begin iMenge:= []; if checkbox1.Checked then include(iMenge, cb1); if checkbox2.Checked then include(iMenge, cb2); if checkbox3.Checked then include(iMenge, cb3); if checkbox4.Checked then include(iMenge, cb4); if checkbox5.Checked then include(iMenge, cb5); if checkbox6.Checked then include(iMenge, cb6); if FCntCBs > 3 then MessageBox(Handle,'Zuviele Checkboxen gewählt','Info',MB_OK or MB_ICONINFORMATION); if (cb1) and (cb2) and (cb3) in iMenge then showmessage('Naturwissenschaft'); //Abfragen der Menge if (cb4) and (cb5) and (cb6) in iMenge then showmessage('Sprache'); {if cb1 and cb2 and cb4 then form4.label2.caption:= } end; end. |
Re: Abi-Rechner
Ich seh schon, was fehlt. Schreib mal in der Typdeklaration des Formulars folgene Zeile vor das "private":
Delphi-Quellcode:
Btw: Auch wenn das kompiliert wird, glaube ich, dass Du bei
procedure RefreshCBCount(Sender: TObject);
Zitat:
Schreib das lieber mal so um:
Delphi-Quellcode:
if (cb1 in iMenge) and (cb2 in iMenge) and (cb3 in iMenge) then showmessage('Naturwissenschaft');
|
Re: Abi-Rechner
Nein, das hat nicht gefhlt, hab es nur wo anders hingeschrieben...
Aber trotzdem kann es nicht kompiliert werden, bleibt immer bei der Prozedur hängen:
Delphi-Quellcode:
Im Übrigen danke für den anderen Tipp!
procedure TForm1.RefreshCBCount(Sender: TObject);
begin {usw} |
Re: Abi-Rechner
Das muss ja auch TForm2 heißen.
[edit] Was mir gerade auffällt: Deine Logik scheint etwas merkwürdig zu sein. Wieso müssen die Checkboxen 1 bis 3 alle aktiv sein, um als Naturwissenschaft zu gelten? Das Gleiche mit den anderen Checkboxen :gruebel: [/edit] |
Re: Abi-Rechner
Ja da hast du Recht, werde ich gleich korrigieren...
Noch mal ne andere Frage[klappt jetzt]: Wie kann ich die Captions von Panels während des Programmablaufs ändern?
Delphi-Quellcode:
Das klappt nicht!!!
form5.Panel5.caption:='EN'
|
Re: Abi-Rechner
Was heißt "klappt nicht"? Compilerfehler oder Laufzeitfehler? Syntaktisch ist Dein Code in Ordnung.
|
Re: Abi-Rechner
ALso kleine Korrektur den vorher gegebenen Code kompiliert er, wenn ich aber so etwas schreibe:
Delphi-Quellcode:
heißt es "Poerator ist auf diesen Operandentyp nicht anwendbar.
if (cb1 in iMenge) and (cb2 in iMenge) and (cb4 in iMenge) then (form5.Panel5.caption:='EN') and (form2.panel1.caption:='1');
|
Re: Abi-Rechner
So geht das ja auch nicht. Versuch es mal so (ein Grundlagentutorial zu lesen wäre vielleicht auch eine gute Idee):
Delphi-Quellcode:
if (cb1 in iMenge) and (cb2 in iMenge) and (cb4 in iMenge) then
begin form5.Panel5.caption:='EN'; form2.panel1.caption:='1'; end; |
Re: Abi-Rechner
und warum schriebt er bei folgendem inkompatible Typen?
Delphi-Quellcode:
Sorry mein Fehler "caption" fehlt.
if (cb1 in iMenge) and (cb2 in iMenge) and (cb4 in iMenge) then begin form5.Panel5.caption:='EN'; form5.panel6.caption:='FRZ'; form5.Panel7:='PHY'; end;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 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