| Ersteller | Thema » Beitrag als Abo bestellen |  |
Agatho Cyberdemon


Status: Offline Registriert seit: 10.08.2005 Beiträge: 132 Nachricht senden | Erstellt am 06.09.2005 - 14:35 |  |
Hallo!
Das ist ein Programmiererthread!
@Karli : Function pointer in Java.
genauergesagt -> reference methods, weil Pointer gibts ja kane mehr... Keywords: delegate, multicast, /** @delegate */
Ein selbst erdachtes Beispiel... public abstract class C1 { public delegate int RefParseFunc(int nInit); private RefParseFunc FuncPointerInJava;
public C1() { // not used }
public void SetRefMethod(RefParseFunc pfTemp) { // jaaa gib ihm gib ihm FuncPointerInJava = pfTemp }
public void ProcessSomething() { if (FuncPointerInJava(1) != 0) LogError(); } }
public class CDerivate1 extends C1 {
public CDERIVATE1() { // Jetzt übergeben super.SetRefMethod(new C1.RefParseFunc DieseFunktionWirdUebergeben) }
public int DieseFunktionWirdUebergeben(int GAGA) { // Mach was mit GAGA was typisch für CDerivate1 ist } }
public class CDerivate2 extends C1 {
public CDERIVATE2() { // Jetzt übergeben super.SetRefMethod(new C1.RefParseFunc AuchDieseFunktionWirdUebergeben) }
public int AuchDieseFunktionWirdUebergeben(int KACKA) { // Mach was mit KACKA was typisch für CDerivate2 ist } }
Zur Erklärung warum ma sowos überhaupt braucht: Die Abarbeitung sämtlicher wichtiger Prozesse kann in Baseclass C1 passieren. Per Referencemethod können die vererbten Klassen CDERIVATE1 und CDERIVATE2 2 verschiedene RefMethods vom Typ RefParseFunc der SuperKlasse übergeben. Also eine Funktion quasi als Referenzparameter. In der Superklasse wird dieser Parameter dann aufgerufen wie eine normale func...
wäre das auch geklärt.
[Dieser Beitrag wurde am 06.09.2005 - 19:14 von Transgression aktualisiert]
Signatur
 |
|
|
Agatho Cyberdemon


Status: Offline Registriert seit: 10.08.2005 Beiträge: 132 Nachricht senden | Erstellt am 06.09.2005 - 14:36 |  |
sorry aber die einrückungen werden automatisch vom board gelöscht...
Signatur
 |
Agatho Cyberdemon


Status: Offline Registriert seit: 10.08.2005 Beiträge: 132 Nachricht senden | Erstellt am 06.09.2005 - 15:13 |  |
bitte net falsch verstehen!
Das ist ein Thread wos ums Programmieren geht, hoffentlich net zu oft. Das soll natürlich net heissen, dass andere Nicht-Programmierer hier nicht willkommen sind bzw. nix posten sollen.
So hab ich das wirkli net gemeint, steht vielleicht a bissl unglücklich da!
Ausserdem san ma doch alle a bissl Programmierer in dem Forum! Auch Langis TETRIS is sicha supa! Post mal den Code bitte...
mfg 00101110101001010110010010101010
Signatur
 |
kalafkalasch  Cyberdemon


Status: Offline Registriert seit: 16.08.2005 Beiträge: 170 Nachricht senden | Erstellt am 06.09.2005 - 15:32 |  |
oh, gut, und ich dachte schon ich darf hier nix posten....
soll ich meinen tetris code posten? soll ich? soll ich? naaa, is zuviel code...
mfg 10010100001010111101010102
na schön... a paar vb zeilen, dass ihr mal sehts wie sowas ausschaut....
Private Sub MailToSQL(ByVal xmlData As MSXML2.DOMDocument, ByVal con As ADODB.Connection) On Error GoTo lbError
Dim rsL As ADODB.Recordset 'logfiles Dim rsP As ADODB.Recordset 'parameters Dim rsC As ADODB.Recordset 'computers Dim rsID As ADODB.Recordset Dim s As String Dim i As Integer Dim j As Integer Dim k As Integer Dim l As Integer Dim Parameter As Integer Set rsL = New ADODB.Recordset Set rsP = New ADODB.Recordset Set rsC = New ADODB.Recordset Set rsID = New ADODB.Recordset rsL.Open "SELECT * FROM evlgLogfiles WHERE ID = NULL", con, adOpenDynamic, adLockPessimistic rsP.Open "SELECT * FROM evlgParameter WHERE ID = NULL", con, adOpenDynamic, adLockPessimistic 'list(s) ... For i = 0 To xmlData.childNodes.length - 1 DoEvents Me.prbRecords.Value = 0 Me.prbRecords.Max = xmlData.childNodes.Item(0).childNodes.length 'record(s) ... For j = 0 To xmlData.childNodes.Item(0).childNodes.length - 1 DoEvents rsL.AddNew Parameter = 1 'attribute(s) ... For k = 0 To xmlData.childNodes.Item(i).childNodes.Item(j).Attributes.length - 1 DoEvents rsL(xmlData.childNodes.Item(i).childNodes.Item(j).Attributes.Item(k).nodeName) = xmlData.childNodes.Item(i).childNodes.Item(j).Attributes.Item(k).nodeTypedValue Next k Me.prbItems.Value = 0 Me.prbItems.Max = xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.length 'item(s) ... For k = 0 To xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.length - 1 DoEvents If xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeName <> "String" And xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeName <> "Computername" Then rsL(xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeName) = xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeTypedValue ElseIf xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeName = "Computername" Then rsC.Open "SELECT * FROM evlgComputer WHERE Name = '" & xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeTypedValue & "'", con, adOpenDynamic, adLockPessimistic If Not rsC.EOF Then rsL(xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeName) = rsC("ID" Else rsC.AddNew rsC("Name" = xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeTypedValue rsC.Update rsID.Open "SELECT TOP 1 ID FROM evlgComputer order by id desc", con, adOpenDynamic, adLockReadOnly If Not rsC.EOF Then rsL(xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeName) = rsID("ID" Else WriteToLog "EventLogSqlHandler: ID for [" & xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeTypedValue & "] in tbl [evlgComputer] not found", "C:\evlgrd.log", "", True, True End If rsID.Close End If rsC.Close ElseIf xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeName = "String" Then rsL.Update rsP.AddNew rsID.Open "SELECT TOP 1 id FROM evlglogfiles order by id desc", con, adOpenDynamic, adLockReadOnly rsP("LogID" = rsID("ID" rsID.Close rsP("Text" = xmlData.childNodes.Item(i).childNodes.Item(j).childNodes.Item(k).nodeTypedValue rsP("Number" = Parameter rsP.Update Parameter = Parameter + 1 End If Me.prbItems.Value = k + 1 DoEvents Next k If Not rsL.EOF Then If rsL.EditMode = adEditInProgress Then rsL.Update If Not rsP.EOF Then If rsP.EditMode = adEditInProgress Then rsP.Update Me.prbRecords.Value = j + 1 DoEvents Next j WriteToLog "EventLogSqlHandler: [" & xmlData.childNodes.Item(0).childNodes.length & "] record(s) imported ", "C:\evlgrd.log", "", True, True Next i Me.prbItems.Value = 0 Me.prbRecords.Value = 0 GoSub lbClear Exit Sub lbClear: Return lbFehler: On Error Resume Next: GoSub lbClear: On Error GoTo 0: ErrorRaise lbError: ErrorSave Err, Modulename & ".MailToSQL": Resume lbFehler End Sub
[Dieser Beitrag wurde am 06.09.2005 - 15:35 von kalafkalasch aktualisiert]
Signatur
 |
kalafkalasch  Cyberdemon


Status: Offline Registriert seit: 16.08.2005 Beiträge: 170 Nachricht senden | Erstellt am 06.09.2005 - 15:36 |  |
hm.... ohne tabs is des natürlich gaga. und die smileys sollten keine sein... naja was solls...
Signatur
 |
Transgression  Imperator
    

Status: Offline Registriert seit: 04.08.2005 Beiträge: 385 Nachricht senden | Erstellt am 06.09.2005 - 19:13 |  |
hmm?
Mir is des wurscht, i kapiers net und will mich auch net damit beschäftigen, ergo muss ich den Thread gor net aufmochn. Was die devs hier treiben is mir schnurzwurscht.
ABER:
Kafkalasch, dein Code is sicher cool und modern owa ich bevorzuge die Shape Description Language. Abgesehn davon habs nur ich und NUR ICH hinbekommen dass sich des Tetris spielt wie sich ein Tetris eben spielt (und wenns da kafkalasch auch so hat hat er es von MIR!). Keine Ahnung ob i den Code noch hob. Werd mal schaun. Wenn ja geht er sicher net fehlerfrei.
@kafkalasch:
es gibt die option "Grafische Smilies deaktivieren?"
[Dieser Beitrag wurde am 06.09.2005 - 19:23 von Transgression aktualisiert]
Signatur Ich spiel’ Dir manchmal Streiche Rate wer ich bin Ohne mich kannst Du nicht träumen Ich bin in Dir von Anbeginn Ja, ich bin’s, den Du haßt Ich bin’s, den Du liebst Ich bin der, der alles darf Und dem Du nie vergibst Ich bin Dein Auge, das nichts sieht Dein Hirn, das Dir befiehlt Ich bin Du
http://chaosbreed.blogspot.com |
Agatho Cyberdemon


Status: Offline Registriert seit: 10.08.2005 Beiträge: 132 Nachricht senden | Erstellt am 07.09.2005 - 08:09 |  |
ja da gibts ne checkbox:
see -> ;) (; ): (: 8)
Signatur
 |
kalafkalasch  Cyberdemon


Status: Offline Registriert seit: 16.08.2005 Beiträge: 170 Nachricht senden | Erstellt am 07.09.2005 - 09:32 |  |
im prinzip is es die shape description language. is hald a bissi anders umgesetzt, owa eben vom prinzip her tockner style.
ah, smilies deaktivieren also... ja, ich sehe es. aber es ist zu spät. mein nächsten unnötig geposteten code dann...
Signatur
 |
Agatho Cyberdemon


Status: Offline Registriert seit: 10.08.2005 Beiträge: 132 Nachricht senden | Erstellt am 09.09.2005 - 12:15 |  |
Achtung das ist ein Tabtest!
Wenn scho kane leerzeichen gehen.
Ok.. tabs kann ma in dem browser sowieso net machen, da hüpft da zum nächsten control (de san de smilies rechts davon).
Also vom Textfile rauskopiert. class CTABTEST mit Tabs. class CSPACETEST -> selbsterklärend...
public class CTABTEST { public CTABTEST () {} }
public class CMAINPRGRM { public CMAINPRGRM () {;} public void main (char *argv, short *argc) { ... } }
public class CSPACETEST { public CTABTEST () {} }
public class CMAINPRGRM { public CMAINPRGRM () {;} public void main (char *argv, short *argc) { ... } }
Signatur
 |
Agatho Cyberdemon


Status: Offline Registriert seit: 10.08.2005 Beiträge: 132 Nachricht senden | Erstellt am 09.09.2005 - 12:23 |  |
aber jetzt:

ohh behave...
Signatur
 |