Einzelnen Beitrag anzeigen

Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#9

Re: TLabel in TEdit "konvertieren"?

  Alt 22. Nov 2005, 10:03
Oder man könnte sicherlich auch zur Laufzeit ein TEdit erstellen und den Text aus der Caption des Labels erstellen.

Delphi-Quellcode:
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;
Das hab ich jetzt mal aus dem Kopf zusammengeschrieben. 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.
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
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat