AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeiger auf Inhalt von TEdit TComboBox

Ein Thema von geskill · begonnen am 13. Dez 2008 · letzter Beitrag vom 13. Dez 2008
Antwort Antwort
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#1

Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 18:36
Gibt es eine Möglichkeit einen Zeiger auf den Inhalt von einem Eingabefeld zu setzten? Sodass ich diesen nutzen kann um an den Inhalt zu kommen.

Delphi-Quellcode:
Edit1.Text := 'Hallo';

Zeiger := Edit1.Text;

Edit1.Text := 'Hi';

ShowMessage(Zeiger); // ==> 'Hi'
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 18:40
Einen Zeiger im Sinne eines Pointers gibt es nicht da der Buffer intern per Api-Funktion abgerufen wird. Aber wenn ich mich nicht irre haben beide Komponenten den gleichen vorfahren so das du über einen Cast auf diesen die Eingeschaft Text abfragen kannst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 19:28
Hmm... schade wollte damit gerade das Typecast"en" vermeiden, denn Memo und Fremdkomponenten kommen noch dazu.
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 19:30
hat das Memo nicht auch als gemeinsamen Vorfahren das TCustomEdit?
Zudem müsstest du die Pointer auf den Text ja auch vorher ermitteln. Entsprechend kannst du auch einfach eine Funktion machen die ein TControl übergeben bekommt und in der Funktion ermittelst du dann was für ein Typ es ist und reagierst entsprechend darauf.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 19:33
Du versuchst, den Sinn der Kapselung zu umgehen. Das kann *nur* mit Tricks funktionieren.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 19:50
Das mit einer Funktion dafür ist klasse danke ;)

Wenn jemand vor dem gleichen Problem steht:
Delphi-Quellcode:
FUNCTION GetContentFromTControl(AControl:TControl):String;
BEGIN
  IF (AControl IS TLabel)
    THEN result := TLabel(AControl).Caption;

  IF (AControl IS TEdit)
    THEN result := TEdit(AControl).Text;

  IF (AControl IS TComboBox)
    THEN result := TComboBox(AControl).Text;

  IF (AControl IS TMemo)
    THEN result := TMemo(AControl).Lines.Text;


  {IF (AControl IS TRzButtonEdit)
    THEN result := TRzButtonEdit(AControl).Text;}

END;
Aufruf:
ShowMessage(GetContentFromTControl(Edit1));
Sebastian
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 20:01
Das das bei anderen Komponenten, insbesondere von Drittanbietern nicht funktioniert, sollte klar sein.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 20:15
Man kann auch über RTTI ein String-Property mit einem bestimmten Namen auslesen.
Das funktioniert dann für alle Komponenten.
Ich finde nur der bescheidenen D2007 Hilfe gerade die Funktion nicht.
Aber im Prinzip so:
Delphi-Quellcode:
if IsPublishedProp(control, 'Text') then
   Result := GetStrProp(control,'Text')
else if IsPublishedProp(control, 'Lines') then
   Result := (GetObjProp(control, 'TStrings') as TStrings).Text;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Zeiger auf Inhalt von TEdit TComboBox

  Alt 13. Dez 2008, 20:45
Zitat von alzaimar:
Das das bei anderen Komponenten, insbesondere von Drittanbietern nicht funktioniert, sollte klar sein.
Bezog sich das auf den zuletzte geposteten Quelltext vom Fragesteller?

@geskill: Wenn du mit "else" arbeitest werden die restlichen Bedingungen nicht geprüft sobald eine zutrifft.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz