![]() |
TLabel in TEdit "konvertieren"?
Hallo zusammen.
Ich mach gerade eine kleine Benutzerverwaltung, in der ich die Daten(Vorname,Nachname usw.) in Labels anzeigen lasse. Wenn ich jetzt auf "Neuer Benutzer" oder "Benutzer bearbeiten" klicke, muss ich jetzt die Daten eingeben, da das bei Labels nich so toll funzt, brauch ich also TEdits. Ich könnt jetzt ganz einfach hingehen und Edits auf die Form setzen und mit Visible rumspielen, allerdings ging mir gerade die Frage duch den Kopf, ob man nicht eine Komponente von TLabel in TEdit "konvertieren" kann. Weis jemand ob/wie das geht? Mfg Angel4585 :angel: |
Re: TLabel in TEdit "konvertieren"?
Zum Anzeigen von Texten, die niht bearbeitet werden sollen einfach ReadOnly des Edits auf true stellen.
Florian |
Re: TLabel in TEdit "konvertieren"?
also das problem verstehe ich jetzt nicht ganz.
edits sind zum bearbeiten, labels zum anzeigen. wenn du nicht willst, dass man im edit was ändert, würde ich es auf readonly = true setzen. da du die daten ja irgendwo hinterlegst, kannst du ja auch ein Edit1.Text := Label1.Caption verwenden. Oder versteh ich da was falsch? edit: leicht zu spät, kein kasten. |
Re: TLabel in TEdit "konvertieren"?
Sorry, vielleicht war die Fragestellung falsch. Ich möcht keine Lösung für mein spezielles Problem, ich möcht ja nur wissen ob das theoretisch geht.
|
Re: TLabel in TEdit "konvertieren"?
wozu?
und zur frage: per befehl sicherlich nicht. du könntest dir einen zwitter basteln, aber da kommen wir wieder zu "wozu?". |
Re: TLabel in TEdit "konvertieren"?
Mit den Einstellungen von Bevels, Border und Color vom TEdit kannst dus aussehen lassen wie ein Label. Im Edit-Mode dann die Einstellung wieder auf die Standardwerte setzen. Aber ob das so dolles GUI-Design ist...
|
Re: TLabel in TEdit "konvertieren"?
Naja is eigentlich au egal. Habs jetzt mit Edits gemacht.
Danke trotzdem. |
Re: TLabel in TEdit "konvertieren"?
Beim Edit BorderStyle auf bsNone setzen und Color auf ClBtnFace => dann sieht es aus wie ein Label.
Gruß, ManuMF |
Re: TLabel in TEdit "konvertieren"?
Oder man könnte sicherlich auch zur Laufzeit ein TEdit erstellen und den Text aus der Caption des Labels erstellen.
Delphi-Quellcode:
Das hab ich jetzt mal aus dem Kopf zusammengeschrieben. :roll: Könnte funktionieren. Einfach mal ausprobieren. Aber so würde ich es machen, weil es mir viel zu viel arbeite wäre, ständig irgendwelche Edits mit anderem Border und anderer Farbe zu versehen.
procedure TForm1.Bearbeiten;
var ed: TEdit; begin ed:=TEdit.create(self); with ed do parent:=Form1; //kann natürlich auch ein Panel oder sonstwas sein. text:=label1.caption; //holen wir uns mal den Text ed.top:=label1.top; ed.left:=label1.left; //Position und Länge des TEdit festlegen ed.width:=150; OnExit:=schreibelabel; //Eine Ereignisprozedure wäre auch nicht schlecht ;-) tag:=label1.tag; //So können wir vielleicht user Label wiederfinden bringtofront; //Es soll natürlich über dem Label liegen selectall; //Bei bedarf den gesamten Inhalt markieren setfocus; //Und natürlich auch den aktuellen Focus geben end; end; procedure TForm1.schreibelabel(Sender: TObject); var i: Integer; begin for i:=0 to components.count-1 do //Einfach mal alle Komponente abgrasen if components[i] is TLabel then //und wenn's ein TLabel ist if (components[i] as TLabel).Tag=(Sender as TEdit).Tag then begin //Und wir über TAG unser Label finden (components[i] as TLabel).Caption:=ed.text; //Den neuen Wert zurückschreiben ed.free; //und das TEdit wieder freigeben end; end; Und wenn man sich darüber noch ein bischen Gedanken macht, dann kann man (zumindest für sich als Programmierer) noch mehr Arbeit sparen, für den Fall, das die Label's auf der Form, die auf diese Weise bearbeitet werden sollen, noch nicht feststehen und im Laufe der zeit welche dazu kommen. Hoffe das hilft dir weiter ;-) Und, sollten noch fehler drin sein, bitte um Nachsicht...das hab ich mir grad aus meinem kleinen Kopf gequetscht :mrgreen: |
Re: TLabel in TEdit "konvertieren"?
@ CaptNemmo: danke für die Mühe, aber das ist mir dann doch bissl zu umständlich.
@ ManuMF: Wenn ich den Borderstyle auf bsnone setze verschiebt sich aber der Text etwas nch oben, was ziemlich besch... aussieht. Kann man das irgendwie beheben? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz