-
Total de itens
8.257 -
Registro em
-
Última visita
Tudo que Graymalkin postou
-
Você não faz isso. Se ele já está inicializado, para quê inicializar novamente? Não precisa. E, você seguiu o que eu disse no post anterior? Abraços, Graymalkin
-
Você pode declarar um campo público no Form2: public f1 as Form1 E ao chamar o form2 (a partir do Form1, que no caso abaixo é o Me) você definiria esse campo: dim j as new Form2 j.f1 = Me Daí, quando você estiver no Form2 e quiser se referir ao Form1 você simplesmente utilizaria o "f1". Sacou? Exatamente, você *não* precisa. Mas do jeito que você fez ali em cima seria necessário. Abraços, Graymalkin
-
Para a bicicleta andar foi necessário que primeiro a roda fosse inventada, correto? (Aliás, para a idéia de uma bicicleta ser concebida, com certeza a roda já deveria existir...). Então, você precisa de um jeito de fazer a rolagem via código antes de poder fazer com que uma DataGrid realize a rolagem em outra. Declare a seguinte classe dentro da classe do form: Public Class MyDataGrid Inherits DataGrid Public Event VScroll(ByVal sender As Object, ByVal se As System.Windows.Forms.ScrollEventArgs) Public Sub ScrollTo(ByVal se As ScrollEventArgs) If Not Me.DataSource Is Nothing Then Me.GridVScrolled(Me, se) End If End Sub Protected Overrides Sub GridVScrolled(ByVal sender As Object, ByVal se As System.Windows.Forms.ScrollEventArgs) MyBase.GridVScrolled(sender, se) RaiseEvent VScroll(sender, se) End Sub End Class Depois disso, vá na região "Windows Form Designer generated code" e troque os "System.Windows.Forms.DataGrid" por "MyDataGrid". Com isso estaremos utilizando a classe acima ao invés da classe original. Você vai reparar que agora dgChar e dgHexa possuirão um novo evento chamado, VScroll. Bastará ir neste evento do dgHexa e colocar: dgChar.ScrollTo(se) Isso também porque agora existirá um método chamado ScrollTo (o lance da roda da bicicleta... ). Execute o projeto e role a dgHexa para ver que a dgChar também irá rolar. Sacou? Graymalkin
-
Creio que o seu form principal *já* está instanciado, não? Caso positivo, por que você faz... frmMDIPrincipal frm = new frmMDIPrincipal(); ...? Assim você estará criando uma *nova* instância do form principal (e acredito que não seja isso que você quer). Ao abrir o form (filho) que deve alterar o outro form (pai), você deve ter definido a propriedade MDIParent do mesmo, certo? Então, por ela você pode obter a instância atual do form pai e mudar a imagem dele. Certo? Graymalkin
-
Já deu uma olhada nestes tópicos... http://scriptbrasil.com.br/forum/index.php?showtopic=67670 http://scriptbrasil.com.br/forum/index.php?showtopic=67824 ...? Talvez eles lhe sejam úteis. Abraços, Graymalkin
-
Aqui... Dim a As New Form1 dthexa = a.dghexa.DataSource ... você está criando um novo (New) Form1 e está utilizando a propriedade DataSource do dghexa contido nele (que ainda não foi inicializado, creio eu). Se você já tem um Form1 instanciado que está sendo utilizado, você deveria pegar o DataSource do dghexa deste (e não criar um novo). Certo? Graymalkin
-
Qual o erro gerado? Não seria algum problema de permissões de acesso no servidor? Abraços, Graymalkin
-
Não exatamente com o Clipper, mas sim com o xHarbour (que é uma versão mais moderna do primeiro). Mais informações: http://www.xharbour.org/ Já o caso da identificação de chamadas, aí eu não sei exatamente. Acho que já vi algo assim em VB, mas não sei onde. Abraços, Graymalkin
-
Esse metodo ai somente faz modificar o tamanho do alcance do scroll, não e? Por exemplo: o scroll desce quantas linhas voce determinar no parametro do método, correto? Pelo menos foi o que eu entendi e eu não consegui usar por aqui... Estou certo ou Errado? Está certo... e não é disso que você precisa? Afinal de contas, não existe um método para fazer a rolagem, e é isso que o código acima está implementando. Utilizando a nova classe (MyDataGrid) no lugar da classe original (DataGrid) você então terá o método ScrollToRow() que lhe permitirá rolar para uma determinada linha. Não é disso que você precisa? Abraços, Graymalkin
-
Sim, é só fazer normalmente: dim j as new NOMEDOFORM j.NOMEDADATAGRID.DataSource = obj Onde "obj" é a DataTable. Abraços, Graymalkin
-
Hummm... tá, agora entendi. Realmente não sei se tem uma propriedade para isso. Vou dar uma olhada e depois te retorno. Me lembre! Abraços, Graymalkin
-
Você viu o tópico 5.60? Abraços, Graymalkin
-
Exato, o compilador de C++ permite a compilação nativa, sem ter acesso aos recursos da .NET Framework (quando o C++ é utilizado com os recursos da .NET Framework ele é chamado de Managed C++). Não, nenhuma linguagem para a .NET permite isso. Isto porque elas são fortemente dependentes dos tipos de dados da .NET Framework (e é isso que permite a interoperabilidade entre elas). Entenda bem que o natural do compilador C++ *é gerar código nativo* e o que fizeram foi lhe dar a *opção de gerar código .NET*. Sacou? Graymalkin
-
Só me ocorre agora os métodos IsDigit e IsNumber da classe Char. Só que você teria que utilizá-lo com cada caracter da string. Dá pra criar uma função IsNumeric com estes métodos: public bool IsNumeric(string s) { bool retorno = true; foreach (char c in s) { retorno &= Char.IsNumber(c) || c=='.' || c==','; } return retorno; } Daí, seria só fazer: MessageBox.Show(IsNumeric("a3").ToString()); MessageBox.Show(IsNumeric("3a").ToString()); MessageBox.Show(IsNumeric("23").ToString()); MessageBox.Show(IsNumeric("23,34").ToString()); Não sei precisar ao certo, mas creio que não deva acarretar em problemas de performance. Sim, é bem chatinho ter que ficar reinventado a roda, como é o caso do IsNumeric. Talvez o C# 2.0 (Visual Studio 2005) já tenha alguma coisa nesse sentido. Abraços, Graymalkin
-
Acho que você não deveria utilizar o Activate para isso. Experimentou colocar isso no Click de um botão? Abraços, Graymalkin
-
Não... para dt.Rows.Add() você tem que passar os conteúdos das colunas para a linha que deve ser adicionada. Abaixo seguem dois exemplos simples disso: Dim dt As New DataTable dt.Columns.Add("Coluna1") dt.Columns.Add("Coluna2") dt.Columns.Add("Coluna3") For i As Integer = 0 To 15 dt.Rows.Add(New Object() {"conteúdo da coluna1", "conteúdo da coluna2", "conteúdo da coluna3"}) Next dgTabela.DataSource = dt Ou: Dim dt As New DataTable dt.Columns.Add("Coluna1") dt.Columns.Add("Coluna2") dt.Columns.Add("Coluna3") For i As Integer = 0 To 15 Dim linha As DataRow = dt.Rows.Add(New Object() {}) linha.Item(0) = "conteúdo da coluna1" linha.Item(1) = "conteúdo da coluna2" linha.Item(2) = "conteúdo da coluna3" Next dgTabela.DataSource = dt Sacou? Graymalkin
-
Aqui tem uma dica de como fazer isso (é o site indicado no tópico pendurado "Dicas"): http://www.syncfusion.com/FAQ/WindowsForms...c44c.aspx#q895q Abraços, Graymalkin
-
A idéia é que uma *linha* seja um coleção de *colunas*. Imagine uma planilha do Excel, onde as linhas são representadas por números e as colunas por letras. É exatamente aquilo lá. Abraços, Graymalkin
-
Onde você colocou isso? Abraços, Graymalkin
-
O quê, exatamente, você não conseguiu fazer? Para o alterar não bastaria escrever o registro alterado na mesma posição dele anteriomente? Abraços, Graymalkin É isso mesmo... ams como eu faço isso? No sSalvaRegistro() você fez isso. Basta que o "mPosicao" esteja com a posição do registro a ser alterado. Abraços, Graymalkin
-
Dê uma olhada nestes tópicos: http://scriptbrasil.com.br/forum/index.php?showtopic=32055 http://scriptbrasil.com.br/forum/index.php?showtopic=4716 Sempre faça uma busca antes de postar, ok? Abraços, Graymalkin
-
Suponha que o arquivo tem 206 bytes. Da maneira que eu tinha feito, pulando de 10 em 10, você teria vinte linhas de dez bytes cada (20*10=200), certo? E os outros 6 bytes? Eles não estavam sendo exibidos na grade, portanto também não estavam sendo gravados no novo arquivo. Entendeu? Abraços, Graymalkin
-
Acho que então é isso aqui que você quer: Form2.Show; SetWindowPos(Form2.Handle, HWND_TOPMOST, Form2.Left, Form2.Top, Form2.Width, Form2.Height, 0); Form1.SetFocus; Certo? Graymalkin
-
Aqui: http://scriptbrasil.com.br/forum/index.php?showtopic=67791 Sempre faça uma busca antes de postar, ok? Abraços, Graymalkin
-
Acho que você postou na seção errada, não? Graymalkin