Autor Beitrag
Fussel9
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23

Win 7
Delphi
BeitragVerfasst: Di 02.02.10 21:20 
Ihr kennt bestimmt die Standart proceduren

bei denen man einen Parameter übergeben kann, aber nicht muss

kann mir jemand erklären wie ich soetwas selbst machen kann?
Will damit folgende Procedure ausstatten, damit wenn ein parameter übergeben wird die procedure mit dem parameter ausgeführt wird und falls kein parameter übergeben wird das except greift....
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TFormMain.updateview(pArrayHand: Array of TImage);
var    i: Integer;
begin
try
Hand.toFirst;
  while not (Hand.GibAktuelles=Hand.GibLetztes) do
    begin
      pArrayHand[i].Picture.LoadFromFile(Hand.GibAktuelles.GibInhalt.GibPfad);
      pArrayHand[i].Visible:=TRUE;
      Hand.Next;
    end;
except
  updateview([Card1,Card2,Card3,Card4,Card5,Card6,Card7,Card8,Card9,Card10,Card11,
        Card12,Card13,Card14,Card15,Card16,Card17,Card18,Card19,Card20,OpCa1,
        OpCa2,OpCa3,OpCa4,OpCa5,OpCa6,OpCa7,OpCa8,OpCa9,OpCa10,OpCa11,OpCa12,
        OpCa13,OpCa14,OpCa15,OpCa16,OpCa17,OpCa18,OpCa19,OpCa20,OpCa21,OpCa22,
        OpCa23,OpCa24,OpCa25,OpCa26,OpCa27,OpCa28,OpCa29,OpCa210,OpCa211,
        OpCa212,OpCa213,OpCa214,OpCa215,OpCa216,OpCa217,OpCa218,OpCa219,
        OpCa220]);
end;
end;
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 02.02.10 21:22 
in dem Du abfragst auf <> nil z.B
Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Fussel9 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23

Win 7
Delphi
BeitragVerfasst: Di 02.02.10 21:34 
...nur leider ist das Array nicht standart mäßig nil... da das Array ja nur als Parameter existiert und ich dafür keine globale variable verwenden möchte ist der wert unbestimmt und könnte theoretisch alles enthalten, daher versuche ich ja auch eine try..except

aber beim aufruf ohne parameter gibt delphi trotzdem ... nicht genügend wirkliche parameter ... aus
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 02.02.10 21:47 
ist doch normal.
Jede Procedure die Parameter verlangt, muss auch welche erhalten.
Bevor Du also die Procedure aufrufst, fragst Du die Variablen ab, die Du zur Übergabe vorbereited hast.
Mit welcher Möglichkeit, liegt an den Variablen die Du übergibst.
Ein Array kann keine Werte haben (leer sein), vollgepackt bis zum Anschlag, oder nur ein paar Einträge.
Danach richted sich Deine Abfrage. Definitiv kannst nur Du es wissen.

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1338
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Di 02.02.10 21:48 
Eine ganz einfache Lösung gibt es dafür nicht. Aber es gibt eine:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure updateview; overload;
procedure TFormMain.updateview(pArrayHand: Array of TImage); overload;

procedure TFormMain.updateview;
begin
  // aufruf einer aktion wenn keine parameter übergeben werden
end;

procedure TFormMain.updateview(pArrayHand: Array of TImage);
begin
  // aufruf der aktion mit parameter
end;


Nebenbei: Was macht du da mit LoadFromFile? Rufst du das in deinem Programm einmal oder andauernd auf? Wenn andauernd, ist das wenig sinnvoll dauernd alle möglichen Bilder von der Platte neu zu laden. Die solltest du lieber aus einem Bitmap immer wieder kopieren wenn es unbedingt sein muss.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Di 02.02.10 21:53 
es geht auch so:
ausblenden Delphi-Quelltext
1:
procedure foo(bar:Integer=5);					
Fussel9 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23

Win 7
Delphi
BeitragVerfasst: Di 02.02.10 21:54 
@SinSpin öhm.. ja das mache ich so zu sagen andauern ... ist aber in diesem Fall gar nicht schlimm, auch wenn es sich um insgesamt 61 Imagekomponenten handelt die jede runde neu gefüllt werden müssen ;)

die jpg dateien sind so klein das es quasi keine zwei Sekunden dauert die Bilder zu laden, außerdem basiert meine Liste so zu sagen darauf das jedem element ein pfad zugewiesen bekommt... wenn deine bedenken also nur laufzeit gerichtet waren... mach dir mal keine sorgen ^^

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

...hm... leider gehts so nicht... da sagt delphi mir : Parameter dieses Typs dürfen keine Standartwerte haben, aber nach genau sowas suche ich...
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 02.02.10 21:58 
mal ne Frage, was machst Du mit der Variablen i, ist die immer NULL?
Rufst Du die Procedure von aussen einmal auf, und dann von innen??
Wo hast Du da den abbruch!?

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Fussel9 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23

Win 7
Delphi
BeitragVerfasst: Di 02.02.10 22:01 
oh, thx hätt ich jetz übersehn.. is natürlich für ne schleife ^^
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 02.02.10 22:22 
user profile iconFussel9
Zitat:
...die jpg dateien sind so klein das es quasi keine zwei Sekunden dauert die Bilder zu laden,....

Das ist jetzt aber nicht Dein ernst :x

Dies ist so unsauber wie Deine If abfragen vom letzten mal!
Du solltest mal überprüfen, ob Du was ordenliches codest, oder nur mit Versuch und Irrtum arbeitest,
egal ob effektiv und übersichtlich.
Haubtsache es funct. :twisted:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Fussel9 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23

Win 7
Delphi
BeitragVerfasst: Di 02.02.10 22:33 
ok lieber Alf ^^
dann erklär mir doch mal bitte wieso ich das nicht so machen sollte ;)

aber mal im ernst: Was ich gerade programmiere ist für eine Facharbeit und geht durchaus über das in der Schule gelernte hinaus und daher arbeite ich mit unter wirklich nach dem Try and Error verfahren :D
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 02.02.10 22:43 
Ok,
Dann bekommst Du von mir...
Programm Idee: eine 1 :wink:
Umsetzung: muss man warten :gaehn:
Code: 6- :motz:


:mrgreen: :mrgreen: :mrgreen:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!