![]() |
CheckBox innerhalb als "unbekannter bezeichner" au
Liste der Anhänge anzeigen (Anzahl: 2)
Hi, bevor ich mein prob schildere möchte ich sagen, dass ich schon die suchfunktion benutzt und leider nichts derartiges gefunden habe.
So jetzt zu meinem prob: Ich will ein Tool programmieren, was es erlaubt, zum Start einen PC-games vorherausgewählte Programme entweder zu starten oder zu schließen. Wie ich dies realisieren werde weiß ich schon zu 90%... Leider habe ich noch sehr wenig ahnung von delphi, jedoch schon erfahrung in pascal (was wie ich finde sehr delphi ähnelt, wenn soagr net gleicht, was wohl keiner wunder ist... borland...^^) Najo, back to topic: ich wollte durch eine if-anweisung gucken, ob eine checkbox angewählt ist (CheckBox1.Checked, wenn ich mich net irre^^) und dann einer integer-variable entweder die 1 oder die 0 zuweisen. Jedoch bekomme ich eine Fehlermeldung beim Compilieren ("undefinierter bezeichner CheckBox1"). Das Seltsame ist, dass, wenn ich die if-anweisung aus der prozedure rausnehme keinerlei fehlermeldungen erscheinen, obwohl in einer prozedur "weiter unten" die selbe checkbox (mit der eigenschaft checked) erfolgreich angesprochen wird. Das gleiche passiert in der prozedure mit der CheckBox2, obwohl auch sie "weiter unten" tadellos funzt :( zur besseren übersicht poste ich hier mal den SourceCode, die INI und ein ScreenShot vom Fehler...
Delphi-Quellcode:
unit main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IniFiles, ShellApi, StdCtrls, Menus; type TForm1 = class(TForm) GroupBox1: TGroupBox; ComboBox1: TComboBox; Button1: TButton; Button2: TButton; ComboBox2: TComboBox; GroupBox2: TGroupBox; GroupBox3: TGroupBox; GroupBox4: TGroupBox; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Label1: TLabel; Button7: TButton; Button8: TButton; Button9: TButton; Button10: TButton; Button11: TButton; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; RadioButton5: TRadioButton; RadioButton6: TRadioButton; procedure Button9Click(Sender: TObject); procedure FormCreate(Sender: TObject); private funzt: String; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; game: String; app: String; ExePath: String; ini: TIniFile; startwithwin, onlyoneexe: Integer; implementation {$R *.dfm} procedure ReadMainConfig; begin ExePath:=ExtractFilePath(ParamStr(0)); ini:=TInifile.Create(ExePath+'\config.ini'); try startwithwin:=ini.ReadInteger('Options','StartWithWin',2); onlyoneexe:=ini.ReadInteger('Options','OnlyOneExe',2); finally ini.free; end; end; procedure SaveMainConfig; var gamestart, gamefinish: Integer; gameprogramoption: String; begin if CheckBox1.Checked:=true then startwithwin:=1 \\<-HIER else startwithwin:=0; \\<-HIER if CheckBox2.Checked:=true then onlyoneexe:=0 \\<-HIER else onlyoneexe:=0; \\<-HIER end; procedure TForm1.Button9Click(Sender: TObject); begin close; end; procedure TForm1.FormCreate(Sender: TObject); begin ReadMainConfig; if startwithwin = 1 then CheckBox1.Checked:= true; if onlyoneexe = 1 then CheckBox2.Checked:= true; app:='COD'; ShowMessage(app); end; end. Meine Frage ist nun, wie ich diesen Fehler beheben kann. schonmal im vorraus big THX!!! mfg GimbaR |
Re: CheckBox innerhalb als "unbekannter bezeichner"
CheckBox1 gehört der Klasse des Forms. Du versuchst aber, sie aus einer externen procedure abzufragen.
Mache SaveMainConfig am besten zu einer Funktion der Form-Klasse, dann sollte es gehen. Also in etwa so...
Code:
Ich hoff ich hab mich nu nich vertippert... :wink:
unit main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IniFiles, ShellApi, StdCtrls, Menus; type TForm1 = class(TForm) GroupBox1: TGroupBox; ComboBox1: TComboBox; Button1: TButton; Button2: TButton; ComboBox2: TComboBox; GroupBox2: TGroupBox; GroupBox3: TGroupBox; GroupBox4: TGroupBox; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Label1: TLabel; Button7: TButton; Button8: TButton; Button9: TButton; Button10: TButton; Button11: TButton; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; RadioButton5: TRadioButton; RadioButton6: TRadioButton; procedure Button9Click(Sender: TObject); procedure FormCreate(Sender: TObject); private game: String; app: String; ExePath: String; ini: TIniFile; startwithwin, onlyoneexe: Integer; funzt: String; { Private-Deklarationen } procedure ReadMainConfig; procedure SaveMainConfig; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ReadMainConfig; begin ExePath:=ExtractFilePath(ParamStr(0)); ini:=TInifile.Create(ExePath+'\config.ini'); try startwithwin:=ini.ReadInteger('Options','StartWithWin',2); onlyoneexe:=ini.ReadInteger('Options','OnlyOneExe',2); finally ini.free; end; end; procedure TForm1.SaveMainConfig; var gamestart, gamefinish: Integer; gameprogramoption: String; begin if CheckBox1.Checked:=true then startwithwin:=1 \\<-HIER else startwithwin:=0; \\<-HIER if CheckBox2.Checked:=true then onlyoneexe:=0 \\<-HIER else onlyoneexe:=0; \\<-HIER end; procedure TForm1.Button9Click(Sender: TObject); begin close; end; procedure TForm1.FormCreate(Sender: TObject); begin ReadMainConfig; if startwithwin = 1 then CheckBox1.Checked:= true; if onlyoneexe = 1 then CheckBox2.Checked:= true; app:='COD'; ShowMessage(app); end; end. Grüsse! |
Re: CheckBox innerhalb als "unbekannter bezeichner"
THX, nur gibts es ein prob, wenn ich zB die variable ExePath in den private-breich schreib, wird sie als undefinierter bezeichner ausgegeben (genau wie die anderen). Ich kann sie doch trotzdem unter "var" deklarieren, dann müsste es hinhauen, oder?
Aber trotzdem nen dickes THX!!! boah, hätte nie gedacht, dass das so schnell geht... |
Re: CheckBox innerhalb als "unbekannter bezeichner"
So, hab das jetzt mal so eingetippt...
Delphi-Quellcode:
Jetzt erscheint jedoch der fehler "Ungenügende Forward- oder External-Deklarationen: 'TForm1.ReadMainConfig'
unit main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IniFiles, ShellApi, StdCtrls, Menus; type TForm1 = class(TForm) GroupBox1: TGroupBox; ComboBox1: TComboBox; Button1: TButton; Button2: TButton; ComboBox2: TComboBox; GroupBox2: TGroupBox; GroupBox3: TGroupBox; GroupBox4: TGroupBox; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Label1: TLabel; Button7: TButton; Button8: TButton; Button9: TButton; Button10: TButton; Button11: TButton; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; RadioButton5: TRadioButton; RadioButton6: TRadioButton; procedure Button9Click(Sender: TObject); procedure FormCreate(Sender: TObject); private procedure ReadMainConfig; procedure SaveMainConfig; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; NIM : TNotifyIconData; funzt: String; game: String; app: String; ExePath: String; ini: TIniFile; startwithwin, onlyoneexe: Integer; implementation {$R *.dfm} procedure TForm1ReadMainConfig; begin ExePath:=ExtractFilePath(ParamStr(0)); ini:=TInifile.Create(ExePath+'\config.ini'); try startwithwin:=ini.ReadInteger('Options','StartWithWin',2); onlyoneexe:=ini.ReadInteger('Options','OnlyOneExe',2); finally ini.free; end; end; procedure TForm1.SaveMainConfig; var gamestart, gamefinish: Integer; gameprogramoption: String; begin if CheckBox1.Checked=true then startwithwin:=1 else startwithwin:=0; if CheckBox2.Checked= true then onlyoneexe:=1 else onlyoneexe:=0; end; procedure TForm1.Button9Click(Sender: TObject); begin close; end; procedure TForm1.FormCreate(Sender: TObject); begin ReadMainConfig; if startwithwin = 1 then CheckBox1.Checked:= true; if onlyoneexe = 1 then CheckBox2.Checked:= true; app:='COD'; ShowMessage(app); end; end. sry :( |
Re: CheckBox innerhalb als "unbekannter bezeichner"
Kein Zugriff? Haste du evtl. noch die ReadMainConfig als eigenständige Procedure, oder wie im meinem Beispiel auch in die Klasse eingefügt? Aber da du ja ExePath nirgendwo sonst zu brauchen scheinst, kannst du die auch direkt lokal in der Procedure ReadMainConfig deklarieren.
Tempo!? Tja Frau ist noch mit ein paar Arbeitskoleginnen unterwegs und mir ist langweilig! :zwinker: Grüsse! |
Re: CheckBox innerhalb als "unbekannter bezeichner"
boah, bin ich blöd, hab vergessen einen punkt zu setzten, mein fehler, jetzt funztst...
THX! |
Re: CheckBox innerhalb als "unbekannter bezeichner"
Da fehlt ein Punkt!
TForm1ReadMainConfig ^--- |
Re: CheckBox innerhalb als "unbekannter bezeichner"
Da fehlt nur ein Punkt in der Implementation. Poste vielleicht nur die relevanten Dinge aus deinem Text. Die ganzen Komponenten interessieren wenig, wichtig ist es ja erst ab den procedures.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:33 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