Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. 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
  2. Graymalkin

    Construtores

    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
  3. Graymalkin

    Campo Text

    Mas, você não precisaria criar uma função para isso. É só utilizar o evento GotFocus, não? Abraços, Graymalkin
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. Graymalkin

    Construtores

    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
  11. Graymalkin

    Duas Dúvidas

    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
  12. As aspas...: Private Sub Creditos_Click() Form2.Show 1 End Sub Abraços, Graymalkin
  13. Graymalkin

    Dbgrid Onde?

    Project -> Components -> Microsoft Data Bound Grid Control x.0 Abraços, Graymalkin
  14. 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
  15. Graymalkin

    6 Meses

    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
  16. Graymalkin

    Campo Text

    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
  17. De fato. O nome do provedor está incorreto: Microsoft.Jet.OLEDB.4.0 Falta aquele ponto ali, ok? Abraços, Graymalkin
  18. 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
  19. Ops... digitei uma letra errada. Não é DataValue e sim DateValue (igual ao primeiro). Perdão pela falha. Abraços, Graymalkin
  20. 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
  21. 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
  22. 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
  23. Graymalkin

    Campo Text

    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
  24. 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
  25. Graymalkin

    Insert Into

    *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
×
×
  • Criar Novo...