Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sheddex

unregistriert

11

07.10.2007, 17:54

@Nox: Ja, es muss ja erfüllt sein, da sonst false zurückgegeben würde.

Die HasChanged Methoden sehen so aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool Dmd::Window::LB_HasChanged(const wchar_t* ID)
{
  if (ListBoxes.find(ID) == ListBoxes.end())
    return false;

  return ListBoxes[ID].Changed;
}

bool Dmd::Window::CB_HasChanged(const wchar_t* ID)
{
  if (ComboBoxes.find(ID) == ComboBoxes.end())
    return false;

  return ComboBoxes[ID].Changed;
}


(Nein, das false kommt nicht vom if, das habe ich überprüft.)

Die Zurücksetz-Schleife steht direkt bei der der ComboBox:

C-/C++-Quelltext

1
2
3
4
5
for (std::map<std::wstring, ListBox>::iterator i = ListBoxes.begin(); i != ListBoxes.end(); ++i)
  i->second.Changed = false;

for (std::map<std::wstring, ComboBox>::iterator i = ComboBoxes.begin(); i != ComboBoxes.end(); ++i)
  i->second.Changed = false;


@Deviloper: thx, auch wenn es für mich komisch aussieht, werde ich es mir wohl angewöhnen...

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

12

07.10.2007, 17:59

bitte hau mal den code zusammenhängen hier rein: http://nopaste.info/
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Sheddex

unregistriert

13

07.10.2007, 18:44

Ist wohl das beste. Ich habe den Code auch von allem was nichts mit den Listen- und Comboboxen zu tun hat befreit, damit es übersichtlicher ist.

Code

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

14

07.10.2007, 18:48

Was zur Hölle:

C-/C++-Quelltext

1
2
3
Thunk[0] = 0xB9;
*reinterpret_cast<DWORD*>(Thunk + 1) = reinterpret_cast<DWORD>(this);
*reinterpret_cast<DWORD*>(Thunk + 5) = 0x20FF018B;
@D13_Dreinig

Sheddex

unregistriert

15

07.10.2007, 18:52

Das schiebt wohl den this-pointer vor WindowProc, damit man eine solche aus Methode deklarieren kann.
Nein, ich weiß nicht, was dort genau passiert, aber ich bin froh, dass es funktioniert ;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

16

07.10.2007, 18:53

Mach das blos weg... Das ist eines der dreckisten Codestücke die ich je gesehen hab!
@D13_Dreinig

Sheddex

unregistriert

17

07.10.2007, 18:58

Mag ja sein, aber dafür hat man eben eine WndProc-Methode... ich weiß auch nichts Besseres, was dann genauso komfortabel zu verwenden ist.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

18

07.10.2007, 19:05

Omg... Was für eine Einstellung. Es gibt Lösungen die konfortabel sind aber dafür weniger Fehleranfällig und funktionsfähig. Eine statische Methode würde reichen und dein Window Objekt kannst du ja auch mit reichen.

Aber sorry, DER Code ist z.T. wirklich unter aller sau! Das kannst du doch wohl besser?!
@D13_Dreinig

Sheddex

unregistriert

19

07.10.2007, 19:13

Ich will hier wirklich nichts rumreichen, ich will es einfach so verwenden, wie ich es zur Zeit tue. Diese 3 Zeilen schrecklichen Code nehme ich hier wirklich einfach in Kauf.
Ist der Code sonst noch irgendwo "unter aller Sau"?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

20

07.10.2007, 19:15

Zitat von »"DragonFlame"«

Ich will hier wirklich nichts rumreichen, ich will es einfach so verwenden, wie ich es zur Zeit tue. Diese 3 Zeilen schrecklichen Code nehme ich hier wirklich einfach in Kauf.
Ist der Code sonst noch irgendwo "unter aller Sau"?


Nich so schlimm wie die drei Zeilen, aber z.T. tatsächlich verbesserungswürdig. Und wer sowas in kauf nimmt, dem gehört ehrlich gesagt nicht mehr geholfen...

(D)evil hat mal einen Ansatz gepostet der lauffähig und um Längen besser war: https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=8314&start=30

Das sollte ähnlich konfortabel sein wie deine Idee.
@D13_Dreinig

Werbeanzeige