Ir ao conteúdo
  • Cadastre-se

winzero

Membro Pleno
  • Posts

    22
  • Cadastrado em

  • Última visita

Reputação

8
  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!

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