AGB  ·  Datenschutz  ·  Impressum  







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

Create(Self) undefiniert?

Ein Thema von Privateer3000 · begonnen am 12. Apr 2008 · letzter Beitrag vom 13. Apr 2008
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

Create(Self) undefiniert?

  Alt 12. Apr 2008, 22:14
Hallo mit folgender Procedur sollen Buttons auf ein Panel
gezeichnet werden. Die PRoc ist aber keiner Komponente
zugeordnet, sonder wird wie eine funktion aufgerufen.
Nun meldet der Compiler das "Self undefiniert" sei?
Warum?
Eine Nebenfrage, wenn die Buttons neugezeichnet werden sollen
müssen die "alten" gelöscht werden. Wie wird dies
bewerkstelligt?

Delphi-Quellcode:
procedure buttonsetzen(setzq:TADOQuery);
var j,spalte,zeile: Integer; aBut:TXiButton;
begin
setzq.Close; setzq.SQL.Clear;
setzq.SQL.Add('SELECT * FROM buttons ORDER BY posit');
setzq.Open; setzq.First;
j:=0;
while not setzq.Eof do begin
Spalte := j mod 6;
  Zeile := j div 6;
  aBut:=TXiButton.Create(Self);
  aBut.Parent:=panelen.pans.FindComponent(setzq.fieldbyname('eben_name').AsString)as TPanel;
  aBut.Visible:=True;
  aBut.Left:=Spalte*115; aBut.Top:=Zeile*45;
  aBut.Width:=113;
  aBut.Height:=43;
  aBut.ShowHint:=True;
  aBut.Font.Size:=setzq.fieldbyname('fogr').AsInteger;
  //aBut.Font.Style:=[fsbold];
  aBut.Hint:=setzq.fieldbyname('anzeige').asString;
  aBut.ColorScheme:=GetCoSche(setzq.fieldbyname('farbe').AsString);
  aBut.Caption:=setzq.fieldbyname('anzeige').AsString;
  aBut.Tag:=setzq.FieldByName('wert').AsInteger;
  //aBut.OnClick:=p1_1click;
   setzq.Next;
  inc(j);
end;
end;
Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Create(Self) undefiniert?

  Alt 12. Apr 2008, 22:16
Ausserhalb einer Klasse gibt es natürlich kein Self
Markus Kinzler
  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: Create(Self) undefiniert?

  Alt 12. Apr 2008, 22:58
Danke für die Antwort.
Was aber dann? Name des Form auf dem
die Buttons kreiert werden?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Create(Self) undefiniert?

  Alt 12. Apr 2008, 23:01
Also entweder Nil, das Formular oder die Prozedur zur Methode machen (am Besten)
Markus Kinzler
  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: Create(Self) undefiniert?

  Alt 12. Apr 2008, 23:11
Welche Methode eignet sich am besten?
Wie im 2. Teil der Frage gesagt:
die buttons müssen zwangsläufig während der Laufzeit
auch mal neu gezeichnet werden.
Wie zerstört man die Buttons am Besten, bevor
sie mit der gleichen procedure (wie oben) neu
gezeichnet werden?
Wie müsste obiger Procedure aussehen?

Danke für die Antworten
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Create(Self) undefiniert?

  Alt 12. Apr 2008, 23:14
Zitat:
Welche Methode eignet sich am besten?
Wandle die Prozedur einfach in eine Methode um.
Zitat:
die buttons müssen zwangsläufig während der Laufzeit
auch mal neu gezeichnet werden.
Wie zerstört man die Buttons am Besten, bevor
sie mit der gleichen procedure (wie oben) neu
gezeichnet werden?
Warum willst du diese zerstötrn, um sie neuzuzeichnen?
Markus Kinzler
  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: Create(Self) undefiniert?

  Alt 12. Apr 2008, 23:31
Was meinst du mit umwandeln?
Was und wie?

Da die Positionen der Buttons sich ändern können
müssen aller neu gezeichnete werden.
Die Buttons haben als parent ein Panel,
kann das vielleicht eine Rolle spielen?
Fakt ist, dass mit obiger Procedure nicht
nur Buttons neu, sondern auch wieder gezeichnet
werdem sollen, nämlich dann wenn eine Änderung
in der Anzahl oder Position der Button vorgenommen
wurde.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Create(Self) undefiniert?

  Alt 12. Apr 2008, 23:32
Verwalte die Buttons doch in einem Array, dann musst du bei Änderungen nur auf die einzelnen Buttons zugreifen und deren Position ändern.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Create(Self) undefiniert?

  Alt 12. Apr 2008, 23:39
Zitat:
Was meinst du mit umwandeln?
procedure TForm1.buttonsetzen(setzq:TADOQuery);
Zitat:
Da die Positionen der Buttons sich ändern können
müssen aller neu gezeichnete werden.
Dann verschiebst man diese und braucht sie nicht Neuerzeugen.
Ich würde das Erzeugen und Verschieben trennen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Create(Self) undefiniert?

  Alt 13. Apr 2008, 00:41
Zitat von Fussball-Robby:
Verwalte die Buttons doch in einem Array, dann musst du bei Änderungen nur auf die einzelnen Buttons zugreifen und deren Position ändern.
Eine TObjectList ist dafür wesentlich komfortabler.
Es ist zu wahr um schön zu sein...
  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 09:32 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