AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi In Laufzeit erstellte Komponenten nach Prozedur ansprechen
Thema durchsuchen
Ansicht
Themen-Optionen

In Laufzeit erstellte Komponenten nach Prozedur ansprechen

Ein Thema von Hazardos · begonnen am 12. Okt 2003 · letzter Beitrag vom 12. Okt 2003
Antwort Antwort
Hazardos

Registriert seit: 8. Okt 2003
Ort: Alfeld
73 Beiträge
 
#1

In Laufzeit erstellte Komponenten nach Prozedur ansprechen

  Alt 12. Okt 2003, 10:15
Hallo,
ich habe etwa 50 Komponente während der Laufzeit mit einer Schleife erzeugt...
Danach habe ich eine Procedure aufrufen lassen (bspw die OnKlick-procedure).
Darauf wollte ich das Elemetn verändern, bekomme allerdings bei dem Aufruf "self" nur das Huaptformular.
Wer kann mir bei diesem Thema heflen???
  Mit Zitat antworten Zitat
Benutzerbild von nTE
nTE

Registriert seit: 8. Sep 2003
60 Beiträge
 
#2

Re: automatisiert erstellte Komponenten nach Prozedur anspre

  Alt 12. Okt 2003, 10:19
Weise den erstellten Komponenten doch einen Tag zu (per Schleifenvariable z.B.) und dann verwende
if Sender.Tag = 5 then..
als Beispiel.
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#3

Re: In Laufzeit erstellte Komponenten nach Prozedur ansprech

  Alt 12. Okt 2003, 10:32
Self gibt das Objekt zurück, zu dem die Aufgerufene Methode gehört - in deinem Fall also das Hauptformular. Der Parameter Sender verweist auf die aufrufende Komponente.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Hazardos

Registriert seit: 8. Okt 2003
Ort: Alfeld
73 Beiträge
 
#4

Re: In Laufzeit erstellte Komponenten nach Prozedur ansprech

  Alt 12. Okt 2003, 15:36
Das mit Sender.tag hat nicht funktioniert. er sagt, den Bezeichner .. kennt er nicht!
ich stelle hier einfach mal den Code rein, damit Ihr euch vielleicht mal daran zu schaffen machen könnt, wenn ihr Lust habt.

Delphi-Quellcode:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
   labels = array [0..25]of array[0..25] of tlabel;
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);

  private
  procedure onlabelmove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  public
  end;

var Strings : labels;
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.onlabelmove (Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
//Showmessage (Sender.tag);
end;

procedure TForm1.FormCreate(Sender: TObject);
var i,j,k :integer;
begin
j:=0;
k:=0;
while (j<26) do begin
i:=0;
while (i<26) do begin
Strings[i][j] := tlabel.Create(self);
strings[i][j].Parent := self;
strings[i][j].Caption := IntToStr(i+j);
strings[i][j].top := i*strings[i][j].Height;
strings[i][j].left := j*20;
strings[i][j].OnMouseMove := onlabelmove;
strings[i][j].Tag := k;
inc (i);
inc (k);
end;
inc (j);
end;


end;
end.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: In Laufzeit erstellte Komponenten nach Prozedur ansprech

  Alt 12. Okt 2003, 15:41
Moin Hazardos,

probier's mal mit (Sender as TLabel).Tag.

Übrigens finde ich Deine Bezeichnerwahl etwas verwirrend. Wer würde hinter Strings ein array of TLabel vermuten?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Hazardos

Registriert seit: 8. Okt 2003
Ort: Alfeld
73 Beiträge
 
#6

Re: In Laufzeit erstellte Komponenten nach Prozedur ansprech

  Alt 12. Okt 2003, 16:29
Da geb ich dir recht...
War ja auch nur ein flüchtig erstelltes Programm ohne wirklichen Sinn.
Das, was ich wissen möchte, ist für ein anderes Programm notwendig...

Übrigens bedanke ich mich, deine Lösung hat funktioniert!!
Thx
  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 22:50 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