AGB  ·  Datenschutz  ·  Impressum  







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

Komponenten und Parent

Ein Thema von Privateer3000 · begonnen am 14. Aug 2003 · letzter Beitrag vom 14. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Komponenten und Parent

  Alt 14. Aug 2003, 18:58
Hiho,

ich versuche zur Laufzeit erstellte TEdit, deren Inhalte (.Text)
in eine Ini zu speichern.
Das ganze findet per FindComponent statt.
Die Ini wird auch geschrieben, aber an der Stelle wo o.g. String stehen müsste, ist alllerdings leer.
Ich habe die Vermutung das das mit den zugeteilten "Parents " zu tun hat.
Denn bei der Edit.Create wird jedem TEdit eine GroupBox zugeteilt.
Siehe unten Quelltext:
(der Integer 'click' ist aktive PageControl.Index)
Delphi-Quellcode:
var
Ini: TIniFile;
aa: Integer;
cc: TEdit;
begin
Ini:=TIniFile.Create(ExtractFilePath(paramstr(0))+'posten.ini');
try
for aa:=0 to 29 do begin
cc:=FindComponent('bst'+IntToStr(click)+'name'+IntToStr(aa)) as TEdit;
Ini.WriteString('Posten1',IntToStr(aa),cc.Text);
end;
finally
Ini.Free;
ShowMessage('Erfolgreich gespeichert');
end;
end;
Warum ist der cc.Text leer?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Aya
Aya

Registriert seit: 24. Jul 2003
Ort: Kassel
138 Beiträge
 
Delphi 6 Professional
 
#2

Re: Komponenten und Parent

  Alt 14. Aug 2003, 19:25
Hi,

ich nehme mal an das FindComponent die Komponente nicht findet. Vergibst du denn beim erstelen des Edits auch einen Namen für das Edit??

Au'revoir,
Aya~

PS: Du kannst diese 2 Zeilen:
Delphi-Quellcode:
cc:=FindComponent('bst'+IntToStr(click)+'name'+IntToStr(aa)) as TEdit;
Ini.WriteString('Posten1',IntToStr(aa),cc.Text);
auch so schreiben:
ini.WriteString('Posten1',IntToStr(aa),TEdit(FindComponent('bst'+IntToStr(click)+'name'+IntToStr(aa))).Text); finde ich persönlich schöner.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Komponenten und Parent

  Alt 14. Aug 2003, 19:32
ja klar, hier die Erstellung:
Delphi-Quellcode:
begin
  for x := 0 to 29 do begin
    if x mod 10 = 0 then y := 40
    else inc (y, 40);
    myedit := TEdit.Create(nil);
    myedit.Parent := GroupBox1;
    myedit.Left := x div 10 * 200;
    myedit.Top := y;
    myedit.Height := 20;
    myedit.Width := 80;
    myedit.Name := 'bst1name'+InttoStr(x);
    myedit.Text := 'bst1name'+InttoStr(x);
  end;
end;
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Aya
Aya

Registriert seit: 24. Jul 2003
Ort: Kassel
138 Beiträge
 
Delphi 6 Professional
 
#4

Re: Komponenten und Parent

  Alt 14. Aug 2003, 19:36
Hi,

mh... halt halt... *g*
Da is nen fehler

Du erstellst jedesmal ein TEdit 'myedit', ja???
Mach dir lieber einen Array of TEdit und mach für jedes Edit welches zu erstellst einen neuen Eintrag in diesem Array.

und anstelle FindComponent suchst du dann deinen Array nach dem entsprechenden Edit durch.

So verhinderst du auch ein Speicherleck welches du sonst bekommst.

Au'revoir,
Aya~
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Komponenten und Parent

  Alt 14. Aug 2003, 19:55
Ja, aber das ist doch nicht das Problem, denk ich.
Denn auch mit der bisher verwendeten Methode der Edit-Erstellung funktionert alles bis..ja bis auf das im Thread beschriebene Problem.
Aber warum werden die Komponenten nicht gefunden?
Sie existieren ja reel, hab es mir anzeigen lassen.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Aya
Aya

Registriert seit: 24. Jul 2003
Ort: Kassel
138 Beiträge
 
Delphi 6 Professional
 
#6

Re: Komponenten und Parent

  Alt 14. Aug 2003, 20:02
Hi,

mh.. versuch mal ob es so klappt:
Delphi-Quellcode:
cc:=FindComponent('bst1name'+IntToStr(aa)) as TEdit;
Ini.WriteString('Posten1',IntToStr(aa),cc.Text);
kann mir nämlich ehrlichgesagt nur denken das er bei FindComponent einfach die Komponente nich findet weil du da bei Click irgendne falsche zahl drinhast... *zuckt leicht mit den schultern*

Au'revoir,
Aya~
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Komponenten und Parent

  Alt 14. Aug 2003, 20:10
nein.mit dem Namen hat das nichts zu tun.
Ich glaube Eher weil die Edit mit Parent an die GroupBox gebunden sind.
Ist es möglich bei FindComponent auch das Parent festzulegen?
Ich kann mir vorstellen das sie deswegen nicht gefunden werden. Hab aber keine Ahnung.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Aya
Aya

Registriert seit: 24. Jul 2003
Ort: Kassel
138 Beiträge
 
Delphi 6 Professional
 
#8

Re: Komponenten und Parent

  Alt 14. Aug 2003, 20:12
Ahh... total übersehen

GroupBox1.FindComponent(...)

Au'revoir,
Aya~
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Komponenten und Parent

  Alt 14. Aug 2003, 20:17
Hallo,
in der Hilfe steht
Zitat:
Die Methode FindComponent gibt an, ob der Komponente eine bestimmte Komponente untergeordnet ist.
Deshalb kann Dein Ansatz nicht funktionieren.
Du kannst, da das Formualer der Besitzer aller Komponenten ist auch wenn diese auf Panels o. in Groupboxen stecken, über die Components Eigenschaft iterieren und so die Edits finden.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Komponenten und Parent

  Alt 14. Aug 2003, 20:28
Keine Chance...
cc.Text ist leer.
Was zum Henker ist da los?
Ich hab in einer anderen Unit dasselbe Problem:
Delphi-Quellcode:
var
myEdita,myEditb: String
....
for i:=1 to dianz do begin
myEdita:=(Form1.FindComponent('name'+IntToStr(i))as TEdit).Text;
myEditb:=(Form1.FindComponent('dgeld'+IntToStr(i))as TEdit).Text;
Memo1.Lines.Add(myEdita+' : '+myEditb+'');
end;
Es werden lediglich die (korrekte) Anzahl Doppelpunkte ins Memo geschrieben. myEdita und myEditb sind leer.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:41 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