Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Help needed with procedure

Posted on 2010-08-12
3
Medium Priority
?
219 Views
Last Modified: 2012-05-10
Hello,

I have a main form called MainForm and a dialogform called frmSettings
that can be accessed by menu-item Settings. On the settings-form I have
3 checkboxes called chkRemoveBtn, chkSmallBtn and chkFlat.
All the states of these checkboxes are being loaded and saved to ini-file.
I have put the 3 procedure that belong to these checkboxes to the code-
section. For checkbox chkRemoveBtn and chkSmallBtn I have code in the
OnCreate-event of the mainform that looks in the ini-file if these checkboxes
are check or not. Now I am working on checkbox chkFlat, that looks like this:

  If FIniFile.ReadBool ('ENV', 'Flat', False) then
  OutlookBar.BorderStyle := cBorderStyle[chkFlat.Checked];

I get undeclared identifier: chkFlat. That because its on the form frmSettings
What can I do about this.

Who knows the solution.

Greetings,

Peter Kiers
procedure TfrmSettings.chkRemoveBtnClick(Sender: TObject);
begin
  if chkRemoveBtn.Checked then
  begin
    MainForm.OutlookBar.LargeImages := nil;
    MainForm.OutlookBar.SmallImages := nil;
  end
  else
  begin
    MainForm.OutlookBar.LargeImages := MainForm.mglstLarge;
    MainForm.OutlookBar.SmallImages := MainForm.mglstSmall;
  end;
end;
(*---------------------------------------------------*)
procedure TMainForm.acSmallButtonsExecute(Sender: TObject);
const
  cButtonSize: array[boolean] of TJvBarButtonSize = (olbsLarge,olbsSmall);
begin
  acSmallButtons.Checked := not acSmallButtons.Checked;
  OutlookBar.ButtonSize := cButtonSize[acSmallButtons.Checked];
end;
(*---------------------------------------------------*)
procedure TfrmSettings.chkFlatClick(Sender: TObject);
const
  cBorderStyle:array [boolean] of TBorderStyle = (bsSingle, bsNone);
begin
  MainForm.OutlookBar.BorderStyle := cBorderStyle[chkFlat.Checked];
end;
(*---------------------------------------------------*)
procedure TMainForm.FormCreate(Sender: TObject);
const
  cButtonSize: array[boolean] of TJvBarButtonSize = (olbsLarge,olbsSmall);
  cBorderStyle:array [boolean] of TBorderStyle = (bsSingle, bsNone);
var
   DataPath: string;
   conn_str:string;
   FIniFile: TIniFile;
begin
  PgCtrlMain.ActivePage := tbshGlucose;
  PgCtrlAg.ActivePage := tbshDayView;
  FIniFile:= TIniFile.Create( ChangeFileExt(Application.ExeName, '.ini') );
  if FIniFile.ReadBool ('ENV', 'RemoveButtons', False) then
  begin
    OutlookBar.LargeImages := nil;
    OutlookBar.SmallImages := nil;
  end
  else
  begin
    OutlookBar.LargeImages := mglstLarge;
    OutlookBar.SmallImages := mglstSmall;
  end;
  If FIniFile.ReadBool ('ENV', 'SmallButtons', False) then
  OutlookBar.ButtonSize := cButtonSize[acSmallButtons.Checked];

  If FIniFile.ReadBool ('ENV', 'Flat', False) then
  OutlookBar.BorderStyle := cBorderStyle[chkFlat.Checked];

  FIniFile.Free;
......

Open in new window

0
Comment
Question by:peterkiers
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 13

Accepted Solution

by:
aflarin earned 2000 total points
ID: 33426944
procedure TMainForm.FormCreate(Sender: TObject);
var
     ...
     bSmallButtons, bFlat: Boolean; // add these vars
...
   bSmaIlButtons:= FIniFile.ReadBool ('ENV', 'SmallButtons', False);
   OutlookBar.ButtonSize := cButtonSize[bSmallButtons];

    bFlat:= FIniFile.ReadBool ('ENV', 'Flat', False);
    OutlookBar.BorderStyle := cBorderStyle[bFlat];
......
0
 
LVL 1

Author Comment

by:peterkiers
ID: 33426974
Thank you for this solution:

  FIniFile:= TIniFile.Create( ChangeFileExt(Application.ExeName, '.ini') );
  if FIniFile.ReadBool ('ENV', 'RemoveButtons', False) then
  begin
    OutlookBar.LargeImages := nil;
    OutlookBar.SmallImages := nil;
  end
  else
  begin
    OutlookBar.LargeImages := mglstLarge;
    OutlookBar.SmallImages := mglstSmall;
  end;
  bSmallButtons:= FIniFile.ReadBool ('ENV', 'SmallButtons', False);
  OutlookBar.ButtonSize := cButtonSize[bSmallButtons];
  bFlat:= FIniFile.ReadBool ('ENV', 'Flat', False);
  OutlookBar.BorderStyle := cBorderStyle[bFlat];
  FIniFile.Free;

it works great.

Greetings,

Peter Kiers
0
 
LVL 13

Expert Comment

by:aflarin
ID: 33427016
You're welcome, Peter
0

Featured Post

Tech or Treat! - Giveaway

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
Suggested Courses

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question