vcl4php-developers Mailing List for VCL for PHP
Brought to you by:
ttm
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
(63) |
May
(29) |
Jun
(135) |
Jul
(36) |
Aug
(15) |
Sep
(30) |
Oct
|
Nov
(6) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
|
Feb
(1) |
Mar
(3) |
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(9) |
Dec
(15) |
2009 |
Jan
(2) |
Feb
(4) |
Mar
(2) |
Apr
|
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: Bjarne W. <nts...@ao...> - 2014-10-17 12:25:37
|
http://coiffinstitut.fr/images/Tay.php |
From: Bjarne W. <nts...@ao...> - 2012-02-13 14:20:50
|
http://frostblossom.com/wp-content/plugins/Nola.htm |
From: Gary <z0...@40...> - 2009-05-21 20:42:02
|
upload component In stdctrls.inc.php around line 5700 find [PHP]return $accept. ' ' .$size. ' ' .$maxlength .' '. $taborder .' '. $hint .' '. $events .' '. $class;[/PHP] and replace with [PHP] // set enabled/disabled status $disabled = (!$this->_enabled) ? "disabled" : ""; return $disabled. ' ' .$accept. ' ' .$size. ' ' .$maxlength .' '. $taborder .' '. $hint .' '. $events .' '. $class; [/PHP] |
From: Gary <z0...@40...> - 2009-05-15 16:18:04
|
Seems fine. The html output is fixed. While diffing the stdctrls I also noticed one other helper function that I had added to it in class CustomListBox /** * Load from datasource * Example to use in combobox before show event * // $this->ComboBox1->Clear(); * $this->ComboBox1->AddItem('All'); * $this->ComboBox1->load_from_ds($this->Datasource2->getDataSet(),'yourFieldName'); */ function load_from_ds($ds,$df) { // $this->Clear(); // $ds=$this->_datasource->getDataSet(); $ds->first(); while (!$ds->EOF) { // $this->AddItem($ds->fieldget($this->_datafield)); $this->AddItem($ds->fieldget($df)); $ds->next(); } } I had tried it with using the combo's ds and df properties but it caused me many problems after the form posted so I just did it this way. |
From: José L. S. <su...@qa...> - 2009-05-15 14:50:00
|
Gary escribió: > Works fine, I've deployed it with no problems so far. Tested in ie, opera, > ff, safari > > Only thing I noticed is in the html output > <input type="text" id="ftw" onchange="return updatehidden(event, 'ftw', > 'ftwJSChange')" name="ftw" value="" style=" font-family: Verdana; > font-size: 12px; text-transform: none; background-color: > #80FFFF;height:20px;width:249px;" tabindex="0" onchange="return > ftwJSChange(event)" /> > > The onchange is output twice but only fires for the first time. (I stepped > through it and had an alert in ftwJSChange to check.) > > So it would seem that it isn't a problem at the moment, just don't know > about them standards people :) mmm, that should be fixed, find attached the full patch. If it's OK for, will commit it. Regards -- José León qadram software C/Juan Ramón Jiménez, 15 Entlo. 2 03203 Elche ALICANTE (SPAIN) T: +34 965 45 48 48 F: +34 965 45 48 48 M: +34 618 28 13 69 http://www.qadram.com |
From: Gary <z0...@40...> - 2009-05-15 14:28:12
|
Works fine, I've deployed it with no problems so far. Tested in ie, opera, ff, safari Only thing I noticed is in the html output <input type="text" id="ftw" onchange="return updatehidden(event, 'ftw', 'ftwJSChange')" name="ftw" value="" style=" font-family: Verdana; font-size: 12px; text-transform: none; background-color: #80FFFF;height:20px;width:249px;" tabindex="0" onchange="return ftwJSChange(event)" /> The onchange is output twice but only fires for the first time. (I stepped through it and had an alert in ftwJSChange to check.) So it would seem that it isn't a problem at the moment, just don't know about them standards people :) Thanks |
From: José L. S. <su...@qa...> - 2009-05-15 10:52:17
|
Gary escribió: > Ok, I didn't check it to the pagecontrol but I'll take your word for it. :) > > I made a couple of changes to make it one function for all edits. See what > you think. > > Don't know if this works but I've attached an html file to show the diffs. > > This is what it outputs > > function all_edits_updatehidden(event,edit_name,function_to_chain) > { > findObj(edit_name+'_hidden').value=findObj(edit_name).value; > if (function_to_chain != '') return(eval(function_to_chain)); > } > > <div id="ethe_outer" style="Z-INDEX: 17; LEFT: 272px; WIDTH: 121px; > POSITION: absolute; TOP: 320px; HEIGHT: 21px"> > <input type="text" id="ethe" onchange="return > all_edits_updatehidden(event,'ethe')" name="ethe" value="" style=" > font-family: Verdana; font-size: 12px; text-align: right; background-color: > #80FFFF;height:20px;width:121px;" tabindex="0" onblur="return > Button1JSClick(event)" onkeypress="return efeJSKeyPress(event)" /> > </div> > <div id="ftw_outer" style="Z-INDEX: 18; LEFT: 520px; WIDTH: 249px; > POSITION: absolute; TOP: 96px; HEIGHT: 21px"> > <input type="text" id="ftw" onchange="return > all_edits_updatehidden(event,'ftw','ftwJSChange(event)')" name="ftw" > value="" style=" font-family: Verdana; font-size: 12px; text-transform: > none; background-color: #80FFFF;height:20px;width:249px;" tabindex="0" > onchange="return ftwJSChange(event)" /> > </div> > > > The key parts being: > onchange="return all_edits_updatehidden(event,'ethe')" > onchange="return all_edits_updatehidden(event,'ftw','ftwJSChange(event)')" Check the attached patch, your function is placed on common.js. Regards -- José León qadram software C/Juan Ramón Jiménez, 15 Entlo. 2 03203 Elche ALICANTE (SPAIN) T: +34 965 45 48 48 F: +34 965 45 48 48 M: +34 618 28 13 69 http://www.qadram.com |
From: Gary <z0...@40...> - 2009-05-14 22:07:04
|
Ok, I didn't check it to the pagecontrol but I'll take your word for it. :) I made a couple of changes to make it one function for all edits. See what you think. Don't know if this works but I've attached an html file to show the diffs. This is what it outputs function all_edits_updatehidden(event,edit_name,function_to_chain) { findObj(edit_name+'_hidden').value=findObj(edit_name).value; if (function_to_chain != '') return(eval(function_to_chain)); } <div id="ethe_outer" style="Z-INDEX: 17; LEFT: 272px; WIDTH: 121px; POSITION: absolute; TOP: 320px; HEIGHT: 21px"> <input type="text" id="ethe" onchange="return all_edits_updatehidden(event,'ethe')" name="ethe" value="" style=" font-family: Verdana; font-size: 12px; text-align: right; background-color: #80FFFF;height:20px;width:121px;" tabindex="0" onblur="return Button1JSClick(event)" onkeypress="return efeJSKeyPress(event)" /> </div> <div id="ftw_outer" style="Z-INDEX: 18; LEFT: 520px; WIDTH: 249px; POSITION: absolute; TOP: 96px; HEIGHT: 21px"> <input type="text" id="ftw" onchange="return all_edits_updatehidden(event,'ftw','ftwJSChange(event)')" name="ftw" value="" style=" font-family: Verdana; font-size: 12px; text-transform: none; background-color: #80FFFF;height:20px;width:249px;" tabindex="0" onchange="return ftwJSChange(event)" /> </div> The key parts being: onchange="return all_edits_updatehidden(event,'ethe')" onchange="return all_edits_updatehidden(event,'ftw','ftwJSChange(event)')" |
From: José L. S. <su...@qa...> - 2009-05-14 09:16:08
|
Gary escribió: > in stdctrls.inc.php in revision 216 , which says nothing about it, the > standard edit box got a bunch of _hidden and _hiddenvalue stuff added to it > which as far as I can tell does nothing but add a couple of pages of > functions (50 edits * 7 lines) to my browser source and also cause me a PIA > when I fill edits with info with js. > > As the edits worked fine before this change was made, I'm ready to just > remove that 'feature' but I thought I would ask why it was implemented > before I do. Check the init and preinit methods of the component, the problem that is fixed by that code, is when you place an Edit control (or any other control that updates it's state depending on POST information )inside a QWidget container with layers (like PageControl), when the form is submitted, you don't always get the right information on the post. For example: -Having a PageControl with two tabs and with an edit on each one -Placing a print_r($_POST) at the very top of the script -Adding a button outside of the page control to submit the form If you click on the button, you will get this: Array ( [Edit1_hidden] => 123454 [Edit2_hidden] => aaaaaaa [Button1] => Button1 [PageControl1_state] => [Edit1] => 123454 ) That is, no Edit2 value on the array, because the user has not switched to the second tab, the Edit2 post value is not being submitted, that's why an extra hiddenfield is required outside the pagecontrol, to keep that value for the subsequent requests. This is a general method, probably can be improved by trying to rely on the session value, but it's a way to ensure the right value is picked up, and also, there was login on the init method to update a possible datafield attached, so to reduce the possible impact of a bigger change, I opted by this method. As you say, you get 7 extra lines for each edit, so maybe this kind of code can be packed on a function where the Edit is a parameter, and even included on a separate .js to reduce the clutter. As always, your patches will be welcome. And you are right, that should be documented on the change log, my fault :-( Regards -- José León qadram software C/Juan Ramón Jiménez, 15 Entlo. 2 03203 Elche ALICANTE (SPAIN) T: +34 965 45 48 48 F: +34 965 45 48 48 M: +34 618 28 13 69 http://www.qadram.com |
From: Gary <z0...@40...> - 2009-05-04 20:03:37
|
in stdctrls.inc.php in revision 216 , which says nothing about it, the standard edit box got a bunch of _hidden and _hiddenvalue stuff added to it which as far as I can tell does nothing but add a couple of pages of functions (50 edits * 7 lines) to my browser source and also cause me a PIA when I fill edits with info with js. As the edits worked fine before this change was made, I'm ready to just remove that 'feature' but I thought I would ask why it was implemented before I do. Thanks ***** $submitted = $this->input->{$this->Name}; if (!is_object($submitted)) $submitted = $this->input->{$this->Name.'_hidden'}; *********** Revision 216 - (view) (download) (annotate) - [select for diffs] Modified Mon Mar 17 18:06:34 2008 UTC (13 months, 2 weeks ago) by ttm File length: 222646 byte(s) Diff to previous 214 , to selected 186 +Updated ADODB +Fixed problem for data-aware controls when no record is attached +Replaced trackbar control +Added DivWrap property to Control +Fixed datasource problems on DBIteratorBegin and DBIteratorEnd +Added div generation to DBIterator controls +Fixed DBGrid problem, it should set the dataset to the first record, because it affect another controls +Added fieldget and fieldset methods to DBDataset to get/set fields that collide with property names +Added Color, Active, Loop and Quality properties to FlashObject +Added Visible property to Window +Removed previous jssliderbar +Fixed menus problem +Fixed small problem on Pager +Removed clear cache from smarty +Added the ability to add some styles to controls in VCLTemplate +Changed Atom to HTMLEmbed on QWidget containers ************* |
From: martti <mar...@ap...> - 2009-03-06 18:16:29
|
Hi, In order to make it work also in IIS/FsatCGI, this should read : if((false == isset($_SERVER['PHP_AUTH_USER'])) and (false == isset($_SERVER['AUTH_USER']))) { header('WWW-Authenticate: Basic realm="' . $this->_title. '"'); header('HTTP/1.0 401 Unauthorized'); die($this->_errormessage); } martti |
From: Gary <z0...@40...> - 2009-02-11 00:24:10
|
That took care of it, Thanks! if($v->className()!='Window') { $style="Z-INDEX: $k; LEFT: ".$left."px; WIDTH: ".$aw."px; POSITION: absolute; TOP: ".$top."px; HEIGHT: ".$ah."px"; echo "<div id=\"".$v->_name."_outer\" style=\"$style\">\n"; $v->show(); echo "\n</div>\n"; }else $v->show(); While I was dinking around I did find what I think is a bug in window. echo " return $this->_jsonmove();\n"; echo " return $this->_jsonresize();\n"; Should be (e) so you can use the event later on. $def = $this->Name . 'MoveHandler'; if (!defined($def) && ($this->_jsonmove != null)) { define($def, 1); echo "function $def(e) {\n"; echo " return $this->_jsonmove(e);\n"; echo "}\n\n"; } $def = $this->Name . 'ResizeHandler'; if (!defined($def) && ($this->_jsonresize != null)) { define($def, 1); echo "function $def(e) {\n"; echo " return $this->_jsonresize(e);\n"; echo "}\n\n"; } |
From: Jonathan B. <co...@jo...> - 2009-02-10 23:15:55
|
graphics.inc.php Jon ----- Original Message ----- From: "Gary" <z0...@40...> To: <vcl...@li...> Sent: Tuesday, February 10, 2009 6:04 PM Subject: [vcl4php-developers] window widget > If someone sees this, before I have found it, that knows right where to > look... > > I need to find where the window1_outer div is output as I want to try and > stop it from happening. > > I'm pretty sure we have solved the problem of browser scrolls when using > qx > widgets. In converting some of my older scripts I have found the invisible > windows I was hiding behind a grid stops my clicks on the grid. I can > manually make the _outer invisible but I don't think it is required at all > so I just want to get rid of it. > > Thanks. > > > ------------------------------------------------------------------------------ > Create and Deploy Rich Internet Apps outside the browser with > Adobe(R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills and code > to > build responsive, highly engaging applications that combine the power of > local > resources and data with the reach of the web. Download the Adobe AIR SDK > and > Ajax docs to start building applications > today-http://p.sf.net/sfu/adobe-com > _______________________________________________ > vcl4php-developers mailing list > vcl...@li... > https://lists.sourceforge.net/lists/listinfo/vcl4php-developers > |
From: Gary <z0...@40...> - 2009-02-10 23:05:22
|
If someone sees this, before I have found it, that knows right where to look... I need to find where the window1_outer div is output as I want to try and stop it from happening. I'm pretty sure we have solved the problem of browser scrolls when using qx widgets. In converting some of my older scripts I have found the invisible windows I was hiding behind a grid stops my clicks on the grid. I can manually make the _outer invisible but I don't think it is required at all so I just want to get rid of it. Thanks. |
From: Gary <z0...@40...> - 2009-02-10 22:59:59
|
I have enhanced the pager component to work in javascript/ajax applications, I think it would be a good addition to the vcl. It is attached to this post: http://forums.delphi-php.net/vcl4php/3395-how-can-i-use-pager-control-ajax-way.html#post12001 |
From: Gary <z0...@40...> - 2009-01-07 20:26:27
|
FWIW I had to do a bit of debugging of some js that I had contained with jsmin so I put a debug switch into it added ,"debuggggg" at the end of my code -- the normal "); becomes ,"debuggggg"); and added the debug flag set line of code in the class function public static function minify($js) { if (func_num_args()>1) return $js; //debug flag set $jsmin = new JSMin($js); return $jsmin->min(); } |
From: Jonathan B. <co...@jo...> - 2009-01-06 17:21:34
|
There is a bug in the Checkbox control that shows when one uses a Checkbox with no caption. The checkbox automatically sets its Checked property to true when the form is submitted. Basically the Checkbox compares its Caption (which is an empty string) against the POST array, without checking that it even exists in the POST array. The POST array returns an empty string for non-existant items, so the Checkbox incorrect determines that it has been checked. I've attached a patch that fixes this issue. Jon |
From: Gary <z0...@40...> - 2008-12-28 21:00:04
|
Another couple of notes. Please append ?restore_session=1 to the urls. They all have the same names for grids and units and of course you will get persistence problems from one form to the next. 405hp.net/comparevcl/compare_font.php?restore_session=1 re:buttons Tried this in Opera 9.63 and the js of the bitbuttons doesn't work at all. They used to work in v1 so something must have broke them. FWIW This is one reason I haven't moved to v2 as I used a lot of bitbuttons and all would need changed. (Originally that was because of making them changing to submit's from the v1 default of none.) Also the slider thumb on the dbgrid can't be grabbed with Opera but you can click into the grid and page up and down which will move the 'thumb' in the slider. |
From: Gary <z0...@40...> - 2008-12-27 21:00:39
|
Still tinkering... :) I just surfaced an ability to make a font change in dbgrids rows. 405hp.net/comparevcl/compare_font.php This isn't a pretty demo but it works. I've been wanting this for a year and it just jumped out at me today when I wasn't looking... I'm kind of excited. :) Currently this just does a straight multiplication of the base font and row size in pixels but now the entire style sheet has opened up. I think anything you can do with a label with normal css can now be done in the grid as long as you can figure out what height to make the rows. The other thing to look at here is bitButton not working correctly. Open this in both FF and IE and the behaviors are different from the plain buttons. The buttons js events checks for a number smaller than 1 and pops an alert so test with .5 in the textedit. The button pairs share the same events plain button with bitbutton. The bitbuttons post when they shouldn't. And for further discussion: I think the component tree should actually be built differently. I think it should start with qwidget and then a basic table that just creates everything up to the columns and rows and then fork into listview - dbgrid - and future grids (like remote paged grids) that add the columns and rows and things like dbawareness, ajax updates and such. |
From: Gary <z0...@40...> - 2008-12-27 03:29:53
|
Submission for review: I updated my easygrid templates ( 405hp.net/d4php/easygrid.php ) into the latest version of the vcl this week and I decided to do it in a 2 step process - The first step was just the enhancements to dbgrid.inc.php and the second the part that uses the templates. 405hp.net/comparevcl/dbgrid.zip It is kind of tough to do as a + - type of thing so just compare the scripts in something like winmerge to see what I changed. dbgrid.opt.inc.php is stage 1 dbgrid.inc.php is the easy grid and dbgrid.std.inc.php is the stock one. To see it in action so you can compare the generated dhtml. (I didn't bother formatting the opt and std grids to be pretty as I never use the column editor but you can get the idea.) Only difference in each of these scripts is the name of the include file. 405hp.net/comparevcl/compare_easy.php makes 44.9k dhtml 10k compressed 405hp.net/comparevcl/compare_opt.php makes 43.1k dhtml 405hp.net/comparevcl/compare_std.php makes 153k dhtml 16k compressed I did add 2 properties - column visibility button and status line visible at the bottom. Other than that it is just code compaction and rearrangement. Discussion: oData - I do think the browser footprint could be reduced even more if this was eliminated and I'm all for deleting it unless someone can come up with a valid reason to keep it. I think it would be easy to add a next/prev pagination to this with the json rpc (ajax) code if anyone thought it would be worth while, just need some feedback on usability. A further wonder - can class CustomDBGrid extends CustomGrid and use_unit("grids.inc.php"); be removed from this? I can't find where they are used for anything. |
From: José L. <su...@qa...> - 2008-12-22 16:21:12
|
Gary escribió: > Something in the underlying files must have changed and the sample errors > looking for findObj. > > I had to add > > <script type="text/javascript" src="/vcl-bin/js/common.js"></script> > > to TestCanvas.php Yes, the canvas didn't use findObj before, so I have modified the sample by adding: <script type="text/javascript" src="<?php echo(VCL_HTTP_PATH);?>/js/common.js"></script> At the top. > And fwiw I converted it to be a mini demo for paintbox. The code has been added to the PaintBox demo to show how to paint using javascript. Thanks!!!!! Regards -- José León qadram software C/Juan Ramón Jiménez, 15 Entlo. 2 03203 Elche ALICANTE (SPAIN) T: +34 965 45 48 48 F: +34 965 45 48 48 M: +34 618 28 13 69 http://www.qadram.com |
From: José L. <su...@qa...> - 2008-12-22 16:04:37
|
Gary escribió: > I don't know if this has application to the vcl but I would think so. > Probably would want to modify jsmin to not minify if some sort of debug > switch was set so the code would be more readable. Sure, but before would be nice to setup some kind of profiling to know the performance penalty of doing that. We should check both php running and size of generated code. Regards -- José León qadram software C/Juan Ramón Jiménez, 15 Entlo. 2 03203 Elche ALICANTE (SPAIN) T: +34 965 45 48 48 F: +34 965 45 48 48 M: +34 618 28 13 69 http://www.qadram.com |
From: Gary <z0...@40...> - 2008-12-21 03:04:30
|
I ran across this today: http://code.google.com/p/jsmin-php/ I dropped jsmin-1.1.1.php into the vcl root and added use_unit("jsmin-1.1.1.php"); to my scripts replaced some ?> with echo JSMin::minify(' and the <?php with '); and it worked quite well. I then went into classes.inc.php and in the dumpJSEvent function tried replacing the echos with $js_min= "function $event(event)\n"; $js_min.= "{\n\n"; $js_min.= "var event = event || window.event;\n"; //To get the right event object $js_min.= "var params=null;\n"; //For Ajax calls //echo JSMin::minify($js_min); if ($this->inheritsFrom('CustomPage')) { $js_min.= $this->$event($this, array()); } else { if ($this->owner!=null) $js_min.= $this->owner->$event($this, array()); } $js_min.= "\n}\n"; $js_min.= "\n"; echo JSMin::minify($js_min); But it doesn't quite work that way as the $this->owner->$event($this, array()); doesn't return the call but if it did it would be easy.. So I reverted it back and just tightened that code up myself. I don't know if this has application to the vcl but I would think so. Probably would want to modify jsmin to not minify if some sort of debug switch was set so the code would be more readable. |
From: Gary <z0...@40...> - 2008-12-20 16:55:35
|
Something in the underlying files must have changed and the sample errors looking for findObj. I had to add <script type="text/javascript" src="/vcl-bin/js/common.js"></script> to TestCanvas.php And fwiw I converted it to be a mini demo for paintbox. public $PaintBox1 = null; function PaintBox1JSClick($sender, $params) { ?> PaintBox1_Canvas.setColor("#000000"); PaintBox1_Canvas.fillEllipse(10 + 1, 150+ 1, 60-10+1, 200-150+1); PaintBox1_Canvas.paint(); <?php } function PaintBox1Paint($sender, $params) { ?> PaintBox1_Canvas.setColor("#000000"); PaintBox1_Canvas.fillEllipse(10 + 1, 150+ 1, 60-10+1, 200-150+1); PaintBox1_Canvas.setStroke(2); PaintBox1_Canvas.setColor("#00FFFF"); PaintBox1_Canvas.drawEllipse(10, 150, 60-10+1, 200-150+1); PaintBox1_Canvas.setColor("#FF0000"); PaintBox1_Canvas.fillRect(70, 150, 120 - 70, 200 - 150); PaintBox1_Canvas.setColor("#00FF00"); PaintBox1_Canvas.fillRect(230 + 10, 150, 151 - 20, 151); PaintBox1_Canvas.fillRect(230, 150 + 10, 151, 151 - 20); PaintBox1_Canvas.setStroke(2); PaintBox1_Canvas.setColor("#FF00FF"); PaintBox1_Canvas.drawLine(230 + 10, 150, 380 - 10, 150); PaintBox1_Canvas.drawLine(230 + 10, 300, 380 - 10, 300); PaintBox1_Canvas.drawLine(230, 150 + 10, 230, 300 - 10); PaintBox1_Canvas.drawLine(380, 150 + 10, 380, 300 - 10); PaintBox1_Canvas.fillArc(230, 150, 20, 20, 90, 180); PaintBox1_Canvas.fillArc(380 - 20 + 2, 150, 20, 20 + 2, 0, 90); PaintBox1_Canvas.fillArc(230, 300 - 20 + 2, 20, 20, 180, 270); PaintBox1_Canvas.fillArc(380 - 20 + 2, 300 - 20 + 2, 20, 20, 270, 360); PaintBox1_Canvas.setColor("#00FF00"); PaintBox1_Canvas.fillArc(230 + 2, 150 + 2, 20 - 2, 20 - 2, 90, 180); PaintBox1_Canvas.fillArc(380 - 20 + 2, 150 + 2, 20 - 2, 20 - 2, 0, 90); PaintBox1_Canvas.fillArc(230 + 2, 300 - 20, 20, 20, 180, 270); PaintBox1_Canvas.fillArc(380 - 20, 300 - 20, 20, 20, 270, 360); PaintBox1_Canvas.fillRect(30, 120, 150 - 30 + 1, 170 - 120 + 1); PaintBox1_Canvas.setStroke(2); PaintBox1_Canvas.setColor("#FF00FF"); PaintBox1_Canvas.drawRect(30, 120, 150 - 30 + 1, 170 - 120 + 1); PaintBox1_Canvas.setFont("Verdana", "10px", "fsOblique"); PaintBox1_Canvas.setColor("#FF0000"); PaintBox1_Canvas.drawString("Canvas Test", 10, 5); PaintBox1_Canvas.setFont("Verdana", "10px", "fsNormal"); PaintBox1_Canvas.setColor("#FF0000"); PaintBox1_Canvas.drawString("Brush color=#00FF00", 10, 20); PaintBox1_Canvas.setFont("Verdana", "10px", "fsNormal"); PaintBox1_Canvas.setColor("#FF0000"); PaintBox1_Canvas.drawString("Font Name=Verdana", 10, 35); PaintBox1_Canvas.setFont("Verdana", "10px", "fsNormal"); PaintBox1_Canvas.setColor("#FF0000"); PaintBox1_Canvas.drawString("Font Size=10px", 10, 50); PaintBox1_Canvas.setFont("Verdana", "10px", "fsNormal"); PaintBox1_Canvas.setColor("#FF0000"); PaintBox1_Canvas.drawString("Pen Color=#FF00FF", 10, 65); PaintBox1_Canvas.setFont("Verdana", "10px", "fsNormal"); PaintBox1_Canvas.setColor("#FF0000"); PaintBox1_Canvas.drawString("Pen Width=2", 10, 80); PaintBox1_Canvas.drawLine(10, 115, 200, 115); <?php } |