|
Hi,
there are two problems:
1. there is a rounding problem, the quarter elipses away from x=0 and y=0 end up one pixel off the intended position
2. the quarter elipses need digitalization; for small radii the quality heavily depends on the exact value of the radius.
Here is some C# code I experimented with, the results are not perfect but much better than with your original code.
BTW: your "angles" were not angles at all, I replaced all of them by a single radius.
private Image roundimage(Image img, int radius) {
Bitmap bmp=new Bitmap(img.Width, img.Height);
Graphics g=Graphics.FromImage(bmp);
GraphicsPath z=new GraphicsPath();
int r=radius;
int d=r+r;
int w=bmp.Width;
int h=bmp.Height;
z.StartFigure();
z.AddArc(0, 0, d, d, 180, 90);
z.AddLine(r, 0, w-r, 0);
z.AddArc(w-d-1, 0, d, d, 270, 90);
z.AddLine(w, r, w, h-r);
z.AddArc(w-d-1, h-d-1, d, d, 0, 90);
z.AddLine(w-r, h, r, h);
z.AddArc(0, h-d-1, d, d, 90, 90);
z.AddLine(0, h-r, 0, r);
z.CloseFigure();
g.SetClip(z);
g.DrawImage(img, 0, 0);
return bmp;
}
|
|
|
|
|
I think you want to paint the image FIRST, then paint your rounded rectange corners over the top of it. But, it's not really clear what you're trying to do.
|
|
|
|
|
I have a VB.NET application and I am using following code to work on an existing Excel file.
Private xlApp As Excel.ApplicationClass
Private xlWbk As Excel.Workbook
xlApp.Visible = False
xlApp.DisplayAlerts = False
xlWbk = xlApp.Workbooks.Open("c:\xlWbk.xls")
While the application is running I don't want the Excel workbook to be visible to the users. As long as I am not opening an external Excel file (outside the application), everything works fine. However, when i am opening an external Excel file say, "a.xls", I can see my xlWbk.xls very much visible in front of me! This is 'dangerous' for the application as if the user closes this file, the application will cease to work!
Is there a way I can hide the Excel file the application is using.. and still work on another external Excel file?
Seems like the external Excel workbook is using the same instance of xlApp that was generated thru the code. So when i close any of the Excel files, the above application throws exceptions.
Is there a workaround for the above?
Thanks.
|
|
|
|
|
scot_in wrote: Is there a way I can hide the Excel file the application is using.. and still work on another external Excel file?
Not as far as I know.
scot_in wrote: Seems like the external Excel workbook is using the same instance of xlApp that was generated thru the code.
Yep. Excel is a single-instance app.
scot_in wrote: Is there a workaround for the above?
Not that I know of.
|
|
|
|
|
Thanks Dave, that still doesn't solve my problem though!
|
|
|
|
|
If you are the person opening the excel file through code, then you could possibly open the excel file. Wait until you can get a WinAPI handle to the application window, and then set visibility/enable settings to how you want (through WinAPI).
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my Blog
|
|
|
|
|
The problem is that I am not displaying the excel window when the application is running. It's in hidden mode. But when someone else opens an external file, the Excel document my application is using pops up and when it is closed, my application throws an exception.
-Thanks
|
|
|
|
|
hi guys i have two custome list of the same type like (Employee)
i want to compare these two lists and send the added records and updated records to data base to sync.
is there any way to do that ?
thanks in advance .........
hello
|
|
|
|
|
Enumerate the collections (For Each ...), checking each object in one list and finding/comparing it to the object in the other list?? You'll have to do it twice, once for each list, to account for deleted objects.
|
|
|
|
|
HI
I am developing one application in that i have to do the accessing the other computer's web cam from my computer. i am accessing my computer's web cam using vb.net code, but i don't have code for accesing the network computer's web cam. How it is possible ? plz reply me.
|
|
|
|
|
It's not really possible, unless you run a piece of code to run the web cam locally, and that code sends the images to your networked code.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
How can we pass the video from one machine to another machine.?
|
|
|
|
|
You're going to need the documentation on the webcam and how it makes the images avaiable publicly. If it's just one of those cams that uploads images to an FTP server or web server, then you're going to have to change your design to account for this. It would also help you greatly if the manufacturer of the webcam supplied an SDK for it.
|
|
|
|
|
Hi,
I have to insert data into DataGrid from Oracle database with edit/delete option. pls give me the code. I am new in VB.
Sumit
modified on Wednesday, December 3, 2008 2:10 AM
|
|
|
|
|
|
the solution which you provided does not working. Can u just help me out.
If I have 4 colums name a,b,c,d in stored in emp table(oracle database). and if i have to import those data into DataGrid then what is the simple code to import hose data into my form.
|
|
|
|
|
|
Hi
Use this code it will work.
but presently I m not using oracle s/w Change the ConnectionString then it will work then what ever operation u want pass by query.
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
On Error GoTo err
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & app.path & "\birth.mdb;"
cn.Open()
rs.Open("select * from emp", cn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
err:
If Err.Number <> 0 Then
MsgBox(Err.Description & " " & Err.Number, vbInformation, "Error")
rstatus = False
Else
rstatus = True
End If
Ananda
|
|
|
|
|
This ismy code:
Dim CN As ADODB.Connection
Dim CP As ADODB.Command
Dim RS As ADODB.Recordset
Dim QSQL As String
Dim c As Integer
Dim r As Integer
Dim col_wid() As Single
Dim field_wid As Single
Dim lngWidth As Long
Dim DB As Long
'Connect to Oracele server begin
Set CN = New ADODB.Connection
With CN
.Provider = "OraOLEDB.Oracle"
.Properties("Data Source") = "CARE.TPSL"
.Properties("User Id") = "TESTDATABASE"
.Properties("Password") = "testdatabase"
.Open
End With
' select the data
QSQL = "select emp_id,emp_name,gender,dob,age,doj,city from emp"
' Get the records
Set RS = CN.Execute(QSQL, , adCmdText)
With DGrid1
.AllowAddNew = False
.AllowDelete = True
.AllowRowSizing = False
.AllowUpdate = True
.ColumnHeaders = True
.MarqueeStyle = dbgHighlightCell
.RecordSelectors = True
.RowHeight = 250
.ScrollBars = dbgBoth
DGrid1.Col = RS.Fields.Count
ReDim col_wid(0 To RS.Fields.Count - 1)
For DB = 0 To RS.Fields.Count - 1
DGrid1.DataBindings(DB) = RS.Fields(c).name
col_wid(DB) = TextWidth(RS.Fields(c).name)
Next DB
DB = 1
Do While Not RS.EOF
DGrid1.Row = DGrid1.Row + 1
For DB = 0 To RS.Fields.Count - 1
DGrid1.DataBindings(DB) = RS.Fields(DB).Value
Next DB
RS.MoveNext
r = r + 1
Loop
End With
'close the connection
CN.Close
Set CN = Nothing
// Now when I run the code it gives an Runtime error:6145 Invalid Column Index in the line (DGrid1.Col = RS.Fields.Count). So Please guide me to solve the problem.
|
|
|
|
|
It's been years since I last used vb6 but if I remember correctly, Col property is starting from 0 so if you want to refer to the last column it should be DGrid1.Col = RS.Fields.Count - 1
Also if I read the code correctly, you haven't created the columns before you use them (unless done somewhere else). Use debugger to see DGrid1 properties.
You mentioned that you're new to vb. Visual Basic 6 hasn't been supported for years so if there's no really good reason why you should learn a legacy language, I strongly suggest that you move to Visual Basic .Net.
|
|
|
|
|
Sorry I m not using this method for dataGrid Instant of I will assigned values to datagrid control like each cell i assigned value..
|
|
|
|
|
Am going to give you an Idea, you have to finish it your self.
First Add a reference to the Oracle namespace and write the Following code to get data from the Oracle and Binding you have to know it its Simple use the Datasource property and Datamember.
using System.Data.OracleClient;<br />
using System.Data;<br />
<br />
<br />
namespace ORacle_Bind<br />
{<br />
class DAL <br />
{<br />
<br />
<br />
public Dataset Getdata()<br />
{<br />
String Constring = "blablabvl";<br />
<br />
OracleConnection con = new OracleConnection(Constring);<br />
<br />
OracleCommand cmd = new OracleCommand();<br />
<br />
OracleDataAdapter da = new OracleDataAdapter();<br />
<br />
cmd.CommandText = "your select statement";<br />
<br />
cmd.CommandType = System.Data.CommandType.Text;<br />
<br />
cmd.Connection = con;<br />
<br />
da.SelectCommand= cmd;<br />
<br />
DataSet ds = new DataSet();<br />
<br />
<br />
try<br />
{<br />
con.Open();<br />
<br />
<br />
da.Fill(ds, "My_Table");<br />
}<br />
catch (OracleException e)<br />
{<br />
throw;<br />
}<br />
finally<br />
{<br />
con.Close();<br />
}<br />
return ds<br />
}
Hope it Helps
Vuyiswa Maseko,
Sorrow is Better than Laughter, it may Sadden your Face, but It sharpens your Understanding
VB.NET/SQL7/2000/2005
http://vuyiswamb.007ihost.com
http://Ecadre.007ihost.com
vuyiswam@tshwane.gov.za
modified on Wednesday, December 3, 2008 5:38 AM
|
|
|
|
|
The OP says he is using VB6 - why give him VB.NET code?
|
|
|
|
|
Hi,
Can u provide me the code for the same. I am facing this prob since yesterday. Through MSFlixgrid I can do the same but not able with DataGrid.
|
|
|
|
|
Can anyone help me about the code how to insert data into datagrid from database. Also tell me that without Adodc object it is possible to insert data. I am using VB 6.0
|
|
|
|
|