Autor Beitrag
noreux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Do 25.10.07 22:33 
Hallo,
Habe hier ein kleines Problem an dem ich nicht weiterkomme, für jemand mit Ahnung aber sicher ein leichtes ist. Habe bisher noch nie eine eigene Prozedur erstellt, jetzt ist es aber nötig. ich muss für 30 verschiedene buttons den selben code ausführen, alle unterscheiden sich nur an einem punkt den ich als variable in einem befehl mitgeben will. meine prozedur sieht bisher ungefähr so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure speedchange(newspeed: integer);
var
tempname: string;
begin
tempname:=StringGrid1.Cells[0,Stringgrid1.Row];
if tempname='TEST' then showmessage(IntToStr(newspeed));
end;


Aufrufen will ich das ganze so:

ausblenden Delphi-Quelltext
1:
speedchange(5);					



und ausgeben sollte er in dem Beispiel ne Messagebox mit ner 5 drin.

die funktion soll also kurz schauen ob im ersten feld in der markierten Reihe des Stringgrids TEST steht, wenn ja soll es die mitgegebene Variable auswerfen.

Wenn ich kompilieren will sagt er Undefinierter Bezeichner: 'StringGrid1'. Kann mir nicht erklären wieso? Jemand n Tip?
gruß
Noreux

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Do 25.10.2007 um 22:52


Zuletzt bearbeitet von noreux am Do 25.10.07 22:35, insgesamt 1-mal bearbeitet
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 25.10.07 22:35 
Mache aus der freien Prozedur einen Methode des Formulars:
ausblenden Delphi-Quelltext
1:
procedure TFormx.speedchange(newspeed: integer);					

_________________
Markus Kinzler.
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Do 25.10.07 22:45 
Du kannst auf Member einer Klasse nur direkt zugreifen wenn deine Methode auch eine Methode der Klasse ist. Ansonsten musst du aus deiner Methode entweder eine Klassenmethode machen wie mkinzler das schon vorgeschlagen hat. Oder aber du musst angeben wo sich das Stringgrid befindet. In diesem Falle als zu welcher Klasse es gehört. Also Form1.StringGrid würde wieder gehen.

Ich würde bei so etwas aber immer zu einer Klassenmethode raten. Aber ich denke den anderen Fall wirst du irgendwann auch mal bekommen. Denn diese Sichtbar ist generell überall wichtig.

PS: Wenn du im Delphi oben in der Klasse deine Methode eingetragen hast und der Editiercursor drauf steht drück mal STRG + UMSCHALT + C. ;)

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
noreux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Do 25.10.07 23:39 
cool danke, funktioniert! Eigentlich auch logisch wenn ichs jetzt seh..