Ir ao conteúdo
  • Cadastre-se

winzero

Membro Pleno
  • Posts

    22
  • Cadastrado em

  • Última visita

Tudo que winzero postou

  1. Olá, gostaria de saber se posso colocar essa função ImageList1.GetBitmap(0, btn0.Glyph); dentro de um array, por exemplo capBotao : array[0..7] of TspeedButton = ( ImageList1.GetBitmap(0, btn0.Glyph), ImageList1.GetBitmap(1, btn1.Glyph), ImageList1.GetBitmap(2, btn2.Glyph)); ali está de 0 a 7, mas só mostrei 3... enfim, não consigo declarar como capBotao[0] := ImageList1.GetBitmap(0, btn0.Glyph); capBotao[1] := ImageList1.GetBitmap(1, btn1.Glyph); capBotao[2] := ImageList1.GetBitmap(2, btn2.Glyph); capBotao[3] := ImageList1.GetBitmap(3, btn3.Glyph); e gostaria de tentar isso, obrigado.
  2. Boa tarde, primeiramente peço desculpas pois acredito que não estou postando no lugar certo. Mas quanto ao que interessa, preciso de ideias para o que eu poderia desenvolver, para o meu TCC de técnico em informática, não consigo encontrar nada que tenha uma grande relevância dentro da área em que estudo. Desde já agradeço!
  3. Olá, estou fazendo um trabalho de escola e quero comparar dois SpeedButtons, gostaria de saber se posso fazer um hint pra cada botão e comparar (pra ver se são iguais ou diferentes) ou se posso usar tag (se possível me ajude, pois não conheço nada dessa função, só ouvi falar). Claro que outras sugestões para comparação também serão aceitas, falei dessas duas pois foram as que me "recomendaram".
  4. Mais precisamente o que preciso agora é uma maneira de comparar 2 speed buttons para saber se são iguais ou n... E após a comparação( se o usuário acertar), para as 2 imagens ficarem a mostra e o usuário mesmo clicando em cima do botão, ele não fazer mais a função, eu uso o que? Fiz até agora mas deu erro "got int64, expected TSpeedButton" Meu código:
  5. Olá, gostaria de ajuda para formular "tópicos" para o começo de um projeto de escola que seria desenvolver um jogo da memória. Como assim tópicos? Penso em tópicos como "ações" que seriam programadas para fazer o programa funcionar. Exemplo: - Se o usuário clicar na peça, ela mostra a imagem até o próximo clique, se as duas peças possuírem o mesmo HINT (modo que achei para comparar as duas), então as duas ficam viradas, se não, as duas voltam ao estado original ("escondidas"); - Randomizar localização das peças cada vez que o programa for iniciado; - Inserção de imagens em um botão (não sei se é possível e nem como fazer, tenho de procurar ainda kkk); - Na hora de mostrar a imagem, pensei em no OnClick, dai ele recebe a imagem que quero. Por enquanto só fiz isso, qualquer dica já será de grande ajuda. Ah, achei um quebra-cabeça na internet, mas ele não roda no Lazarus e não tenho conhecimento o suficiente para descobrir o porque. Vou deixar o código aqui, talvez ajude kkk unit TelaPrincipal; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls, ExtCtrls, Menus; type TFormTelaPrincipal = class(TForm) LabelPontos: TLabel; btnReinicia: TButton; AreaDoJogo: TPanel; btnCartaSaillorMoon1: TSpeedButton; btnCartaPokemon1: TSpeedButton; btnCartaSakura1: TSpeedButton; btnCartaYukito1: TSpeedButton; btnCartaGohan1: TSpeedButton; btnCartaDragonBall1: TSpeedButton; btnCartaPokemon2: TSpeedButton; btnCartaDragonBall2: TSpeedButton; btnCartaSakura2: TSpeedButton; btnCartaYukito2: TSpeedButton; btnCartaGohan2: TSpeedButton; btnCartaSerena1: TSpeedButton; btnCartaSerena2: TSpeedButton; btnCartaGoku1: TSpeedButton; btnCartaGoku2: TSpeedButton; btnCartaLiga1: TSpeedButton; btnCartaLiga2: TSpeedButton; btnCartaLince1: TSpeedButton; btnCartaLince2: TSpeedButton; btnCarta1Gohan: TSpeedButton; btnCarta2Gohan: TSpeedButton; btnCartaVampira1: TSpeedButton; btnCartaVampira2: TSpeedButton; Cronometro: TTimer; chkEmbaralha: TCheckBox; btnCartaSaillorMoon2: TSpeedButton; procedure ClickBotao(Sender: TObject); procedure CronometroTimer(Sender: TObject); procedure btnReiniciaClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnCartaSerena1Click(Sender: TObject); private B1,B2: TSpeedButton; // O par de botões de cada jogada... Pontos, Acertos: integer; procedure PerdePontos(N: integer); procedure GanhaPontos(N: integer); procedure FimDeJogo(mensagem: string); public procedure ReiniciaJogo; procedure LimpaBotao(Botao: TSpeedButton); procedure Embaralha; end; var FormTelaPrincipal: TFormTelaPrincipal; implementation {$R *.DFM} procedure TFormTelaPrincipal.ReiniciaJogo; begin B2 := nil; {o "nil" acima significa que B2 estará VAZIA e não apontará para NENHUM botão!} Pontos := 60; // inicia com 60 pontos Acertos := 0; {Limpa todos os botões:} LimpaBotao(btnCartaPokemon1); LimpaBotao(btnCartaPokemon2); LimpaBotao(btnCartaSaillorMoon1); LimpaBotao(btnCartaSaillorMoon2); LimpaBotao(btnCartaSakura1); LimpaBotao(btnCartaSakura2); LimpaBotao(btnCartaYukito1); LimpaBotao(btnCartaYukito2); LimpaBotao(btnCartaDragonBall1); LimpaBotao(btnCartaDragonBall2); LimpaBotao(btnCartaGohan1); LimpaBotao(btnCartaGohan2); LimpaBotao(btnCartaSerena1); LimpaBotao(btnCartaSerena2); LimpaBotao(btnCartaGoku1); LimpaBotao(btnCartagoku2); LimpaBotao(btnCartaLiga1); LimpaBotao(btnCartaLiga2); LimpaBotao(btnCartaLince1); LimpaBotao(btnCartaLince2); LimpaBotao(btnCarta1Gohan); LimpaBotao(btnCarta2Gohan); LimpaBotao(btnCartaVampira1); LimpaBotao(btnCartaVampira2); {Verifica op. de embaralhar:} if chkEmbaralha.Checked then Embaralha; {Habilita a tela p/ jogar:} AreaDoJogo.Enabled := True; Cronometro.Enabled := True; // liga o cronometro end; procedure TFormTelaPrincipal.CronometroTimer(Sender: TObject); begin PerdePontos(1); // perde um ponto por segundo end; procedure TFormTelaPrincipal.ClickBotao(Sender: TObject); begin if B2 = nil then // vazio (ver ReiniciaJogo) B2 := B1; // o botão anterior B1 := TSpeedButton(Sender); // O botão clicado B1.Spacing := 4; // Retira os espaços p/ mostrar a figura if (B2 = nil) or (B1 = B2) then Exit // sai desta procedure else if B2.Tag = B1.Tag then begin {A propriedade Tag é um número que você pode usar à vontade - aqui usamos para identificar os pares de botões.} B1 := nil; B2 := nil; GanhaPontos(5); end else begin // ERROU! LimpaBotao(B2); B2 := nil; PerdePontos(2); end; end; procedure TFormTelaPrincipal.PerdePontos(N: integer); begin Pontos := Pontos - N; LabelPontos.Caption := 'Tempo Restante: '+IntToStr(Pontos); if Pontos <= 0 then FimDeJogo('Você perdeu...Tente outra VEZ'); end; procedure TFormTelaPrincipal.GanhaPontos(N: integer); begin Pontos := Pontos + N; Acertos := Acertos + 1; LabelPontos.Caption := 'Tempo Restante: '+IntToStr(Pontos); if Acertos = 12 then FimDeJogo('Parabéns! você acertou !!! '); end; procedure TFormTelaPrincipal.FimDeJogo(mensagem: string); begin Cronometro.Enabled := False; // desliga o cronometro ShowMessage('Fim de Jogo: '+mensagem); AreaDoJogo.Enabled := False; // impede de mexer no jogo end; procedure TFormTelaPrincipal.btnReiniciaClick(Sender: TObject); begin ReiniciaJogo; end; procedure TFormTelaPrincipal.LimpaBotao(Botao: TSpeedButton); begin Botao.Spacing := 200; // cobre a figura com espaços Botao.Down := False; end; procedure TFormTelaPrincipal.FormCreate(Sender: TObject); begin ReiniciaJogo; end; procedure TFormTelaPrincipal.Embaralha; var aBotao: array[1..12,1..2] of TSpeedButton; i,j, p, id: integer; imagem: TBitmap; nome: string; begin {Coloca os botões no array:} aBotao[1][1] := btnCartaPokemon1; aBotao[1][2] := btnCartaPokemon2; aBotao[2][1] := btnCartaSaillorMoon1; aBotao[2][2] := btnCartaSaillorMoon2; aBotao[3][1] := btnCartaSakura1; aBotao[3][2] := btnCartaSakura2; aBotao[4][1] := btnCartaYukito1; aBotao[4][2] := btnCartaYukito2; aBotao[5][1] := btnCartaDragonBall1; aBotao[5][2] := btnCartaDragonBall2; aBotao[6][1] := btnCartaGohan1; aBotao[6][2] := btnCartaGohan2; aBotao[7][1] := btnCartaSerena1; aBotao[7][2] := btnCartaSerena2; aBotao[8][1] := btnCartaGoku1; aBotao[8][2] := btnCartaGoku2; aBotao[9][1] := btnCartaLiga1; aBotao[9][2] := btnCartaLiga2; aBotao[10][1] := btnCartaLince1; aBotao[10][2] := btnCartaLince2; aBotao[11][1] := btnCarta1Gohan; aBotao[11][2] := btnCarta2Gohan; aBotao[12][1] := btnCartaVampira1; aBotao[12][2] := btnCartaVampira2; {Troca as imagens entre os botões, aleatóriamente:} Randomize; imagem := TBitmap.Create; for i := 1 to 12 do for j := 1 to 2 do begin p := Random(11)+1; // gera um número entre 1..6 {Guarda as informações do botão escolhido...} id := aBotao[i][j].Tag; imagem.Assign(aBotao[i][j].Glyph); nome := aBotao[i][j].Caption; {...e troca com o botão atual:} aBotao[i][j].Glyph.Assign(aBotao[p][j].Glyph); aBotao[p][j].Glyph.Assign(imagem); aBotao[i][j].Tag := aBotao[p][j].Tag; aBotao[p][j].Tag := id; aBotao[i][j].Caption := aBotao[p][j].Caption; aBotao[p][j].Caption := nome; end; // for j imagem.Free; end; procedure TFormTelaPrincipal.btnCartaSerena1Click(Sender: TObject); begin if B2 = nil then // vazio (ver ReiniciaJogo) B2 := B1; // o botão anterior B1 := TSpeedButton(Sender); // O botão clicado B1.Spacing := 4; // Retira os espaços p/ mostrar a figura if (B2 = nil) or (B1 = B2) then Exit // sai desta procedure else if B2.Tag = B1.Tag then begin {A propriedade Tag é um número que você pode usar à vontade - aqui usamos para identificar os pares de botões.} B1 := nil; B2 := nil; GanhaPontos(5); end; end; end.
  6. Estou indeciso entre 2 notebooks, gostaria de ajuda para escolher o melhor entre eles. O primeiro é esse: Notebook Gamer Acer Intel Core i5-7300HQ 8GB 1TB Placa GTX1050 4GB Tela 15,6" Windows 10 Aspire Nitro 5 50U2 O segundo: Notebook Dell Intel Core i5 8GB 1TB Placa de Vídeo 4GB Tela 14" Windows 10 Inspiron i14-7472-A10S Prata
  7. @Phoenyx Sou técnico em informática, ganho dinheiro com ele, viajo com ele, trabalho com ele, estudo com ele, vivo com ele. Então não é dispensável kkkk adicionado 5 minutos depois @Phoenyx Entendo onde você quer chegar, mas a questão não é sobre ser dispensável ou não, mas sim sobre que modelo ou com quais configurações posso pegar um notebook que vá rodar os programas que citei anteriormente.
  8. @Phoenyx vou pegar um pc e um notebook. Preciso do notebook para os estudos, então ele não é dispensável. Só que não sei qual notebook posso pegar que vá garantir o processamento de todos os programas que desejo, esse é o problema. Comprei um na ultima vez e não foi como o esperado...
  9. @Phoenyx o que você me recomenda mano? realmente, não tenho tanto dinheiro para gastar e não quero fazer besteira, pois não tenho como reparar após... Preciso só de um notebook que rode o básico sabe? programar, assistir algo, jogos leves (lol), se rodar o básico de boa, seria perfeito pra mim.
  10. @GabrielLP14 Para programar uso lazarus e jcreator, fora isso, os do pacote office, geogebra, discord... adicionado 23 minutos depois esse notebook é bom? https://www.casasbahia.com.br/Informatica/Notebook/notebook-gamer-acer-aspire-nitro-5-an515-51-78d6-intel-core-i7-7700hq-16gb-ram-hd-1tb-156-quot-fhd-geforce-1050ti-windows-10-14081497.html?utm_source=zoom02&utm_medium=comparadorpreco&utm_content=14081497&cm_mmc=zoom02_XML-_-INFO-_-Comparador-_-14081497
  11. @GabrielLP14 é necessário que seja um notebook. Eu também gostaria de um desktop, mas para meus estudos eu necessito que seja algo "móvel". Estou pensando em comprar um notebook somente para o estudo e um pc de mesa dai para os jogos... Claro que dai eu teria de desembolsar mais cash. Meu orçamento seria de uns 8~10k para os dois juntos... Algum ninja dos pcs sabe que DESKTOP consigo comprar por 4~8k? Perdão por ficar fazendo várias perguntas e obrigado pelas respostas.
  12. Boa tarde, gostaria de sugestões para um notebook destinado a estudo, programas básicos e jogos "leves". Meu orçamento é de no máximo 4k. Desde já agradeço!
  13. Então guys, quero fazer um programa que quando passar o mouse em cima do botão, o botão vá para uma "coordenada" (x e y) randômica. Comecei fazendo com OnMouseEnter mas não consegui completar. Infelizmente sou um completo ignorante ainda com essa linguagem (e semi-completo com as outras). Gostaria também de marcar a posição tanto do botão quando a do mause (seria a função das duas labels no código abaixo). A seguir meu programa que levei cerca de meia hora para fazer e desisti na metade do caminho: unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure Button1MouseEnter(Sender: TObject); procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure Label1Click(Sender: TObject); private public end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } var centroX: integer; centroY: integer; procedure TForm1.Label1Click(Sender: TObject); begin end; procedure TForm1.Button1Click(Sender: TObject); begin end; procedure TForm1.Button1MouseEnter(Sender: TObject); begin Button1.Left:=Random(Form1.Clientwidth - Button1.width); Button1.Top:=Random(Form1.Clientheight - Button1.height); end; procedure TForm1.FormCreate(Sender: TObject); begin label2:= button1.GetDefaultHeight; button1.GetDefaultWidth; end; Se alguém puder me dar uma luz (mesmo que seja uma pequena dica), agradeço!
  14. Olá, sou novato no delphi e também não possuo muita experiência com programação. Fiz um código que, ao clicar no botão1, mostra algumas informações sobre ele, tais como: altura, largura, nome... Fiz esse código para um botão, então quando clico nos outros eles não mostram as informações. Então minha dúvida é a seguinte, de que maneira posso fazer para "referenciar" os outros botões para que eles entrem na mesma função do botão1 sem eu precisar escrever todo aquele código novamente. A seguir o código. unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls, StdCtrls, Types; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; ControlBar2: TControlBar; GroupBox1: TGroupBox; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; ToggleBox1: TToggleBox; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure PageControl1Change(Sender: TObject); procedure TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); procedure ToggleBox1Change(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); private public end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin if (Sender is TButtom) then showmessage ( 'Nome original =' + Pchar(ActiveControl.Name) + #13 + 'Nome atribuido =' + Pchar(ActiveControl.caption)+ #13 + 'Posição no eixo x =' + inttostr(ActiveControl.Top)+ #13 + 'Posição no eixo y =' + inttostr(ActiveControl.left)+ #13 + 'Altura =' + inttostr(ActiveControl.Height)+ #13 + 'Largura =' + inttostr(ActiveControl.Width)+ #13 ) ; end; procedure TForm1.Button2Click(Sender: TObject); begin end; procedure TForm1.Button3Click(Sender: TObject); begin end; procedure TForm1.PageControl1Change(Sender: TObject); begin end; procedure TForm1.TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); begin end; procedure TForm1.ToggleBox1Change(Sender: TObject); begin end; procedure TForm1.ToolButton1Click(Sender: TObject); begin PageControl1.SelectNextPage(false); end; procedure TForm1.ToolButton2Click(Sender: TObject); begin PageControl1.SelectNextPage(true); end; procedure TForm1.ToolButton4Click(Sender: TObject); begin showmessage('Tchau!'); Application.Terminate; end; end. Desde já agradeço.
  15. @devair1010 Obrigado pela ajuda! adicionado 2 minutos depois @Flávio Pedroza Edit1 entra com o horário do despertador. O meu problema não foi aí... Não sei se o que fiz está totalmente certo, mas alterei ele para mandar uma mensagem ao invés do som e a mesma foi enviada com sucesso... O problema era unicamente no som e não nas comparações em sí. Obrigado pela ajuda!
  16. Estou em dúvida entre comprar um notebook mais simples e um pc de mesa um pouco mais caro ou só comprar o notebook mais op. Meu orçamento é de uns 5~7 mil reais. Gostaria de dicas de que componentes pegar também. O notebook será destinado a trabalhos de escola/jogos, então por exemplo, qual processador seria melhor em desempenho, custo/beneficio...
  17. Então, estava fazendo um código de despertador e resolvi adicionar um som para tocar nesse programa. Usei o MMSystem que me permite tocar sons .wav O problema é que mesmo deixando o som na pasta que marquei, ele não abre (já converti para wav) e outro som de uma sirene deu certo, então não entendi o que fazer. A seguir o código em si. unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, MMSystem; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Timer1: TTimer; Timer2: TTimer; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); private public end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Timer2Timer(Sender: TObject); begin if edit1.text <> '' then begin if label1.caption > Edit1.Text then begin PlaySound('aazz.wav',1,SND_ASYNC); end; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin label1.Caption:=timetostr(now); end; procedure TForm1.Button1Click(Sender: TObject); begin label4.Caption:='Ativado'; timer2.enabled:=true; end; procedure TForm1.Button2Click(Sender: TObject); begin label4.Caption:='Inativo'; timer2.enabled:=false; end; end. Perdão se fiz algo errado, desde já agradeço.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!