Avatar billede mysitesolution Nybegynder
09. december 2002 - 21:46 Der er 8 kommentarer og
1 løsning

3 ting, med edit box

Jeg har lige tre spørgsmål, jeg gerne vil have svaret på:

1. Hvordan laver man et baggrunds billede i en edit box

2. Hvordan laver man baggrunden i en edit box gennemsigtig

3. Hvordan skrifter man farven på borderen i en edit box

I behøver ikke at svare på alle spørgsmål...

på forhånd tak
Avatar billede slowaterz Nybegynder
09. december 2002 - 22:53 #1
Gennemsigtig baggrund er nemt nok, men resten ...

TForm har to properties, du skal sætte : TransparentColor (True) og TransparentColorValue (f.eks. clMaroon - den er grim og bliver sjældent brugt).

Din TEdit skal så også have dens property Color sat til clMaroon, og så er den gennemsigtig.
Avatar billede hermandsen Juniormester
09. december 2002 - 22:56 #2
Du kunne eventuelt starte med det her:

procedure PaintEdit(var Edit: TEdit);
var
  Left, Width: Integer;
  Rgn: TRect;
  Canvas : TControlCanvas;
begin
  Canvas := TControlCanvas.Create;
  try
    Canvas.Control := Edit;
    Rgn := Edit.ClientRect;
    Canvas.FillRect(Rgn);
    Width := Canvas.TextWidth(Edit.Text);
    Left := Rgn.Right - Width - 1;
    Canvas.BrushCopy(Rgn, Form1.Image1.Picture.Bitmap, Rgn, clWhite);
    Canvas.Brush.Style := bsClear;
    Canvas.TextRect(Rgn, Left, 0, Edit.Text);
  finally
    Canvas.Free;
  end ;
end;
Avatar billede hermandsen Juniormester
09. december 2002 - 22:59 #3
Her er lidt mere...
Sæt BorderStyle til bsNone, og så kan du tegne så tosset du vil! :)

En lille test:

  Canvas.Pen.Color := clGreen;
  Canvas.MoveTo(0,0);
  Canvas.LineTo(Edit.Width, 0);

Det må vist være svar på 1 og 3!
Avatar billede hermandsen Juniormester
09. december 2002 - 23:03 #4
Hov forresten... Du kan godt fjerne
  Left := Rgn.Right - Width - 1;
og erstatte
  Canvas.TextRect(Rgn, Left, 0, Edit.Text);
med
  Canvas.TextRect(Rgn, 0, 0, Edit.Text);

Det var noget fra et tidligere eksempel om at højrestille teksten, så har du også lært det! ;)
Avatar billede mysitesolution Nybegynder
10. december 2002 - 07:35 #5
kigger lige på det efter skole...

slowaters -> Jeg vil have en gennemsigtig baggrund i edit boxen, så man kan se formen
Avatar billede hermandsen Juniormester
10. december 2002 - 07:53 #6
>>mysitesolution
Alternativt kunne du jo sætte din Edit's color til den samme som formen! :)

Skal du gøre det i min procedure, så er det bare:

Canvas.Brush.Color := clSilver;
Canvas.Pen.Color := clSilver; //Jeg er ikke 100% sikker på at denne skal bruges, men jeg er også lige stået op, og Delphi er ikke startet endnu! ;)
Canvas.Rectangle(Rgn);

//hermandsen
Avatar billede mysitesolution Nybegynder
10. december 2002 - 14:54 #7
så er jeg kommet hjem...

nej det kan jeg ikke fordi formen måske er et billede
Avatar billede mysitesolution Nybegynder
10. december 2002 - 15:03 #8
hermandseb -> Vil du ikke lave dine exsempler i et project og så ligge det op?
Avatar billede hermandsen Juniormester
10. december 2002 - 15:21 #9
Sådan! :)
Lavede den lige lidt pænere! ;)
http://hermandsen.adsl.dk/tegneedit.zip
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