for i:=1 to felder do
begin
for j := 1 to felder do
begin
if (i <> ((felder div 2) + 1)) and (j <> ((felder div 2) + 1)) then
begin
try
bilder[i,j].destroy;
except
end;
if bilder[i,j] <> nil then
bilder[i,j]:= nil;
end;
end;
ich bin zwar schon etwas unter Alkoholeinfluss aber ich hoffe es macht alles etwas Sinn
procedure ClearArray(const bilder: TMyImageArray);
var
..felder: Integer;
begin
..felder:= Length(bilder);
..for i:= 1 to felder do begin
....for j:= 1 to felder do begin
......try
........if Assigned(bilder[i,j]) then begin
..........bilder[i,j].destroy;
..........bilder[i,j]:= nil;
........end;
......except
........on e: Exception do begin
..........// Write a log or show a message about the fuckup on i,j
........end;
......end;
....end;
..end;
end;
die zeile:
if (i <> ((felder div 2) + 1)) and (j <> ((felder div 2) + 1)) then
oder
if (i = ((felder div 2) + 1)) and (j = ((felder div 2) + 1)) then
ist mir ein raetsel, was bezweckst du damit?
Ich gehe mal davon aus das bilder ein 2-dimensionales array gleicher breite und hoehe ist, andernfalls knallts in der funktion sowieso. Warum also wird bei einem 10x10 array das element 6x6 ausgelassen, zumal du alle danach auf nil setzt. Das heist das du das element nicht freigibst aber es danach wegwirfst = Speicherschmutz, Macht keinen sinn fuer mich. Erklaer mal bitte was das ganze soll.
Wie auch immer die zeile sollte dann so heissen:
if ((i=j)and(j=((felder div 2)+1))) then continue;
ehrlich gesagt hab ich net so genau drüber nachgedacht, wie du raiel, und hab halt nur dir groben Fehler korrigiert, weil ich in letzter Zeit einfach wenig Zeit hab (cooler Satz ). allerdings muss ich sagen da ich deinen code auch n biddel komisch finde, aber wahrscheinlich sollte ich ihn mir einfach mal nüchtern anschauen .
verdammt ich hasse solche miniunteralkoholeinflusshalbwegssinnlos posts, aber ich musst es mal sagen (vielleicht kommt noch ein sinnvoller edit dazu)
-edit-
mkay, mit halbeingeschalteter Großhirnrinde (ich bin grad erst aufgestanden) sieht das ganze doch ganz anders aus und siehe da man versteht auch raiels code .
Davon abgesehen das man Kommentare in Delphie mit {} schreibt hab ich eigentlich auch nichts zu meckern und da dies ein post ist und keine unit ist das ja auch egal. Also hab ich im Endeffekt nichts zu meckern und kann nur noch sagen
bdw. du rückst irgendwie komisch ein (war wahrscheinlich mein Prob gestern oder vielleicht doch was anderes )
-edit2-
da wir mit raiel anscheinend jemand mit programmiererwissen hinzubekommen haben stell ich doch direkt mal wieder meine Frage, also was bedeutet diese Meldung ? :
Zugriffsverletzung bei Adresse 0040380D in Modul ‚Gebrem.exe’. Lesen von Adresse FFFFFFF7.
> Davon abgesehen das man Kommentare in Delphie mit {} schreibt
na na na, da hat aber einer nicht aufgepasst.
Kommentare in Delphi kann man so schreiben:
{ text }
kommentar ueber mehrere Zeilen
// text
kommentar ueber eine zeile
/* text */
kommentar ueber mehrere Zeilen ( um Conditional Defines mit auszukommentieren )
> du rückst irgendwie komisch ein
prinzipiell jeder begin block geht 2 spaces nach rechts, die punkte sind hier nur weil das forum keine einrueckungen erlaubt
> Zugriffsverletzung bei Adresse 0040380D in Modul ‚Gebrem.exe’. Lesen von Adresse FFFFFFF7
Da ist irgendwo ein Speicherproblem, das kann unter anderem passieren wenn du ein Object benutzt ohne vorher Create zu machen. Oder wenn du auf einen Array Platz zugreifst den es nicht gibt. Am besten in der Delphi-IDE debuggen und nachsehen bei welcher zeile es knallt, dann siehst du schon welches Object probleme macht.
nunja wenn du es schon ohne den befehl [ code ]...[ /code ] machst hätte ich es so gemacht:
procedure ClearArray(const bilder: TMyImageArray);
var
..felder: Integer;
begin
..felder:= Length(bilder);
..for i:= 1 to felder do
..begin
....for j:= 1 to felder do
......begin
......try
........if Assigned(bilder[i,j]) then
........begin
..........bilder[i,j].destroy;
..........bilder[i,j]:= nil;
........end;
......except
........on e: Exception do
........begin
..........// Write a log or show a message about the fuckup on i,j
........end;
......end;
..end;
end;
end;
Zitat
na na na, da hat aber einer nicht aufgepasst.
...
nuja ich hab nur n anfängerkurs vor was weis ich wie lang gemacht und dann erstmal nicht programmiert. In letzter Zeit hab ich dann nur mal wieder n rappel bekommen (-> ich bin blutiger anfänger). Ich bilde mich hauptsächlich durch bücher, denn der schulinfokurs ... nun ja
leider bin ich grad net @home, insofern kann ich nichts testen
das verschwendet zuviel platz, das begin verbraucht unnoetig eine zeile und traegt nicht zur uebersichtlichkeit bei. Funktionen sollten immer so kurz sein das sie auf einen Bildschirm passen und man auf einen blick erkennt was Sie machen.
Das mag zwar prinzipiell jedem selber ueberlassen sein da ja beides geht. Aber wenn du groessere Programme schreibst dann hilft das beim fehlersuchen enorm.
> ich bin blutiger anfänger
is jeder mal
Wer sonst noch fragen zu Delphi/Kylix,C,C++,Java,Perl,Shell,Php,VB oder sowas hat immer her damit.
ich habe gerade beim Herumwühlen auf meinem Webserver ein kleines ASM-Projekt von mir gefunden, dass ich endlich mal beenden will. Also folgendes:
Ich versuche gerade ein Programm zu schreiben, mit dem man beliebige PE-Dateien mit einem Passwort schützen kann. Die Datei soll verschlüsselt werden und beim Programmstart soll das Passwort abgefragt werden.
Ich wollte das so Lösen, daß ich wie bei Viren das Programm "infiziere" indem ich einfach eine weitere Code-Section an das Programmende dranhänge und den Entry-Point entsprechend anpasse. Da aber die Passworteingabe schön grafisch vor sich gehen soll, brauche ich irgendwie Zugang zur WinAPI. Ich kann ja nicht einfach direkt Funktionsaufrufe machen, weil die Funktionen, die ich benötige evtl. nicht in der Import-Tabelle stehen (ist zwar unwahrscheinlich, aber immerhin möglich).
Deshalb suche ich nach eine saubere Lösung, wie ich die Adressen der WinAPI-Funktionen zur Laufzeit eines Programmes herausfinden kann (wenn möglich auch für möglichst alle Windows-Versionen)
Im Prinzip eine API-unabhängige 3D Engine mit C++.
Das ganze soll möglichst flexibel und erweiterbar werden.
Wobei 3D nicht heißt, dass es hier um eine hochkomplexe Quake 7 Engine geht, sondern dass 3D APIs verwendet werden.
Direct3D und OpenGL lassen sich ja z.B. auch ganz toll für 2D Spiele einsetzen.
--
Bin zur Zeit in Japan und habe deswegen keinen PC zu Hause
basiert das ganze dann auf DirectX oder auf SDL oder schreibst du komplett neu?
Schreibst du mit gcc, VisualC++,BorlandC++,BlodShed DevCPP?
M$-Windblows only oder platform unabhaengig?
Ich hatte vor es insofern API unabhängig zu gestalten, dass die Engine eine Top-Layer auf der API ist und der Programmierer garnicht merkt, welche benutzt wird.
Unter Windows kann man dann z.B. über eine abstrakte Factory Klasse einen Direct3D Renderer einbauen und unter Linux einen OpenGL Renderer.
Ebenso verhält es sich mit allem systemspezifischen Kram. Es muss so abstrakt gehalten werden, dass der Programmierer nicht merkt, für welches System er programmiert *g*
--
Bin zur Zeit in Japan und habe deswegen keinen PC zu Hause
ich muss für meine Schule einen 'Virus' schreiben. Da die Schule ein Sicherheitssystem testen möchte.
Dieser löscht einige wichtige Dateien.
Hier der Code:
So. Nur wie kompiliere ich dass jetzt so damit ich mir nicht den eigenen PC schrottig mache?
ICh hab das mit dem Visual Basic Editor von Frontpage gemacht.
Kann man 3 Subs mit demselben Namen erstellen, ohne dass es Probleme gibt?
Generiert der Editor von Frontpage nicht auch eigentlich VB-Script, also Dateien die vom Browser ausgeführt werden, die man also garnicht kompilieren muss?
@Malakai:
Cool, dann habe ich ja schon einen potenziellen Mitstreiter *gg*
Man müsste jetzt nur noch ein Board haben, wo man das ganze Konzept ausklamüsern kann
--
Bin zur Zeit in Japan und habe deswegen keinen PC zu Hause
also mit Frontpage wird das eigendlich, wie gesagt, nur VB-Script. Um Binary's zu erstellen brauchst du schon das richtige VB. Well, aber ich kann da auch falsch liegen, da ich nicht so oft damit arbeite. (Eigendlich nie )
Was ihr so in der Schule macht...
@Hippokrates
Unwahrscheinlich, dass wir hier sowas aufziehen können.
Ich könnte auf meinem Server noch ein Forum einfügen(Nur so ne Idee), oder wir nutzen nur einen Thread hier.
Was hast du denn direkt vor? Vielleicht wüsste ich da ein paar elegantere Lösungen...so in die Richtung antiker Pferdchen Sowas lässt sich mit VB ganz gut bewerkstelligen.
btw.
Was für ein Sicherheitssystem/Serverlösung habt ihr denn an eurer Schule. (OS, LAN-Aufbau etc)
Naja, mit VB-Script kann man so ziemlich alles machen.
Ist AFAIK die unsicherste Skriptsprache, da der PC im Gegensatz zu Javascript nicht wirklich vor Zugriffen durch das Skript geschützt ist.
@Malakai:
Vielleicht sollten wir uns irgendwo ein bissl Webspace mit PHP-Unterstützung besorgen und fix ein Board installieren
--
Bin zur Zeit in Japan und habe deswegen keinen PC zu Hause
also wer noch bei dem Projekt von Hippokrates & mir mitmachen will,
soll sich einfach per PN melden oder gleich hier im fix eingerichteten Forum. (unter Coding-Projekt)