Autor Beitrag
Experience1986
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 192

Win XP Pro SP2
Delphi 7
BeitragVerfasst: Do 05.02.04 15:55 
Hi,

Ich wollte meinen Benutzer daran erinnern das er eine Änderung im aktuellen Formular gemacht hat, und möchte ihn per MessageDlg() fragen ob er die Änderungen speichern oder Verwerfen will.

Ich setze also eine Global Variable "vReallyClose" (Integer) und gebe dieser den Wert 1.

Wird eine Änderung gemacht, so wird vReallyClose auf 0 gesetzt.

Nun vorher hatte ich bereits vReallyClose als Boolean, allderdings, jedes mal wenn man Auf den Schließen Button (btn_Save) klickt, welcher die If abfrage macht, ob nun MessageDlg(9 aufgerufen werden soll, oder ob das Formular direkt Versteckt werden soll (Hide), ruft mein Programm JEDES mal die MessageDlg() auf, obwohl ich mir davor schon vReallyClose per Showmessage augegeben habe, und mich damit vergewissert habe, das der Wert 1 ist, womit also das Formular direkt geschlossen werden soll, da ja keine Änderung gemacht wurde.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TFRM_IE_SearchbarEditor.Button1Click(Sender: TObject);
begin
if (vReallyClose=0then
 begin

    if MessageDlg('Du hast gerade Änderungen vorgenommen.'+#13+
                  'Sollen diese Änderungen nun gespeichert werden?', mtConfirmation,
                   [mbYes, mbNo], 0) = mrYes then
     begin
       btn_SaveClick(Sender);
       FRM_IE_SearchbarEditor.Hide;
       vReallyClose:=1;
     end
    else
     begin
      FRM_IE_SearchbarEditor.Hide;
      vReallyClose:=1;
     end;
 end
else
 begin
    FRM_IE_SearchbarEditor.Hide;
    vReallyClose:=1;
 end;
end;


Was kann das sein, als erstes dachte ich das es an einem Textfeld lag, dem ich sagte das es bei OnChange vReallyClose auf 0 setzen soll, aber auch nun mit nur RadionButtons und normalen Buttons mit OnClick prozeduren bleibt das Problem weiterhin bestehen.

Ich bin ratlos, was kann es noch sein?
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Do 05.02.04 16:04 
Was willst Du denn jetzt wissen?
Warum es nicht mir Boolean geht? (also theoretsich müsste es mit boolean gehen)

ich kann die genaue frage aus deinem text nicht rauslesen

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Experience1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 192

Win XP Pro SP2
Delphi 7
BeitragVerfasst: Do 05.02.04 16:06 
Ich will wissen, warum die MessageDLg auftauacht obwohl das durch If() eigentlich ausgeschlossen ist.
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Do 05.02.04 16:11 
lass dir doch durch
ausblenden Delphi-Quelltext
1:
ShowMessage(IntToStr(vReallyClose));					

vor dem IF mal ausgeben was in der variable drinsteht...

weil wenn 0 drin wäre dann würde auch der Dlg nicht kommen...

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Experience1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 192

Win XP Pro SP2
Delphi 7
BeitragVerfasst: Do 05.02.04 16:18 
OK, OK, obwohl ich die vRallyClose oben bei den Globalen Vars auf 1 definiert habe, war bei showmessage doch 0, also habich am ende von Onshow des Formualrs vReallyClose nochmal auf 1 gestellt nun geht es.
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Do 05.02.04 16:20 
na bitte, nun kannst du auch wieder auf Boolean umstellen, dann sparst du bissl speicher^^

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Experience1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 192

Win XP Pro SP2
Delphi 7
BeitragVerfasst: Do 05.02.04 16:27 
Soso, die Speicheroptimierung, ist es denn soo wichtig grade bei soetwas speicher optimiert zu coden?

Macht es einen soo großen unterschied?
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Do 05.02.04 16:49 
ob es wichtig ist musst du entscheiden, und in unserer rechner generation wirst du kaum einen unterschied merken...

wieviel man genau spart kann ich dir nicht sagen


EDIT: 700. Posting...

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 06.02.04 23:35 
Mal so ne Frage am Rande...: Seid ihr sicher, dass auf einem 32BitSystem eine Boolsche Varaiable nur 1Bit belegt? Hab mal irgendwo gehört, dass das intern auch 32Bit belegt, wegen Geschwindigkeitsvorteilen...kann mich dabei aber auch irren. Erscheint mir aber logisch.

_________________
We are, we were and will not be.