Entwickler-Ecke
Sonstiges (Delphi) - transparentes edit feld
hibbert - Fr 08.11.02 15:02
Titel: transparentes edit feld
hallo,
jetzt weiß ich endlich, wie ich eine form transparentstelle.
siehe hier [
http://www.auq.de/viewtopic.php?p=18960#18960]
doch wie sieht es bei den edit feldern aus?
es soll alles transparent sein, außer die schrift !! ( also, der rahmen und der hintergrund).
mfg hibbert
Moritz M. - Sa 09.11.02 15:46
Die Frage wurde hier schon öfters gestellt. benutz mal die Suchfunktion, und du wirst herausfinden, das das bis jetzt keiner geschafft hat.
hibbert - Sa 09.11.02 16:24
udn wie siehts mit einem memo-feld aus? funzt das?
wenn ja, wie kann ich das memofeld so beschränken, dass man nur etwas in die 1. zeile schreiben kann?
mfg hibbert
Moritz M. - Sa 09.11.02 16:27
Wurde auch schon diskutiert, sogar beides in den letzen Tagen. Geht weder beim Edit, noch beim Memo oder RichEdit. Leider.
Umständlich wäre es, einen kasten aus linien zu bauen, darein ein onclick even und in ein label schreiben.
Ist aber warscheinlich zu umständlich unt horizontales scrollen müsste man proggen. Aber vielleicht gibts dazu ne Komponente, warscheinlich aber eher nicht. Kannst dich ja mal umhören, ob irgendwer ne kompo kennt.
Anonymous - Sa 09.11.02 21:10
Also bei dem transparentem Edit kann ich dir auch nicht helfen, aber ich hab ein editierbares Label. Und Label können transparent geschaltet werden.
Hier ein kleines Beispiel. Du brauchst ein leeres Projekt und
einige Labels drauf. Dann doppelt auf das Formular klicken damit OnCreate erstellt wird. Dann einfach dieses Beispiel ab Private einfügen.
Editierbare Labels:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| private { Private-Deklarationen } procedure LabelClick(Sender: TObject); procedure EditExit(Sender: TObject); public { Public-Deklarationen } end;
var Form1: TForm1; Edit: TEdit;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); var Comp: TComponent; i: Integer; begin ShowMessage( 'Bei allen Labels muß bei OnClick LabelClick stehen.' + ^j + 'Hier im Beispiel wird das automatisch zugewiesen.'); for i := 0 to ComponentCount - 1 do begin Comp := Components[I]; if (Comp is TLabel) then with (Comp as TLabel) do begin AutoSize := False; Width := 121; Height := 21; Layout := tlCenter; OnClick := LabelClick; end; end; end;
procedure TForm1.LabelClick(Sender: TObject); begin if Sender is TLabel then begin Edit := TEdit.Create(Self); with Edit do begin Parent := (Sender as TLabel).Parent ; Name:= '_' + (Sender as TLabel).Name; BoundsRect := (Sender as TLabel).BoundsRect; Text:= (Sender as TLabel).Caption; SetFocus; OnExit := EditExit; end; end; end;
procedure TForm1.EditExit(Sender: TObject); begin if Sender is TEdit then if (Sender as TEdit).Name[1] = '_' then begin (FindComponent(Copy((Sender as TEdit).Name, 2, 64)) as TLabel).Caption := (Sender as TEdit).Text; (Sender as TEdit).Free; end; end; {Popov} |
Ganz wichtig ist, daß deine Labels bei AutoSize, Width, Height, Layout und OnClick die gleichen Eigenschaften haben wie hier im Beispiel in FormCreate. Ansonsten brauchst du das was ich in FormCreate geschrieben habe nicht. Die Routine in FormCreate hab ich nur deshalb geschrieben, damit man die Labels hier im Beispiel nicht von Hand einstellen muß.
Später in deinem Programm brauchst du nur die LabelClick und EditExit Prozeduren. Die Labels, die editierbar sein sollen, stellst du bei OnClick auf LabelClick. Den Rest erledigen die Prozeduren. Und vergiß nicht AutoSize, Width, Height und Layout der Label die editierbar sein sollen auf die Werte zu stellen. Wobei Width natürlich etwas länger sein darf.
Moritz M. - So 10.11.02 11:15
Gute Idee. Ist halt ein kleiner "Umweg", aber mann kanns nehmen, denke ich.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!