przezroczysty edit

ST
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

Czy wie ktoś może jak programowo zrobić przeżroczystego Edita bez żadnych dodatkowych <ort>komponętów</ort>.

Próbowałem

Edit1.Brush.Style:=bsclear;

ale wtedy tło sie robi białe nie przeźroczyste (Na Formie w taki sposób przeźroczystość działa)

Z góry dzięki za pomoc

AklimX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1218
0

programowo to się raczej nie da, ale zawsze możesz napisać nowy komponent (ja np.znalazłem w necie przezroczyste Memo)

Bełdzio
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 729
0
Kopiuj
Edit1.BorderStyle := bsNone;
Edit1.Color := form1.Color;
ST
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

Bełdzio mając na myśli przeźroczysty myślałem o tym żeby pod Editem był widoczny jakiś obrazek a nie żeby edit był tego samego koloru co forma.

w taki sposób da się zrobić tło dla edita

Edit6.Brush.Bitmap:=Image1.Picture.Bitmap;

ale czy ktoś wie jak można zrobić żeby image na edicie było przeżroczyste i wycentrowane ??

Pomocy!!

Bełdzio
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 729
0
  1. Pobierz z sieci komponent Memo z przeźroczystaścią
  2. Przeanalizuj kod
  3. Przerób na Edita
AklimX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1218
0
  1. Pobierz z sieci komponent Memo z przeźroczystaścią
  2. Przeanalizuj kod
  3. Przerób na Edita

Zapomniałeś dopisać pozdrowienia dla Milki

ST
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

:-/ ja właśnie nie chcĘ pisać ani sciągać zadnych komponentów tylko zrobić to programowo. Jak na formie sie da to zrobić to wydaje mi sie że na Edicie też.

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1164
0

nie pisz inowych, sciągnij tamten i zobacz jak to jest w jego źródle rozwiązane... nikt nie każe Ci z niego korzystać :P

AklimX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1218
0

Nie nie znaczy, że nie możesz później napisać. To ułatwi innym, którzy kiedyś oto zapytają.

Ciekawostka:Jeżeli choci o przezroczyste Memo to klasą bazową jest TForm.

endrique
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
0

Ufff, troche się namęczyłem, ale w SPACJA końcu się udało :) Efekt i styl wykonania nie jest może imponujący, ale zawsze to coś. Oto fragment kodu:

Kopiuj
var
  Form1: TForm1;
  c: TCanvas;
  s: String;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Brush.Bitmap:=Image1.Picture.Bitmap;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case key of
    8: s:=LeftBStr(s,length(s)-1); //tu trzeba obsłużyć pozostałe klawisze, takie jak Enter, Tab, itp. ale mnie sie już tego nie chciało robić. Zrobiłem tylko backspace tak dla testu.
  else
    s:=s+chr(Key);
  end;
  Edit1.Repaint;   // trzeba niestety odmalować 
  c:=TCanvas.Create;
  c.Handle:=GetDC(Edit1.Handle);
  c.Brush.Style:=bsClear;
  c.TextOut(0,0,s);
  c.Free;
end;

Pozdrawiam, mam nadzieje że się przydałem :)

ST
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

Dzięki endrique za kod i za starania [browar]

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0

Tu widzi błąd

Kopiuj
[...]
 8: S := LeftBStr(S, Length(S) - 1);
[...]

[Error] Unit1.pas(39): Undeclared Indentifier 'LeftBStr'

  • Rejestracja: dni
  • Ostatnio: dni
0

pewnie trzeba dodać junita do uses z tą funkcją... ("StrUtils")

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0

EE... nie działa. Znaczy działa tylko nie tak jak powinno.
Kawałek obrazka tam jest, ale pod literami i tak jest białe.
user image

Nie o to chodziło.

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0

Znalazłem inny sposób.
Pobrałem komponent TransEdit i TransMemo.
Pod niego wystarczy wstawić obrazek i już.

// zauważyłęś, że ten wątek ma SZEŚĆ lat? - Ł

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.