Fórum Função MessagBox() e bolinhas #171783
27/07/2003
0
[color=darkblue:7062d080b0]Pessoal to com dois problemas (um de memória - minha - o outro de falta de conhecimento).[/color:7062d080b0]
O primeiro é que eu não lembro quase nada da função MessageBox(). Estava fazendo um editor de textos simples (atoa, como sempre) e vi que não lembrava como funciona essa função (pra confirmar se deseja salvar o arquivo alterado e coisa assim).
O outro (num outro programa que não tem nada a ver com o acima). É que eu tenho que fazer um programa com onde tem um grupo de bolinhas com a aparência tipo a seguinte:
[size=18:7062d080b0] OOOOO [/size:7062d080b0]
Essas bolinhas funcionam da seguinte forma. Você clica em um e ela mais as anteriores ficam roxas por dentro. As que ficam depois ficam/ permanecem brancas. Eu pensei em usar vários componentes shape e eu vi que daria pra fazer usando o envento onclick delas verificar uma a uma. Só que no meu programa tem mais de 30 grupos dessas bolinhas então eu não ia fazer isso. Eu precisaria que alguém me desse uma idéia de como criar um componente ou algo que funcione da forma acima sem que eu tenho que programar. Lembrando que cada bolinha dessa tem um valor numérico (cada uma vale 1 em todos os grupos que preciso).
O primeiro é que eu não lembro quase nada da função MessageBox(). Estava fazendo um editor de textos simples (atoa, como sempre) e vi que não lembrava como funciona essa função (pra confirmar se deseja salvar o arquivo alterado e coisa assim).
O outro (num outro programa que não tem nada a ver com o acima). É que eu tenho que fazer um programa com onde tem um grupo de bolinhas com a aparência tipo a seguinte:
[size=18:7062d080b0] OOOOO [/size:7062d080b0]
Essas bolinhas funcionam da seguinte forma. Você clica em um e ela mais as anteriores ficam roxas por dentro. As que ficam depois ficam/ permanecem brancas. Eu pensei em usar vários componentes shape e eu vi que daria pra fazer usando o envento onclick delas verificar uma a uma. Só que no meu programa tem mais de 30 grupos dessas bolinhas então eu não ia fazer isso. Eu precisaria que alguém me desse uma idéia de como criar um componente ou algo que funcione da forma acima sem que eu tenho que programar. Lembrando que cada bolinha dessa tem um valor numérico (cada uma vale 1 em todos os grupos que preciso).
Hiko Seijuro
Curtir tópico
+ 0
Responder
Posts
27/07/2003
Fórum Vini
2º)Bolinhas - Você pode criar um array[1..30] of TRect, para desenhar em um offset e desenhar o offset no canvas do formulário(ou de outro componente) com um for no evento OnCreate e OnPaint do formulário.
Você também pode capturar os cliques do mouse no evento OnMouseDown do formulário.
Aqui vai um exemplo(o OnMouseDown não está funcionando ainda...)
Boa sorte!
Espero ter ajudado.
Vinicius
Você também pode capturar os cliques do mouse no evento OnMouseDown do formulário.
Aqui vai um exemplo(o OnMouseDown não está funcionando ainda...)
implementation
var
Bol: array[1..30] of TRect;
OffSet: TBitmap;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
cont: integer;
begin
OffSet:=TBitmap.Create;
offset.Width:=Screen.Width;
offset.Height:=Screen.Height;
offset.Canvas.Brush.Color:=Form1.Color;
offset.Canvas.Rectangle(0,0,Screen.Width,Screen.Height);
offset.Canvas.Brush.Color:=$FFFFFF;
for cont:=1 to 30 do
begin
with Bol[cont] do
begin
Left:=cont*30;
Top:=15;
Right:=Bol[cont].Left+30;
Bottom:=Bol[cont].Top+30;
end;
offset.Canvas.Ellipse(Bol[cont]);
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.Canvas.Draw(15,15,offset); //atualiza o offset no formulário
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
cont: integer;
begin
for cont:=1 to 30 do
if (X > bol[cont].Left) and (X < bol[cont].Right)then
begin
offset.Canvas.Brush.color:=$CC0000;
offset.Canvas.Ellipse(Bol[cont]);
offset.Canvas.Brush.color:=$FFFFFF;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
offset.free;
end;
Boa sorte!
Espero ter ajudado.
Vinicius
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)