Avatar billede pzw Nybegynder
30. juli 2003 - 16:17 Der er 4 kommentarer og
1 løsning

Grøn/Rød lysdiode på Form

Hvordan laver jeg en lysdiode på en Form - som ligner en rigtig lysdiode?
Lysdioden skal have mulighed for at være rød og grøn.
Jeg har lavet en firkantet boks som skifter mellem rød og grøn, men det ser ikke rigtig ud.
Avatar billede moller2567 Nybegynder
30. juli 2003 - 16:35 #1
På fanebladet additional er der en komponent, der hedder shape. Indsæt denne (det er formentlig din firkantede boks) og den kommer så til at hedde Shape1. Den har en egenskab, der hedder shape. Sæt denne til stCircle, så har du en cirkel. Så skifter du farven ved at skrive en af følgende kommandoer:

  Shape1.Brush.Color := clGreen;  // Grøn
  Shape1.Brush.Color := clLime;  // lysegrøn
  Shape1.Brush.Color := clRed;    // Rød

Hvis det stadig ikke ligner en rigtig diode, så find et billede af en rød og en grøn diode. Sæt et image (fanebladet additional) ind på din form, og skift mellem de to billeder med følgende kommando:

Image1.picture.LoadFromFile('C:\MappeMedBilleder\GrønDiode.bmp');
Avatar billede pzw Nybegynder
30. juli 2003 - 16:39 #2
Tak, virker fint.

//PZ
Avatar billede zerohero Nybegynder
30. juli 2003 - 16:46 #3
He, he... bare leg videre med canvas...

Prøv eventuelt dette. To knapper (TButtons) refere til proceduren "TegnDiode" der tegner på formens canvas i område: Rect(10,10,30,30)...


procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.Caption := 'Rød;
  Button2.Caption := 'Grøn';
end;

procedure TForm1.TegnDiode(Sender : TObject);
begin
  with Canvas do
  begin
    Brush.Color := Form1.Color;
    FillRect(Rect(10,10,30,30));
    if Sender is TButton then
    with Sender as TButton do
    begin
      if Caption = 'Rød' then
      begin
        Pen.Color := clMaroon;
        Canvas.Brush.Color := clRed;
      end
      else
        if Caption = 'Grøn' then
        begin
          Pen.Color := clGreen;
          Canvas.Brush.Color := clLime;
        end;
    end;
    Ellipse(10,10,30,30);
    Pen.Color := clWhite;
    Brush.Color := clWhite;
    Ellipse(15,15,20,20);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TegnDiode(Button1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  TegnDiode(Button2);
end;
Avatar billede zerohero Nybegynder
30. juli 2003 - 16:48 #4
ups: fejl i FormCreate:

Button1.Caption := 'Rød; <-- ( mangler et ' ) !!!!!!
Avatar billede pzw Nybegynder
01. august 2003 - 09:52 #5
Hej zerohero, det er en udseendemæssigt lidt smartere løsning du har lavet.
Tak.
//PZ
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester