Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.181 Beiträge
 
Delphi 12 Athens
 
#8

AW: Button auf verschobener Paintbox erstellen

  Alt 16. Mär 2012, 11:46
Delphi-Quellcode:
for i := 0 to MyPaintbox.Parent.ComponentCount-1 do
begin
  if MyPaintbox.Parent.Components[i].ToString = 'TPaintBoxthen
    tmpZeichenflaeche := (MyPaintbox.Parent.Components[i] as TPaintBox);
end;

if Assigned(tmpZeichenflaeche) then
begin
  ...
Ich hoffe du hattest tmpZeichenflaeche auch ordentlich initialisiert?
Und was wäre, wenn es mehrere TPaintBoxen gäbe?

Ich würde dir auch davon abraten ToString für die Typenprüfung zu verwenden.
Um an den Namen der Klasse zu kommen, verwendet man natürlich ClassName, denn in ToString würde z.B. eine "ordentliche" Zahlen- oder Text-Klasse natürlich ihren Wert zurückgeben.

Delphi-Quellcode:
// also so
if MyPaintbox.Parent.Components[i].ClassName = 'TPaintBoxthen

// in Wirklichkeit wolltest du allerdings den Typ prüfen (nur genau TPaintBox)
if MyPaintbox.Parent.Components[i].ClassType = TPaintBox then

// aber eigentlich machen es alle so (TPaintBox und Nachfahren)
if MyPaintbox.Parent.Components[i] is TPaintBox then



// Und wenn jetzt noch jemand auf folgende Idee kommt, dann ist demjenigen eigentlich eh nicht mehr zu helfen :stupid:
// PS: Genau das hast du aber, im Prinzip gemacht, (wie schon erwähnt wurde)
// allerdings mit dem Problem, daß bei mehrereren PaintBox ausversehn die Falsche genommen werden könnte.
if MyPaintbox.Parent.Components[i] = MyPaintbox then
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (16. Mär 2012 um 11:53 Uhr)
  Mit Zitat antworten Zitat