-
Total de itens
8.257 -
Registro em
-
Última visita
Tudo que Graymalkin postou
-
Ixi... sem problemas brother. Só dei um toque pra você ter melhores resultados também (afinal de contas, se o assunto é .NET, melhor colocar no lugar onde o povo de .NET vai ver). Falou? Abraços, Graymalkin
-
Não, um objeto *não* é uma variável membro de uma classe. Uma variável membro da classe é que *pode* ser um objeto. Imagine uma classe Automóvel. A partir dessa classe é que criaremos os objetos Fiesta, Vectra, Ka, Astra, Gol, etc. Ou seja, um objeto chamado Fiesta é uma instância da classe (ele tem todas as características da classe, porém é como se fosse feita uma cópia dessas características só para esse objeto). E sim, um construtor pode ter esse papel de carregar todas as "configurações" do objeto. Para ficar mais claro, decidi montar um exemplo de uma classe com dois contrutores. Sei que o modo como declarei a classe não está nos "conformes" da OO (as propriedades deveriam ser private e ter métodos para acessá-las) e nem do esquema de C++ (ou seja, criar um arquivo de cabeçalho para a classe)... mas é só um exemplo. Você pode copiar e colar isso aí em um novo arquivo e compilar (usei o Dev-C++ aqui): #include <stdlib.h> #include <iostream> using namespace std; class Automovel { public: char *nome; int portas; double motor; char *cor; Automovel() { this->nome = "sem nome"; this->portas = 0; this->motor = 0.00; this->cor = "sem cor"; } Automovel(char *nome, int portas, double motor, char *cor) { this->nome = nome; this->portas = portas; this->motor = motor; this->cor = cor; } }; int main() { // Objeto criado com o construtor SEM ARGUMENTOS Automovel *vectra = new Automovel(); vectra->nome = "Vectra"; // Preenchimento dos atributos vectra->portas = 4; vectra->motor = 2.2; vectra->cor = "prata"; // Objeto criado com o construtor que já preenche os atributos Automovel *fiesta = new Automovel("Fiesta", 2, 1.0, "amarelo"); cout << vectra->nome << endl; cout << vectra->portas << endl; cout << vectra->motor << endl; cout << vectra->cor << endl; cout << fiesta->nome << endl; cout << fiesta->portas << endl; cout << fiesta->motor << endl; cout << fiesta->cor << endl; system("pause"); } Note os dois contrutores (Automovel() e Automovel(...)) e repare os exemplos de criação de objetos utilizando cada um deles. Veja que o segundo (utilizado no objeto fiesta) é bem mais compacto e prático. Certo? Abraços, Graymalkin
-
Mas, você não precisaria criar uma função para isso. É só utilizar o evento GotFocus, não? Abraços, Graymalkin
-
Ele já está funcionando. O acesso a dados (no caso do Access) é feito através de um mecanismo (motor) de banco de dados chamado Jet. É esse mecanismo que irá disparar erros caso você tente fazer algo que viole um relacionamento. Abraços, Graymalkin
-
O relacionamento estabelecido está dizendo que registros da tabela Cursos devem, obrigatoriamente, ter registros referentes na tabela Membros. Dê uma verificada se o relacionamento é mesmo este. E, "post" não deveria ser usado *depois* de "append"? Você pode estar recebendo esse erro só da segunda vez porque é justamente nessa hora que ele efetiva a gravação (com o "post", se não estou enganado). Abraços, Graymalkin
-
Como Verificar Se O Arquivo Ta Em Uso?
pergunta respondeu ao Franciel de Graymalkin em Delphi, Kylix
Você pode tentar "abrir" o tal arquivo e se der algum erro (o que é provável, mas não garantido) você "cata" o erro com um Try. Bom, é uma idéia. Abraços, Graymalkin -
Aí vai um exemplo bem simples. Você só tem que colocar isso no evento OnLoad do WebForm: Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("arquivo.mdb")) Dim ds As New DataSet() Dim grid As New DataGrid() cn.Open() Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM tabela", cn) da.Fill(ds) grid.AutoGenerateColumns = True grid.DataSource = ds Me.Controls.Add(grid) DataBind() Dê uma boa lida no código (porque ele não é difícil de compreender) e se surgir alguma dúvida, 'stamos aí. Abraços, Graymalkin
-
Brother, temos uma sala só de .NET agora . Você podia ter postado isso aqui lá, para não ficar misturando os assuntos (isso é para facilitar a vida das futuras gerações, nossos filhos e netos, que acharão respostas no lugar mais certo a serem procuradas ), ok? Bom, mas uma busca por "+VB.NET +parallel +port" (sem as aspas) no Grande Guru (Google ) parece ser bastante "frutífera". Dê uma olhadela nos resultados. Abraços, Graymalkin
-
Não é assim que se define um elemento de um objeto vector. O correto é: vector<int> vetor; vetor.push_back(1); Entretanto, o resgate de um elemento pode ser feito através dos []: cout << vetor[0] << endl; O por quê disso? Veja a resposta mais abaixo. Sim, claro que serve. Reparou que você precisa definir um tamanho para um vetor normal (int vetor[100])? Com um vector você *não* precisa. Ele vai crescer a medida que for necessário. Por isso que você *não* pode definir um índice específico (vetor[0]) uma vez que ele pode *não* existir. Vale lembrar que um vector é um objeto portanto você terá que utilizar seus métodos e propriedades para manipulá-lo adequadamente. Abraços, Graymalkin
-
Sim, eles têm tudo haver com classes. Um construtor define o que um objeto fará (ou definirá) quando for inicializado (construído). Creio que você saiba o que é um objeto, mas mesmo assim vale lembrar que um objeto nada mais é do que uma instância (cópia) de uma classe que existirá por si só. Portanto, objetos terão membros (propriedades e métodos) que *podem* precisar serem inicializados. Nesse caso, o construtor é o maneira ideal de inicializá-los automaticamente. E existem ainda outros casos em que um construtor é muito útil (para definir objetos diferentes de acordo com os parâmetros passados). Abraços, Graymalkin
-
Sim, isso dá certo. Porém você vai criar um "aplicativo.exe" que só funciona no próprio Linux (uma vez que no Linux *não* é a extensão que define se um arquivo é "executável" ou não). Códigos C/C++ são portáveis (funcionam em diversas plataformas) no sentido que você *precisa* compilar o código na plataforma que você quer executá-lo. Se você quer um executável Linux, compile no Linux. Se você quer um executável Win32, compile no Windows. E assim por diante. Abraços, Graymalkin
-
As aspas...: Private Sub Creditos_Click() Form2.Show 1 End Sub Abraços, Graymalkin
-
Project -> Components -> Microsoft Data Bound Grid Control x.0 Abraços, Graymalkin
-
Dos arquivos compartilhados (shared)? Seriam essas as checkboxes? Tem muito tempo que não uso o PDW. Sua aplicação não utiliza alguma coisa em especial (API exclusiva de um sistema, outras bibliotecas externas, etc.) que você esteja esquecendo? Já tentou fazer um teste com um form simples, sem nada, pra ver se funciona? Abraços, Graymalkin
-
De onde estão vindo os dados que preenchem a grid? É nesse local que você tem que estabelecer um critério (no caso, os últimos 6 meses). A função da grid é só manipular dados provenientes de uma consulta (e não criar a consulta...). Abraços, Graymalkin
-
O que você ainda não entendeu é como o evento KeyPress funciona (não só ele, mas qualquer outro evento). Quando você digita a letra 'a', por exemplo, KeyPress é chamado da seguinte maneira: keypress(97) Por que 97? Porque esse é o código referente ao caracter 'a' na tabela ASCII/ANSI. E, para onde vai esse 97? Para o parâmetro KeyAscii da rotina. Então, se você alterar o valor de KeyAscii, consequentemente, você estará alterando a tecla digitada. Ou seja, se você fizer algo assim... if keyascii=97 then keyascii=98 ... fará com que se 'a' for pressionado a tecla pressionada seja, na verdade, 'b'. Então, você *só*, e *somente só* vai trocar KeyAscii se você quiser alterar a tecla pressionada. Então, pra quê você joga o retorno de "Acerto" para KeyAscii??? Aliás, qual o retorno de "Acerto" já que você não colocou nenhum? De uma forma ou de outra, ainda não entendi o que você quer fazendo essa função "Acerto"... qual seria, exatamente, o propósito dela? Abraços, Graymalkin
-
De fato. O nome do provedor está incorreto: Microsoft.Jet.OLEDB.4.0 Falta aquele ponto ali, ok? Abraços, Graymalkin
-
Como??? Uma das vantagens de utilizar CGI, ASP, ASP.NET, PHP, JSP e PSP é justamente que o seu código fica protegido do lado do servidor. Para o requisitante (cliente) só vem o código HTML que forma a página (ainda bem, né? Imagina a quantidade de tecnologias diferentes que o browser teria que suportar...). Abraços, Graymalkin
-
Associar Duas Procuras No Banco De Dados
pergunta respondeu ao The Lau de Graymalkin em Visual Basic
Ops... digitei uma letra errada. Não é DataValue e sim DateValue (igual ao primeiro). Perdão pela falha. Abraços, Graymalkin -
Poste a mensagem do erro e não o número (quem é que vai ficar guardando o número na cabeça? ). Abraços, Graymalkin
-
Se você quer deixar mais leve, você não deve utilizar tabelas para layout e sim CSS. Para mais informações, consulte: http://www.maujor.com/ http://www.tableless.com.br/ Abraços, Graymalkin
-
Fiz um exemplo criando uma classe chamada Linha que mantém um vetor com todos os pontos que fazem parte daquela linha: Public Class Linha Inherits System.Windows.Forms.Control Private pontos() As PointF Private tipos() As Byte Private cor As Color = Color.Black Public Shared superfície As System.Drawing.Graphics Public Sub New(ByVal pontos() As PointF) Me.DefinirPontos(pontos) End Sub Public Sub MudarCor(ByVal cor As Color) Me.cor = cor End Sub Public Sub DefinirPontos(ByVal pontos() As PointF) Dim i As Integer Me.pontos = pontos ReDim tipos(pontos.Length - 1) For i = pontos.GetLowerBound(0) To pontos.GetUpperBound(0) tipos(i) = Drawing.Drawing2D.PathPointType.Line Next End Sub Public Sub Desenhar() If pontos.Length > 0 Then superfície.DrawPath(New Pen(cor), New Drawing2D.GraphicsPath(pontos, tipos)) End If End Sub End Class Para utilizá-la, você pode fazer algo assim: Dim linha1 As Linha Dim linha2 As Linha Linha.superfície = Me.CreateGraphics() Dim pontos() As PointF = {New PointF(10, 10), _ New PointF(11, 11), _ New PointF(12, 12), _ New PointF(13, 13), _ New PointF(14, 14), _ New PointF(15, 15), _ New PointF(16, 16), _ New PointF(17, 17)} Dim p As New ArrayList() Dim i As Integer For i = 20 To 50 p.Add(New PointF(i, i)) Next Dim pontos2() As PointF = p.ToArray(GetType(PointF)) linha1 = New Linha(pontos) linha2 = New Linha(pontos2) linha1.Desenhar() linha2.Desenhar() E, o método MudarCor pode ser utilizado assim: Dim sel As New ColorDialog() sel.ShowDialog() linha1.MudarCor(sel.Color) linha1.Desenhar() Se quiser baixar o código-fonte do projeto que fiz, basta seguir o link: http://www.graymalkin.globalhosts.com.br/stuff/ExLinha.zip Abraços, Graymalkin
-
Claro. E a mensagem de erro é *bem* clara quanto ao porquê disso. Dê uma olhada em *qualquer* outra declaração de KeyPress em *qualquer* outro componente e você verá que não é essa daí que você colocou... Abraços, Graymalkin
-
Por que você não procura algo sobre o algoritmo Huffman de compactação? É o mesmo algoritmo usado pela maioria dos compactadores (zip, arj, lha, etc.). Acho que seria mais prático (e mais eficiente), já que você deve encontrar bibliotecas (libs) para isso. Abraços, Graymalkin
-
*Não* adianta colocar os nomes das variáveis dentro de uma string, pois eles serão interpretados literalmente. Você tem que colocar do lado de fora, concatenando com &. Exemplo: sql = "INSERT INTO relcomanda (codigocomanda, nomedaloja, datadacomanda, vrcomanda, desconto, vrtotaldesc, defeito, impresso) VALUES (" & codigo & ", '" & nomeloja & "', DateValue('" & datacom & "'), " & total & ", " & txtdesc.txt & ", " & txttotdesc.txt & ", '', " & S cn.Execute sql Note que você também tem que colocar ' (aspa simples) para campos texto, DateValue() para campos data e para campos numéricos você tem que alterar a vírgula por ponto, se for o caso. Não sei o que é o tal "S" ali no final, e se os tipos dos seus campos são exatamente os que coloquei ali em cima. Por isso, faça o teste e ajuste conforme o caso. Abraços, Graymalkin