como fazer ??

Delphi

09/05/2003

Como eu faco, qdo eu clicar em algum item do radio group (Triangulo, Retangulo, Losango), eles aparecam com suas respectivas forma?

eu to comecando a mecher no Delphi e to meio confuso ainda... :D obrigado para quem poder me ajudar !!


Tiozinho

Tiozinho

Curtidas 0

Respostas

Cruz

Cruz

09/05/2003

Você quer que o radiobutton se transforme em um retangulo,losango,triangulo ou quer que as formas sejam desenhadas na tela...


GOSTEI 0
Tiozinho

Tiozinho

09/05/2003

Isso...
Que ela apareçam na tela conforma voce vai clicando nelas...


GOSTEI 0
Crash

Crash

09/05/2003

Como eu faco, qdo eu clicar em algum item do radio group (Triangulo, Retangulo, Losango), eles aparecam com suas respectivas forma? eu to comecando a mecher no Delphi e to meio confuso ainda... :D obrigado para quem poder me ajudar !!


Como vc é iniciante o recomendavel é voce criar as tres imagens que deseja que apareça no Paint e salve-as como Bitmap.

Insira 3 componentes TImage no form e coloque suas propriedades visible = false.

No evento onclick voce coloca:

Case RadioGroup1.ItemIndex of

0: begin

Image1.Visible:= True;
Image1.Visible:= False;
Image1.Visible:= False;

end;

1: begin

Image1.Visible:= False;
Image1.Visible:= True;
Image1.Visible:= False;

end;
2: begin

Image1.Visible:= False;
Image1.Visible:= False;
Image1.Visible:= True;

end;


t+


GOSTEI 0
Tiozinho

Tiozinho

09/05/2003

Não tem algum comando do delphi que desenhe a imagem ??
Se não tiver muito obrigado pela ajuda....


GOSTEI 0
Rebel_inside

Rebel_inside

09/05/2003

Ter até tem, porém é um pouco mais complicado de ser feito.

Você teria que criar um controle (derivado do TGraphicControl ou TGraphicalControl, não me lembro :shock: ) e sobrescrever o método Paint dele para desenhar a forma que você deseja.

Isso é mais complicado, porém com melhores resultados.

um exemplo muito simples:

unit UDesenho;

interface

uses 
  Windows, SysUtils, Classes, StdCtrls, ExtCtrls;

type
  TTipoDesenho = (tdTriangulo, tdQuadrado, tdLosango);

  TDesenho = class(TGraphicControl)
  private
    FTipoDesenho: TTipoDesenho;
    procedure SetTipoDesenho(Value: TTipoDesenho);
  public
    procedure Paint; override;
    property TipoDesenho: TTipoDesenho read FTipoDesenho write SetTipoDesenho;
  end;

(...)
implementation

procedure TDesenho.SetTipoDesenho(Value: TTipoDesenho);
begin
  if (Value<>FTipoDesenho) then begin
    FTipoDesenho:= Value;
    Invalidate;
  end;
end;

procedure TDesenho.Paint;
begin
  with Canvas do begin
    // Limpa a imagem
    FillRect(BoundsRect); 
    case FTipoDesenho of
      tdTriangulo: begin { Desenha o triangulo }
      end;
      tdQuadrado: begin { Desenha o quadrado }
      end;
      tdLosango: begin { Desenha o losango }
      end;
    end;
  end;
end;

(...)
end.


A parte de registrar esse componente eu não irei explicar por ser um pouco mais avançada. Procure no help do Delphi como fazê-lo :)

Em todo caso, você pode proceder da seguinte maneira:

- Criar uma nova unit com esse componente. Por exemplo: UDesenho;
- Adicionar à uses list do Form;
- Criar uma variável para este tipo;
- No evento OnCreate do form, criar e posicionar esse componente.

Exemplo...

unit UTeste;

interface

uses
  Windows, SysUtils, Classes, Forms, Dialogs,(...), UDesenho;

type
  TForm1 = class(TForm)
  (...)
  end;

var 
  Form1: TForm1;
  // Caso você não tenha registrado o componente e adicionado ao seu form, declare essa variável!
//  Desenho1: TDesenho;

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Caso tenha declarado a variável, coloque o seguinte código:
//  Desenho1:= TDesenho.Create(Self);
//  Desenho1.Parent:= Self;
//  Desenho1.Left:= 10;
//  Desenho1.Top:= 10;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
    0: Desenho1.TipoDesenho:= tdTriangulo;
    1: Desenho1.TipoDesenho:= tdQuadrado;
    2: Desenho1.TipoDesenho:= tdLosango;
  end;
end;

end.



GOSTEI 0
Tiozinho

Tiozinho

09/05/2003

Brigadão a todos q ajudaram...


GOSTEI 0
Tiozinho

Tiozinho

09/05/2003

Como eu faço para que o texto q aparece na label fique em outra linha?

ex.
o texto tem que
aparecer assim na label.


GOSTEI 0
Toshio Bruno

Toshio Bruno

09/05/2003

Como eu faço para que o texto q aparece na label fique em outra linha? ex. o texto tem que aparecer assim na label.


Ex: Label1.Caption:=´ Toshio´+#10 ´ Bruno´;


GOSTEI 0
Toshio Bruno

Toshio Bruno

09/05/2003

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
RadioGroup1: TRadioGroup;
procedure FormCreate(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
p:TPicture;
S:String;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
p:=Tpicture.Create;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:begin
S:=´Imagem1.bmp´;
P.LoadFromFile(´C:\Meus Documentos\´+S);
Image1.Picture:=p;
end;

1:begin
S:=´Imagem2.bmp´;
P.LoadFromFile(´C:\Meus Documentos\´+S);
Image1.Picture:=p;
end;

2:begin
S:=´Imagem3.bmp´;
P.LoadFromFile(´C:\Meus Documentos\´+S);
Image1.Picture:=p;
end;
end;
end;

end.


GOSTEI 0
Tiozinho

Tiozinho

09/05/2003

Outra pergunta.... :D

no PageControl, colocando 9 novas pagina elas aparecen todas uma do lado da outra. Como eu faço para que q fique 5, e embaixo delas 4?


GOSTEI 0
Robotizar

Robotizar

09/05/2003

Não tem algum comando do delphi que desenhe a imagem ?? Se não tiver muito obrigado pela ajuda....


ë muito facil
primeiro pegue a figura q vc quer desenhar e ponha no c: aqui vou chama-la de Figura
ponha um botão no form e os seguintes comandos
procedure button......
var
img: tbitmap;
begin
img:= tbitmap.create;
img.loadfromfile(´c:\figura´);
form1.draw(0,0,img);
end;

muito simples velhinho


GOSTEI 0
Robotizar

Robotizar

09/05/2003

ops corrige ai
form1.CANVAS.draw(0,0,img);


GOSTEI 0
POSTAR