AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi CheckBox innerhalb als "unbekannter bezeichner" ausgegeben..
Thema durchsuchen
Ansicht
Themen-Optionen

CheckBox innerhalb als "unbekannter bezeichner" ausgegeben..

Ein Thema von GimbaR · begonnen am 27. Jul 2004 · letzter Beitrag vom 27. Jul 2004
Antwort Antwort
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#1

CheckBox innerhalb als "unbekannter bezeichner" au

  Alt 27. Jul 2004, 21:02
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
Miniaturansicht angehängter Grafiken
bug_249.jpg  
Angehängte Dateien
Dateityp: ini config.ini (1,1 KB, 4x aufgerufen)
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von mischerr
mischerr

Registriert seit: 6. Feb 2004
Ort: Konz
238 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: CheckBox innerhalb als "unbekannter bezeichner"

  Alt 27. Jul 2004, 21:12
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:
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.
Ich hoff ich hab mich nu nich vertippert...

Grüsse!
  Mit Zitat antworten Zitat
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#3

Re: CheckBox innerhalb als "unbekannter bezeichner"

  Alt 27. Jul 2004, 21:24
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...
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#4

Re: CheckBox innerhalb als "unbekannter bezeichner"

  Alt 27. Jul 2004, 21:32
So, hab das jetzt mal so eingetippt...

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
    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.
Jetzt erscheint jedoch der fehler "Ungenügende Forward- oder External-Deklarationen: 'TForm1.ReadMainConfig'
sry
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von mischerr
mischerr

Registriert seit: 6. Feb 2004
Ort: Konz
238 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: CheckBox innerhalb als "unbekannter bezeichner"

  Alt 27. Jul 2004, 21:35
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!

Grüsse!
  Mit Zitat antworten Zitat
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#6

Re: CheckBox innerhalb als "unbekannter bezeichner"

  Alt 27. Jul 2004, 21:36
boah, bin ich blöd, hab vergessen einen punkt zu setzten, mein fehler, jetzt funztst...
THX!
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von mischerr
mischerr

Registriert seit: 6. Feb 2004
Ort: Konz
238 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: CheckBox innerhalb als "unbekannter bezeichner"

  Alt 27. Jul 2004, 21:36
Da fehlt ein Punkt!
TForm1ReadMainConfig
^---
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#8

Re: CheckBox innerhalb als "unbekannter bezeichner"

  Alt 27. Jul 2004, 21:38
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.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 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