Forum: Programmieren allgemein
by adk,
2. Mär 2010
Die Lösung:
Es wird ein seperater Typ angelegt, also eine Klasse, die einen Double-Wert enthält. Von diesem Typ wird eine Instanz in ProcedureA angelegt und der Double mit einem Wert belegt. Anschliessend wird ein Longint(Instanz) als Parameter an ProcedureB weitergeben. In ProcedureB kann dieser wieder in den alten Typ konvertiert werden, die Instanz existiert ja auch noch im Speicher....
Forum: Programmieren allgemein
by adk,
25. Feb 2010
Hatte ich schon. Ja, hat er.
Ich glaube ich habe euch jetzt schon überstrapaziert, werde das evtl. mit globalen Variablen lösen. Sollte es noch anders gehen, werde ich die Lösung hier noch reinstellen.
Forum: Programmieren allgemein
by adk,
25. Feb 2010
Das schaut gut aus, aber: Sind folgende Korrekturen korrekt? (@ und 'p' hattest du vergessen):
procedure ProcedureA(Gewicht : double)
var
pGewicht: PDouble;
begin
New(pGewicht);
pGewicht := @Gewicht;
PostThreadMessage(MyThreadId, WM_Gewichtserfassung, intAndererwert, Integer(pGewicht));
Forum: Programmieren allgemein
by adk,
25. Feb 2010
Das ist der fast komplette Code gewesen, lediglich die Proceduren sind umbenannt und Parameter gekürzt. Was gekürzt wurde ist in ProcedureA, in der folgendes aufgerufen wird (anstelle ProcedureB):
procedure ProcedureA(Gewicht : double)
begin
PostThreadMessage(MyThreadId, WM_Gewichtserfassung, intAndererwert, Integer(@Gewicht));
end;
Im Thread selbst wird dann entsprechender...
Forum: Programmieren allgemein
by adk,
25. Feb 2010
Theoretisch ist alles nun korrekt bei mir, aber genanntes Problem der 'Rückkonvertierung' (Zahl mit vielen Nachkommstellen) bleibt bestehen. Mein jetziger Stand:
procedure ProcedureA(Gewicht : double)
begin
ProcedureB(Integer(@Gewicht))
end;
procedure ProcedureB(intWert: integer)
Forum: Programmieren allgemein
by adk,
25. Feb 2010
Dies ist (entschuldigung) etwas chaotisch. Ich erwarte natürlich keine 100% passende Lösung (will ja selbst noch zu Lösung beitragen :roll: ) jedoch verstehe ich es nicht.
Geht leider nicht.
Forum: Programmieren allgemein
by adk,
25. Feb 2010
@himitsu: Aus deiner Antwort werde ich nicht ganz schlau, was ist davon nun richtig und was falsch? Ich bin diese Beispiele durchgegangen und habe dies in meinem Programm umgesetzt, leider ohne Erfolg.
Forum: Programmieren allgemein
by adk,
24. Feb 2010
Hallo Zusammen,
ich habe eine Procedur, die erwartet einen Int-Wert als Parameter:
ProcedurB(intValue : Integer)
An diese Methode möchte ich allerdings einen double übergeben. Überschreiben oder mit globalen Variablen möchte ich nicht arbeiten.
Nun war die Idee einen Int-Pointer zu erstellen und diesen auf den Double-Wert zeigen zu lassen. An ProcedurB wird der Pointer-Wert des...