AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zur Laufzeit erstellte Komponente benutzen?
Thema durchsuchen
Ansicht
Themen-Optionen

Zur Laufzeit erstellte Komponente benutzen?

Ein Thema von draGo · begonnen am 2. Sep 2006 · letzter Beitrag vom 3. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
draGo

Registriert seit: 4. Apr 2006
44 Beiträge
 
Delphi 7 Personal
 
#1

Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 22:46
Nabend DP,

Forensuche hat mir leider nicht geholfen...

ich habe mit
Delphi-Quellcode:
var Tab: TTabsheet;
    Memo: TMemo;
begin
 Tab := TTabsheet.Create(Form1.PageControl1);
 tab.Caption := 'Neues Dokument';
 tab.PageControl := Pagecontrol1;

 memo := Tmemo.Create(tab);
 memo.Parent := tab;
 memo.Align := alclient;
end;
Ein neues Tab (während der Laufzeit) in meinem PageControl erstellt, welches ein Memo enthält...
Wenn ich jetzt in meinem Menü z.b "Kopieren" klicke möchte ich den makierten Text im Memo, welches auf dem aktiven Tab ist kopieren... Doch wie spreche ich das Memofeld an wenn ich z.b. 5 Tabs habe? Ich habe ja keinen bestimmten namen mit dem ich einfach
Memo1.CopyToClipboard benutzen kann

Ich hoffe ihr habt meine etwas komische Erklärung jetzt verstanden

danke schonmal,
draGo
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#2

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 22:49
leg die tab variable in das public der form und sprich es dann einfach über den namen an.
  Mit Zitat antworten Zitat
draGo

Registriert seit: 4. Apr 2006
44 Beiträge
 
Delphi 7 Personal
 
#3

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 22:53
Hi fwsp,

ähm..Bahnhof

Du meinst ich soll die TabVariable ins Public legen... also:

Delphi-Quellcode:
  public
    { Public declarations }
   Tab: TTabsheet;
Jedoch kann ich dann trotzdem das Memo nicht über Tab.Memo ansprechen
Hab ich dich falsch verstanden oder bin ich zu blöd?

mfg
draGo
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#4

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 23:10
leg das memo auch ins public und dann kannst du es ganz normal ansprechen.
//Edit
sind doch beides elemente der form.
  Mit Zitat antworten Zitat
draGo

Registriert seit: 4. Apr 2006
44 Beiträge
 
Delphi 7 Personal
 
#5

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 23:16
Hi fwsp,

nein das geht nicht ^^
Denn durch den obigen Code wird das Memo ja erst erstellt sobald das neue Tab erstellt wird...
Somit kann ich es ja nicht vor seiner Existenz ansprechen.

mfg
draGo
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 23:22
Du weist dem Memo via Memo.Name einen Namen zu und kanst dann via Delphi-Referenz durchsuchenFindComponent darauf zugreifen

  Mit Zitat antworten Zitat
draGo

Registriert seit: 4. Apr 2006
44 Beiträge
 
Delphi 7 Personal
 
#7

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 23:34
Hm...

also mit
Delphi-Quellcode:
Finden := FindComponent('test');
//bzw:
Finden := FindComponent('test') as TMemo;
kann ich nicht auf Finden.CopyToClipboard zugreifen...
Langsam zweifel ich an meinem Gedächtnis

Außerdem: Wenn ich 5 Tabs habe (und somit 5 Memos), wie kann ich denen alle gewisse Namen zuweisen mit denen ich auf sie zugreife?
Schließlich kann ich ja nicht immer den selben Namen verwenden
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#8

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 23:37
Delphi-Quellcode:
with FindComponent('test') as TMemo do begin
  CopyToClipboard;
end;
sollte eigentlich gehen.

Zum 2. Problem: du erstellst die Memos in einer Schleife und beziehst deine Schleifenvariable i in den Namen ein - schon hast du eindeutige Namen die du verwenden kannst!

  Mit Zitat antworten Zitat
draGo

Registriert seit: 4. Apr 2006
44 Beiträge
 
Delphi 7 Personal
 
#9

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 23:43
Hi meflin,

Delphi-Quellcode:
with FindComponent('test') as Tmemo do
CopyToClipboard;
macht keinen Ärger beim kompilieren, ruft jedoch folgenden Fehler aus sobald man kopieren drückt (Anhang)

Deiner Lösung zum zweiten Problem widme ich mich gleich ^^
Miniaturansicht angehängter Grafiken
error_338.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#10

Re: Zur Laufzeit erstellte Komponente benutzen?

  Alt 2. Sep 2006, 23:49
Frage: was soll
CopyToClipboard; eigentlich sein? Mein Delphi kennt das irgendwie nicht

Noch ne ösung zu deinem 2. Problem: ein (public) array of TMemo verwenden! Damit könntest du dir dann auch FindComponent sparen...

  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 04:44 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