Ir ao conteúdo
  • Cadastre-se
Main.cpp

C++ C++ builder - usuário e senha

Posts recomendados

Sempre vejo iniciantes em linguagem C ou C++,
querendo utilizar blbliotecas antigas em plataformas
modernas, não sabem a dor de cabeça que estão
semeando a si mesmos; Primeiro porque estas
bibliotecas já eram bastante limitadas,
para os sistemas onde foram criadas imaginem
agora com os avanços que estes sistemas receberam,
sei bem os problemas que arrumei quando tentei utilizá-las.
O C++ Builder é uma excelente ferramenta para criação
tanto de jogos como para programas em desktops,
mobile e web, e eu ainda o coloco acima do Qt,
Porque conheço os dois e posso opinar.
Neste programinha, mostro um exemplo de sistema de login,
mas existem mil maneiras de fazer e personalizar isto,
ainda mais utilizando uma IDE deste nível,
acompanhem no vídeo por favor:

 

 

https://embarcadero-ccplus-plus.blogspot.com/2020/03/c-builder-usuario-e-senha.html

 

//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
    String Usuario_1 = "Samuel";
    String Usuario_2 = Edit1 -> Text;
    Boolean Result_1 = SameText ( Usuario_1, Usuario_2 );
    String Senha_1 = Edit2 -> Text;
    String Senha_2 = Edit3 -> Text;
    if ( Result_1 == False ) {
        Panel1 -> Font -> Color = clBlue;
        Panel1 -> Caption = "Usuário não confere";
        Edit1 -> SetFocus ( );
        Edit1 -> Clear ( );
    } else {
        Boolean Result_2 = SameText ( Senha_1, Senha_2 );
        if ( Result_2 == False ) {
            Panel1 -> Font -> Color = clGreen;
            Panel1 -> Caption = "Senhas desiguais";
            Edit2 -> Clear ( );
            Edit3 -> Clear ( );
            Edit2 -> SetFocus ( );
        } else {
            Panel1 -> Font -> Color = clBlack;
            Panel1 -> Caption = "Login efetuado";
        }
    }
    Informe ( Sender );
}
//---------------------------------------------------------------------------

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Samuel. Tava procurando aquele programa que você fez informava a cordenada do caret no cmd. você ainda tem ele?

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 minutos atrás, vangodp disse:

Ola Samuel. Tava procurando aquele programa que você fez informava a cordenada do caret no cmd. você ainda tem ele?

Entra no meu canal no youtube e veja todos os vídeos, talvez ele esteja lá, é que não entendi qual seria este prograna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Era um que você clicava no cmd e ele te dava a cordenada. Como o gotoxy, que serve para posicionar o cursor para escrever, mas o só que o contrario, te dizia onde estava o cursor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que eu usei este programinha como ferramenta para clicar o programa menu com cliques do mouse, só que ele só funciona no windows 7, no 10 não funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim... era algo assim. você tem ele ainda?

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, vangodp disse:

sim... era algo assim. você tem ele ainda?

Vou procurar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza! Se tiver muy difícil não esquente. Era para fazer um busca minas(trabalho proposto por um usuario aqui do forum), queria fazelo sem precisar tipo informar coisas como "Entre com a cordenada X" e depois "Entre com a cordenada Y".... Tendeu? Al menos se lembrar quais funçoes você usou ja me ajudaria bastante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Através deste pequeno programinha criei, vários usando os cliques do mouse, testa ele  pra ver se serve

#include <stdio.h>
#include <conio.h>
#include <windows.h>
int main ( ){
	POINT Coordenadas;
	while ( true ){
		GetCursorPos ( &Coordenadas );
		printf("X: %d\nY: %d\n", Coordenadas.x, Coordenadas.y );
		Sleep(50);
		system("cls");
	}
	getche();
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho esse de aqui que encontrei pesquisando. Mas ainda falta coisas como a detecção de pulsação do mouse etc. E também n sei se vai servir ainda. 🤣
 

#include<Windows.h> //for : GetClientRect , COORD, GetConsoleWindow, GetStdHandle,...
#include <iostream>
using namespace std;


int main () {





    COORD coord = { 0, 0 }, xy = { 0, 1 };
    
    while ( 1 ) {
        HANDLE hout = GetStdHandle ( STD_OUTPUT_HANDLE );
        POINT pt;
        GetCursorPos ( &pt );
        HWND hwnd = GetConsoleWindow();
        
        RECT rc;
        GetClientRect ( hwnd, &rc );
        ScreenToClient ( hwnd, &pt );
        
        CONSOLE_SCREEN_BUFFER_INFO inf;
        GetConsoleScreenBufferInfo ( hout, &inf );
        
        coord.X = MulDiv ( pt.x, inf.srWindow.Right, rc.right );
        coord.Y = MulDiv ( pt.y, inf.srWindow.Bottom, rc.bottom );
        
        cout << "X: " << coord.X;
        cout << " Y: " << coord.Y;
        Sleep(300);
        system("cls");
    }
    
    cin.ignore();
    return  0;
}

Deixo ele por si servir a alguém jeje.

Compartilhar este post


Link para o post
Compartilhar em outros sites
24 minutos atrás, vangodp disse:

Beleza! Se tiver muy difícil não esquente. Era para fazer um busca minas(trabalho proposto por um usuario aqui do forum), queria fazelo sem precisar tipo informar coisas como "Entre com a cordenada X" e depois "Entre com a cordenada Y".... Tendeu? Al menos se lembrar quais funçoes você usou ja me ajudaria bastante.

Pelo programa menu com cliques do mouse da pra fazer isto, só que não tem todas as funções do mouse

Basta deixar os pontos de colisão invisíveis, e o programinha que te passei acima, funcionou no windows 10, quando testei agora pouco.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse!!!  Muito louco!
Da uma olhada nesse que eu encontrei:
https://stackoverflow.com/questions/6285270/how-can-i-get-the-mouse-position-in-a-console-program

 

Bem interessante também.

Esse é o código certo?
 

#include <graphics.h>
int  menu_um;
void imp_jan ( int x, int y, int lin, int col, int n ) {
     for ( int i = 0; i <= n; i++ ) {
         line ( x + i, y, x + i, y + lin );
         line ( x + col + i, y, x + col + i, y + lin );
         line ( x, y + i, x + col, y + i );
         line ( x, y + i + lin, x + col + n, y + i + lin );
     }
}
int main ( );
void menu_1 ( ) {
     clearviewport ( );
     setcolor ( LIGHTGREEN );
     imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
     settextstyle ( 0, 0, 13 );
     settextstyle ( GOTHIC_FONT, 0, 2 );
     setcolor ( 12 );
     outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
     settextstyle ( SIMPLEX_FONT, 0, 1 );
     setcolor ( LIGHTBLUE );
     outtextxy ( 130, 70, "BEM VINDO AO MENU 1");
     getch ( );
     closegraph ( );
     main ( );
}
void menu_2 ( ) {
     clearviewport ( );
     setcolor ( LIGHTBLUE );
     imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
     settextstyle ( 0, 0, 13 );
     settextstyle ( GOTHIC_FONT, 0, 2 );
     setcolor ( 12 );
     outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
     settextstyle ( SIMPLEX_FONT, 0, 1 );
     setcolor ( LIGHTBLUE );
     outtextxy ( 130, 70, "BEM VINDO AO MENU 2");
     getch ( );
     closegraph ( );
     main ( );
}
void menu_3 ( ) {
     clearviewport ( );
     setcolor ( LIGHTRED );
     imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
     settextstyle ( 0, 0, 13 );
     settextstyle ( GOTHIC_FONT, 0, 2 );
     setcolor ( 12 );
     outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
     settextstyle ( SIMPLEX_FONT, 0, 1 );
     setcolor ( LIGHTBLUE );
     outtextxy ( 130, 70, "BEM VINDO AO MENU 3");
     getch ( );
     closegraph ( );
     main ( );
}
void use_mouse ( ) {
     if ( ismouseclick ( WM_LBUTTONDOWN ) ) {
         int x_clicked, y_clicked;
         getmouseclick ( WM_LBUTTONDOWN, x_clicked, y_clicked );
         if ( ( 90 <= x_clicked ) && ( x_clicked <= 120 ) ) {
              if ( ( 131 <= y_clicked ) && ( y_clicked <= 141 ) )
                   menu_um= 1;
              else if ( ( 161 <= y_clicked ) && ( y_clicked <= 181 ) )
                   menu_um = 2;
              else if ( ( 191 <= y_clicked ) && ( y_clicked <= 211 ) )
                   menu_um = 3;
              else if ( ( 221 <= y_clicked ) && ( y_clicked <= 241 ) )
                   menu_um = 4;
         } else menu_um = -1;
     }
     if ( ismouseclick ( WM_LBUTTONDBLCLK ) ) {
         clearmouseclick ( WM_LBUTTONDBLCLK );
         if ( menu_um == 1 ) {
              menu_1  ( );
         }
         if ( menu_um == 2 ) {
              menu_2  ( );
         }
         if ( menu_um == 3 ) {
              menu_3  ( );
         }
         if ( menu_um == 4 ) {
              clearviewport ( );
              setcolor ( 0 );
              imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
              settextstyle ( 0, 0, 13 );
              settextstyle ( GOTHIC_FONT, 0, 2 );
              setcolor ( 12 );
              outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
              settextstyle ( SIMPLEX_FONT, 0, 1 );
              setcolor ( BROWN );
              outtextxy ( 130, 280, "Por: " );
              setcolor ( BLACK );
              outtextxy ( 180, 280, "Samuel Lima" );
              setcolor ( BLUE );
              outtextxy ( 130, 300, "sa_sp10@hotmail.com" );
              setcolor ( LIGHTRED );
              outtextxy ( 200, 350, "MUITO OBRIGADO" );
              getch ( );
              exit ( 1 );
         }
     }
}
void menu_principal ( ) {
     clearviewport ( );
     setcolor ( GREEN );
     imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
     settextstyle ( 0, 0, 13 );
     settextstyle ( GOTHIC_FONT, 0, 2 );
     setcolor ( 12 );
     outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
     settextstyle ( SIMPLEX_FONT, 0, 2 );
     setcolor ( LIGHTBLUE );
     outtextxy ( 130, 70, "Escolha uma opção abaixo");
     settextstyle ( 0, 0, 13 );
     setcolor ( LIGHTMAGENTA );
     outtextxy ( 100, 131, "1 - " );
     setcolor ( LIGHTBLUE );
     outtextxy ( 150, 131, "Menu 1" );
     setcolor ( LIGHTMAGENTA );
     outtextxy ( 100, 161, "2 - " );
     setcolor ( LIGHTBLUE );
     outtextxy ( 150, 161, "Menu 2" );
     setcolor ( LIGHTMAGENTA );
     outtextxy ( 100, 191, "3 - " );
     setcolor ( LIGHTBLUE );
     outtextxy ( 150, 191, "Menu 3" );
     setcolor ( LIGHTMAGENTA );
     outtextxy ( 100, 221, "4 - " );
     setcolor ( LIGHTBLUE );
     outtextxy ( 150, 221, "Sair" );
     while ( 1 ) {
         if ( !kbhit ( ) )
              use_mouse ( );
     }
}
int main ( ) {
     initwindow ( 603, 403, "MENU CLICKES DO MOUSE");
     setbkcolor ( WHITE );
     menu_principal ( );
     closegraph ( );
}

 

adicionado 9 minutos depois

bota lá no seu blog o source 😃
Muito obrigado Samuel!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que com este acima é possível fazer o que você pretende,

mas tem que instalar a biblioteca graphics.h, e eu já me enchi

destas doenças, já sofri muito com graphics.h, allegro, opengl,

e outras. Pra mim janelas em C++  tem que ser no C++ Builder ou Qt.

 

Abraço Evandro!!!

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

hahah ta certo, eu entendo. 👍

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 29/03/2020 às 21:29, vangodp disse:

Era um que você clicava no cmd e ele te dava a cordenada. Como o gotoxy, que serve para posicionar o cursor para escrever, mas o só que o contrario, te dizia onde estava o cursor

 

O oficial está descrito aqui, se vai usar mesmo essas chamadas de console no Windows. Bem, só pode ser no Windows porque o Linux não tem console ;)

 

Meu palpite sempre é para não escrever essas coisas. E se for escrever usar o modelo Unix/Linux e escrever para a "nova" console do Windows e rodar no Terminal do Windows 10. É muito mais rápido porque usa a GPU da placa de vídeo.

 

De qualquer forma esse programa mostra como fazer pelo oficial pre-2018 no Windows

 

Eis o resultado

 

grid.png.345e7a01ba5e284d99a4fcfd38b42d01.png

 

E o programa em C

#include <windows.h>
#include <stdio.h>

void	gotoYX(int, int);

int main(int argc, char** argv)
{
    HANDLE H;
    CONSOLE_SCREEN_BUFFER_INFO info;
    CONSOLE_SCREEN_BUFFER_INFO* Info = &info;
    int i;
    int r;
    char linha = 0;
    char coluna = 0;

    H = GetStdHandle(STD_OUTPUT_HANDLE);
    if (H == INVALID_HANDLE_VALUE)
    {
        printf("??????????? Que passou? %d\n", GetLastError());
        return 1;
    };  // if()

    for (int i = 0; i < 20; i += 1)
        printf("%02d 34567890123456789012345678901234567890123456789\n",i);
    while (1)
    {
        gotoYX(rand() % 18, rand() % 60);
        r = GetConsoleScreenBufferInfo(H, Info);
        linha = (char) Info->dwCursorPosition.Y;
        coluna = (char) Info->dwCursorPosition.X;
        Sleep(2000);
        gotoYX(22, 0);
        printf("Termine com Control-C. Posicao do Cursor era: (%d,%d)", linha, coluna);
    };  // while()
    CloseHandle(H);
    return 0;
};  // main()

void	gotoYX(int linha, int coluna)
{
    static COORD	coord;
    HANDLE			H = GetStdHandle(STD_OUTPUT_HANDLE);
    coord.X = (short)coluna; coord.Y = (short)linha;
    SetConsoleCursorPosition(H, coord);
    return;
};	// gotoXY

Esse é engraçado porque para mostrar a posição do cursor ele muda de lugar :D 

 

De todo modo a posição do cursor fica naquela estrutura... Note que se vai usar esse modelo pode ter várias consoles e o tamanho delas pode ser diferente do tamanho da janela. E a parte visível pode variar dinamicamente durante a execução. Um pesadelo.

 

adicionado 8 minutos depois

Sobre os eventos do mouse, veja esse programa de exemplo https://docs.microsoft.com/en-us/windows/console/reading-input-buffer-events?redirectedfrom=MSDN 

 

Não estou te  incentivando a fazer isso. Usar o mouse num programa de console é como passear a pé 8km empurrando a bicicleta. Se vai ler uma fila de eventos do mouse, coordenadas em pixel, eventos de mudança de tamanho da janela da console e tal, porque não usar uma interface gráfica simplesmente? O resultado é melhor e o trabalho menor. 

Escrevi incontáveis interfaces em C ou C++ mas as máquinas nunca tinham mouse, pixels e tal. Quando tinham sempre usei outras coisas. Mas é perfeitamente possível, claro. Poste os detalhes do que está precisando. Talvez fosse o caso de um tópico específico...

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, arfneto disse:

Não estou te  incentivando a fazer isso. Usar o mouse num programa de console é como passear a pé 8km empurrando a bicicleta.

🤣 Eu sei... mas acho que gosto de sofrer mesmo HAHAH.

O primeiro código que fiz da a coordenada de forma mais ou menos satisfatória para o que quero fazer mas falta o evento de mouse.

Eu sei que poderia fazer isso tudo mais comodamente com alguma biblioteca gráfica como sfml ou uma chamada miniwin, entre outras. Mesmo assim vou dar uma olhada nos códigos e links que me propões. El link sobre o exemplo dos eventos parece muito bom, vou "brincar" um pouco com eles e ver o que posso fazer. Muito obrigado. 👍

 

1 hora atrás, arfneto disse:

Poste os detalhes do que está precisando. Talvez fosse o caso de um tópico específico...

valeu! Obrigado! Vou ver si continuo com isso devido ao que você falou(complexidade/utilidade), se tiver alguma duvida volto por aqui.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!