Support Board
Date/Time: Sun, 24 Nov 2024 06:57:01 +0000
"Hide Chart Drawings" question
View Count: 1746
[2013-05-01 18:38:09] |
joshtrader - Posts: 488 |
I have the "Hide Chart Drawings" command on my Chart Shortcut menu. Currently, it hides ALL drawings. Is there a way to make it hide only user-drawn drawings, and not those drawn using custom study code? I would think so, since ACSIL differentiates between user-drawn and non-user-drawn drawings with UseTool.
|
[2013-05-01 21:17:38] |
Sierra Chart Engineering - Posts: 104368 |
Yes, we will correct this. It should not be hiding ACSIL drawings.
Sierra Chart Support - Engineering Level Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy: https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service: Sierra Chart Teton Futures Order Routing |
[2024-10-29 12:20:03] |
User676363 - Posts: 72 |
I'm curious about what options are available for "Hide Chart Drawings", "Erase All Text", and "Erase All Non-Text Drawings" in the cases where the ACSIL developer has used the user-drawn objects. This type of code seems to prevent those shortcut menus from functioning: rect.AddMethod = UTAM_ADD_OR_ADJUST; rect.AddAsUserDrawnDrawing = 1; rect.LockDrawing = 1; sc.UseTool(rect) The Lock and Hidden properties can be updated using the "Manage Chart Drawings Window" but the "Hide All Studies", erase, and hide drawings shortcuts do not seem to have any effect on studies where those user-drawn objects are left on the chart. They stay there even after the study is removed and while the objects do appear in the "Manage Chart Drawings Window" and can be deleted, I'm not seeing a way to really convert them into real user drawn objects that I can manage with the "Hide Chart Drawings" shortcut. Can anybody explain what property the developers are failing to use in a study where drawings are left on the chart, user can manipulate them, study can be removed, and they remain, but the shortcuts distinguish them from normal drawings and fail to work? Thank you. Here's some code so as to not leave anybody in the dark as to an example. Hopefully the comments are clear and it will be obvious where the example has gone wrong in terms of trying to create the two types of objects. One that will hide/show with the study and one that will hide/show outside the study for the user. #include "sierrachart.h"
SCDLLName("Four Rectangles Testing Lock and User-Drawn Settings") SCSFExport scsf_DisplayFourRectangles(SCStudyInterfaceRef sc) { if (sc.SetDefaults) { sc.GraphName = "Four Rectangles Test: Lock and User-Drawn Settings"; sc.AutoLoop = 0; // Add an input to control rectangle generation sc.Input[0].Name = "Generate Rectangles"; sc.Input[0].SetYesNo(false); // Default to "No" to prevent repeated creation return; } // Only generate rectangles if user has enabled "Generate Rectangles" if (!sc.Input[0].GetYesNo()) return; // Define unique positions for each rectangle to avoid overlap int startBarIndex = sc.ArraySize - 60; int endBarIndex = sc.ArraySize - 20; float topPrice = sc.BaseData[SC_HIGH][startBarIndex] + 4.0f; // Higher position for top row float midTopPrice = sc.BaseData[SC_HIGH][startBarIndex] + 2.0f; // Mid position for top row float midBottomPrice = sc.BaseData[SC_HIGH][startBarIndex]; // Mid position for bottom row float bottomPrice = sc.BaseData[SC_LOW][startBarIndex] - 2.0f; // Lower position for bottom row // 1. Rectangle: LockDrawing = 0, AddAsUserDrawnDrawing = 0 s_UseTool rect1; rect1.Clear(); rect1.Region = 0; rect1.ChartNumber = sc.ChartNumber; rect1.DrawingType = DRAWING_RECTANGLEHIGHLIGHT; rect1.BeginIndex = startBarIndex; rect1.EndIndex = (startBarIndex + endBarIndex) / 2; // Left column rect1.BeginValue = topPrice; rect1.EndValue = midTopPrice; rect1.Color = RGB(0, 128, 255); // Light blue rect1.LineWidth = 2; rect1.AddMethod = UTAM_ADD_OR_ADJUST; rect1.AllowSaveToChartbook = 1; rect1.AddAsUserDrawnDrawing = 0; rect1.LockDrawing = 0; rect1.Text = "Lock: 0, User-Drawn: 0"; // This rectangle disappears after recalculation or if a // Settings:Yes, Settings:Apply, Study:OK sequence is // applied to the dialogs sc.UseTool(rect1); // 2. Rectangle: LockDrawing = 0, AddAsUserDrawnDrawing = 1 s_UseTool rect2; rect2.Clear(); rect2.Region = 0; rect2.ChartNumber = sc.ChartNumber; rect2.DrawingType = DRAWING_RECTANGLEHIGHLIGHT; rect2.BeginIndex = (startBarIndex + endBarIndex) / 2; rect2.EndIndex = endBarIndex; // Right column rect2.BeginValue = topPrice; rect2.EndValue = midTopPrice; rect2.Color = RGB(255, 128, 0); // Orange rect2.LineWidth = 2; rect2.AddMethod = UTAM_ADD_OR_ADJUST; rect2.AllowSaveToChartbook = 1; rect2.AddAsUserDrawnDrawing = 1; rect2.LockDrawing = 0; rect2.Text = "Lock: 0, User-Drawn: 1"; // User can manipulate, unaffected by "Hide Chart // Drawings", can be hidden using Manage Drawings or right/click sc.UseTool(rect2); // 3. Rectangle: LockDrawing = 1, AddAsUserDrawnDrawing = 0 s_UseTool rect3; rect3.Clear(); rect3.Region = 0; rect3.ChartNumber = sc.ChartNumber; rect3.DrawingType = DRAWING_RECTANGLEHIGHLIGHT; rect3.BeginIndex = startBarIndex; rect3.EndIndex = (startBarIndex + endBarIndex) / 2; // Left column rect3.BeginValue = midBottomPrice; rect3.EndValue = bottomPrice; rect3.Color = RGB(128, 255, 0); // Green rect3.LineWidth = 2; rect3.AddMethod = UTAM_ADD_OR_ADJUST; rect3.AllowSaveToChartbook = 1; rect3.AddAsUserDrawnDrawing = 0; rect3.LockDrawing = 1; rect3.Text = "Lock: 1, User-Drawn: 0"; // This rectangle disappears after recalculation or if a // Settings:Yes, Settings:Apply, Study:OK sequence is // applied to the dialogs sc.UseTool(rect3); // 4. Rectangle: LockDrawing = 1, AddAsUserDrawnDrawing = 1 s_UseTool rect4; rect4.Clear(); rect4.Region = 0; rect4.ChartNumber = sc.ChartNumber; rect4.DrawingType = DRAWING_RECTANGLEHIGHLIGHT; rect4.BeginIndex = (startBarIndex + endBarIndex) / 2; rect4.EndIndex = endBarIndex; // Right column rect4.BeginValue = midBottomPrice; rect4.EndValue = bottomPrice; rect4.Color = RGB(128, 0, 255); // Purple rect4.LineWidth = 2; rect4.AddMethod = UTAM_ADD_OR_ADJUST; rect4.AllowSaveToChartbook = 1; rect4.AddAsUserDrawnDrawing = 1; rect4.LockDrawing = 1; rect4.Text = "Lock: 1, User-Drawn: 1"; // User can manipulate, unlock, but still unaffected by "Hide // Chart Drawings". Can be manipulated with right/click sc.UseTool(rect4); // Set GenerateRectangles back to "No" after creation to prevent duplicates sc.Input[0].SetYesNo(false); } |
[2024-10-30 00:24:35] |
Sierra_Chart Engineering - Posts: 17154 |
You have to delete the drawings. Not hide them.
Sierra Chart Support - Engineering Level Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy: https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing |
To post a message in this thread, you need to log in with your Sierra Chart account: