Advertisement

03.05.2008 at 09:58AM PST, ID: 23216890 | Points: 500
[x]
Attachment Details

how do I control the message box while using the up down control?

Tags: Borland, C++ Builder, 6
I wrote this code to handle the up down control handle it is associated with an edit box and populates a valuelist editor, all I want to do is ask a question if the user presses the down button on the up down control which deletes a row in the valuelist editor if yes delete row if not dont do anything. It seems to work fine but if you answer the question with a cancel then clicking anywhere on the form causes the up down control to be clicked again....Why???

void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
{
    //we are clicking up if Button is 0
    if(Button == 0)
    {
        //insert new row with group number
        ValueListEditor2->Strings->Add("Group " + AnsiString(Edit1->Text) + "=");
         //we must be clicking down if Button is 1
      } else {
        //user must press ok for this code to execute
        if(MessageBox(0, (LPSTR)"Do you really want to erase the group?", "ERROR", MB_ICONWARNING | MB_OKCANCEL) == IDOK)
        {
            ValueListEditor2->DeleteRow(ValueListEditor2->RowCount-1);
        //user must have pressed no
        } else {
            Edit1->Text = ValueListEditor2->RowCount-1;
        }
    }
    if(Edit1->Text == "0")
        ValueListEditor2->Visible = false;
    else
        ValueListEditor2->Visible = true;
}
Start your free trial to view this solution
Question Stats
Zone: Programming
Question Asked By: cnickerson
Question Asked On: 03.05.2008
Participating Experts: 2
Points: 500
Views: 0
Translate:
Loading Advertisement...
03.05.2008 at 11:45AM PST, ID: 21053682

Rank: Guru

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.06.2008 at 06:49AM PST, ID: 21060632

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.06.2008 at 07:33AM PST, ID: 21061131

Rank: Guru

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.06.2008 at 10:49AM PST, ID: 21063424

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.06.2008 at 01:11PM PST, ID: 21064805

Rank: Guru

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.06.2008 at 01:15PM PST, ID: 21064836

Rank: Guru

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.13.2008 at 10:45AM PDT, ID: 21345525

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
Microsoft
  • Internet Protocols
  • Applications
  • Development
  • OS
  • Hardware
  • Windows Security
Apple
  • Operating Systems
  • Hardware
  • Programming
  • Networking
  • Software
Internet
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Spy / Ad Blockers
  • Web Browsers
  • New Net Users
  • Web Development
  • Chat / IM
  • Anti Spam
  • Web Servers
  • Anti-Virus
  • Email Clients
Gamers
  • Tips
  • Online / MMORPG
  • Puzzle
  • Emulators
  • Action / Adventure
  • Role Playing
  • Consoles
  • Game Programming
  • Strategy
  • Sports
  • Misc
  • Computer Games
Digital Living
  • Hardware
  • New Net Users
  • New Users
  • Software
  • Digital Music
  • Gaming World
  • Home Security
  • Apple
  • Networking Hardware
Virus & Spyware
  • Vulnerabilities
  • IDS
  • Encryption
  • Anti-Virus
  • Operating Systems Security
  • Software Firewalls
  • WebApplications
  • Cell Phones
  • Operating Systems
  • Internet
  • Hardware Firewalls
Hardware
  • Handhelds / PDAs
  • Displays / Monitors
  • Components
  • Networking Hardware
  • Peripherals
  • Laptops/Notebooks
  • Storage
  • Servers
  • Desktops
  • New Users
  • Misc
  • Apple
Software
  • System Utilities
  • Industry Specific
  • Network Management
  • Photos / Graphics
  • Page Layout
  • VMWare
  • Misc
  • Web Development
  • OS
  • CYGWIN
  • Voice Recognition
  • Message Queue
  • Quality Assurance
  • Security
  • Firewalls
  • MultiMedia Applications
  • Development
  • Database
  • Office / Productivity
  • Business Management
  • OS/2 Apps
  • Server Software
  • Internet / Email
ITPro
  • OS
  • Storage
  • Encryption
  • Operating Systems Security
  • Apple Hardware
  • Laptops & Notebooks
  • Servers
  • Networking Hardware
  • Peripherals
  • Devices
  • Displays / Monitors
  • WebTrends / Stats
  • Search Engines
  • Firewalls
  • WebApplications
  • IDS
  • Vulnerabilities
  • Email Clients
  • File Sharing
  • Spy / Ad Blockers
  • Web Browsers
  • Web Servers
  • Networking
  • Anti-Virus
  • Chat / IM
  • Anti Spam
Developer
  • Web Servers
  • Web Browsers
  • Game Programming
  • Dev Tools
  • Industry Specific
  • Office / Productivity
  • Database
  • CYGWIN
  • Web Development
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Programming
  • Content Management
  • Application Servers
  • Protocols
Storage
  • Removable Backup Media
  • Storage Technology
  • Servers
  • Grid
  • Remote Access
  • Backup / Restore
  • Misc
  • Hard Drives
OS
  • Miscellaneous
  • Security
  • Development
  • Linux
  • VMWare
  • MainFrame OS
  • Unix
  • Apple
  • OS / 2
  • AS / 400
  • BeOS
  • Microsoft
  • VMS / OpenVMS
Database
  • Oracle
  • Miscellaneous
  • MySQL
  • Software
  • Sybase
  • Contact Management
  • PostgreSQL
  • Data Manipulation
  • Clarion
  • InterSystems Cache
  • Siebel
  • MUMPS
  • OLAP
  • SQLBase
  • SAS
  • GIS & GPS
  • 4GL
  • Berkeley DB
  • DB2
  • Informix
  • Interbase / Firebird
  • FoxPro
  • Reporting
  • LDAP
  • Filemaker Pro
  • MS SQL Server
  • dBase
  • MS Access
Security
  • Misc
  • Web Browsers
  • Software Firewalls
  • Operating Systems Security
  • File Sharing
  • Spy / Ad Blockers
  • Vulnerabilities
  • WebApplications
  • IDS
  • Anti-Virus
  • Encryption
  • Anti Spam
  • Email Clients
  • VPN
  • Chat / IM
Programming
  • Editors IDEs
  • Installation
  • Handhelds / PDAs
  • Multimedia Programming
  • System / Kernel
  • Algorithms
  • Game
  • Signal Processing
  • Project Management
  • Open Source
  • Database
  • Misc
  • Languages
  • Processor Platforms
  • Theory
Web Development
  • Scripting
  • Blogs
  • Web Servers
  • Software
  • Search Engines
  • Web Graphics
  • Images
  • Internet Marketing
  • Images and Photos
  • Components
  • Document Imaging
  • Web Languages/Standards
  • Illustration
  • WebApplications
  • Fonts
  • WebTrends / Stats
  • Authoring
  • Digital Camera Software
  • Miscellaneous
Networking
  • Protocols
  • Apple Networking
  • Network Management
  • Message Queue
  • Application Servers
  • Content Management
  • File Servers
  • Email Servers
  • Misc
  • Java Editors & IDEs
  • Wireless
  • Networking Hardware
  • Backup / Restore
  • System Utilities
  • ISPs & Hosting
  • Web Servers
  • Storage Technology
  • Removable Backup Media
  • Servers
  • Broadband
  • Grid
  • OS / 2
  • Novell Netware
  • Unix Networking
  • Windows Networking
  • Security
  • Telecommunications
  • Operating Systems
  • Linux Networking
Other
  • Community Advisor
  • Lounge
  • Community Support
  • New Net Users
  • Philosophy / Religion
  • Math / Science
  • Miscellaneous
  • URLs
  • Expert Lounge
  • Politics
  • Puzzles / Riddles
Community Support
  • Suggestions
  • New to EE
  • New Topics
  • Community Advisor
  • CleanUp
  • Announcements
  • General
  • Feedback
  • Input
  • EE Bugs
 
03.05.2008 at 11:45AM PST, ID: 21053682

Rank: Guru

This behavor is usually appeared when there is process of other control before exiting the event handler...
In a very few words works like a "buffer" of user clicks.
When a process is made inside 2 brackets and nothing else needed add a return to get out of the function...
If something else needed use a goto to go to the next process block...

George Tokas.
 
03.06.2008 at 06:49AM PST, ID: 21060632
can you show me what you mean in code??
 
03.06.2008 at 07:33AM PST, ID: 21061131

Rank: Guru

void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
{
    //we are clicking up if Button is 0
    if(Button == 0)
    {
        //insert new row with group number
        ValueListEditor2->Strings->Add("Group " + AnsiString(Edit1->Text) + "=");
         //we must be clicking down if Button is 1
////if nothing else needed here add return...
////EXAMPLE: we have to go to other process later on code:
////goto Out;
      } else {
        //user must press ok for this code to execute
        if(MessageBox(0, (LPSTR)"Do you really want to erase the group?", "ERROR", MB_ICONWARNING | MB_OKCANCEL) == IDOK)
        {
////code came back from outside the function click... MAYBE interfere with the event handler...
            ValueListEditor2->DeleteRow(ValueListEditor2->RowCount-1);
        //user must have pressed no
        } else {
            Edit1->Text = ValueListEditor2->RowCount-1;
        }
    }
Out:
    if(Edit1->Text == "0")
        ValueListEditor2->Visible = false;
    else
        ValueListEditor2->Visible = true;
}


George Tokas.
 
03.06.2008 at 10:49AM PST, ID: 21063424
Thanks very much i tried something similiar using return but no such luck....what do you mean by ////code came back from outside the function click... MAYBE interfere with the event handler...
 
03.06.2008 at 01:11PM PST, ID: 21064805

Rank: Guru

You may setting something used inside the event handler by calling a function and when code come back has to check again....
I made this particular "mistake" too many times...

George Tokas.
 
03.06.2008 at 01:15PM PST, ID: 21064836

Rank: Guru

All the above was to point out that in many places you may have a "bug" not by your mistake most of the times...

What I'm suggesting now:
Place a breakpoint in thr first line of the event handler and see if it is triggered more times than those you designed originaly...
If it is triggered then follow the code using F7 and see where it is happening...

George Tokas (again).
 
04.13.2008 at 10:45AM PDT, ID: 21345525
This Error Ocurres because unlike other components, UpDown triggers it's OnClick event before MouseUp event, happens.
To avoid this you, instead of using onmouseclick,  put your code in OnMouseUp Event.

 
 
20080236-EE-VQP-29 / EE_QW_2_20070628