| Autor |
Beitrag |
Nise
      
Beiträge: 20
|
Verfasst: Mo 19.05.03 10:13
Hallo zusammen!
Ich habe ein kleines Problem mit der Registry und zwar versuche ich ein Käckchen (Checked) in einem Popup menü in die Registry zu speichern.
Ich habe mehrere Popup menüs und möchte das wenn ich aus dem Programm aussteige das es mir auch die Häckchen bleiben wo ich sie angeklickt habe.
Mit diesem Code speichert er mir nur die Seiten ab aber nicht die einzelnen Details.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TFmHaupt.FmClose(Sender: TObject; var Action: TCloseAction); var regist: TRegistry; begin regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; regist.OpenKey('Software\Borland\Delphi\6.0', true); regist.WriteInteger('Left', FMHaupt.Left); regist.WriteInteger('Top', FMHaupt.Top); regist.free; end; |
Frage: Funktioniert das? Wenn ja wie?
Danke im Vorraus Denise
Moderiert von Tino: Delphi-Tags hinzugefügt.
|
|
foxy
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Mo 19.05.03 10:25
hi
he ? ich versteh dein problem nicht
danns chreib doch noch einen wert in die reg und frag dann bei der formcreate ab ob dieser existiert oder ob der den wert 1 hat und wenn ja machste checkbox1.cheched := true fertig
oder meinst du was anderes ???
[/delphi]
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 19.05.03 10:31
Delphi-Quelltext 1:
| regist.WriteBool ('Check1', MenuItem1. Checked); |
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Mo 19.05.03 10:32
Titel: Hallo!
Hy!
Ich habe ein Procedure und möchte das diese in die Registry übernommen wird! Bzw. das die einzelnen Checked Felder die aktiv (angeklickt wurden) sind in die Registry übernommen werden. Kann ich das mit hilfe von Tag in die Registry schreiben oder muss ich jedes einzeln an geben?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TFmHaupt.WarengruppenSuchenExecute(Sender: TObject); begin case TComponent(Sender).Tag of
3303: begin WaGrWGNr.Checked := true; WaGrBezeichnung.Checked := false; WarSU1.Text := ''; Label3.Caption := 'Warengruppen Nr.'; WarSU1.Visible := True; WarSU1.OnChange := WarSU1Change; end; 3304: begin WaGrWgNr.Checked := false; WaGrBezeichnung.Checked := true; WarSU1.Text := ''; Label3.Caption := 'Bezeichnung'; WarSU1.Visible := True; WarSU1.OnChange := WarSU2Change; end; end; end; |
Mfg Denise
Moderiert von Tino: Delphi-Tags hinzugefügt.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 19.05.03 11:20
Hallo!
Hat Dir mein Posting nicht geholfen? Wenn nicht dann sag bitte warum nicht  !
Was meinst du mit eine Procedure in die Registry schreiben? Du kannst in die Registry Werte lesen und schreiben. Wie das geht weißt du ja (Du hast oben ja den Code gepostet). Wie man einen Boolean Wert (die Checked Eigenschaft ist vom Typ Boolean) in die Registry schreibt habe ich oben auch gepostet.
Gruß
Tino
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Mo 19.05.03 11:46
Titel: Hallo!
Entschuldige habe ich übersehen!
Funktioniert aber nicht denn ich bekomme den Fehler Boolean und Integer nicht kompatible! Ich habe dann probiert noch eine Prozedur zu schreiben funktioniert aber auch nicht!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; regist.OpenKey('Software\Borland\Delphi\6.0', true); regist.WriteInteger('Left', FMHaupt.Left); regist.WriteInteger('Top', FMHaupt.Top); regist.WriteBool('Checked', FMHaupt.Tag); <Fehler> regist.free; |
Ich kenne mich leider noch nicht so gut mit delphi aus! Ich hoffe ich bin entschuldigt bin noch blut junger anfänger!
Mfg und Danke im Vorraus Nise
Moderiert von UGrohne: Delphi-Tags eingefügt
|
|
TheNeon
      
Beiträge: 408
Windows
VS2010 C#
|
Verfasst: Mo 19.05.03 11:58
... entschuldigt ist es nicht!! ...... weil es da nix zu entschuldigen gibt  ...... haben ja alle mal angefangen , oder??
also:
der Tag ist ein Integerwert, du aber willst ja einen boolschen Wert reinsetzen. Dein Fehler kommt, weil du falsch abgeschrieben hast:
Tino hat nicht
Delphi-Quelltext 1:
| regist.WriteBool('Checked', FMHaupt.Tag); |
sondern
Delphi-Quelltext 1:
| regist.WriteBool ('Checked', FMHaupt. Checked); |
geschrieben ........ schreibst du richtig ab, dann kann gar nix passieren 
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Mo 19.05.03 12:56
Titel: Danke!
Jetzt kommt zwar keine Fehlermeldung mehr (Fortschritt) aber es passiert auch nichts! Ich habe es so angeschrieben wie du es angegeben hast aber es passiert einfach nicht's! Ich habe das programm gestartet einen Checked angeklickt und das programm wieer Geschlossen und neu gestartet zum sehen ob es funktioniert!
Aber es macht gar nichts!
Ist es möglich das es so garnicht funktioniert? Oder woran kann es liegen?
Mfg Denise
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Mo 19.05.03 13:03
Titel: Noch ne kurze Frage!
Kann es sein das ich im RegistrierungsEditor etwas Falsch angegeben habe? Kann es damit zusammen hängen?
Mfg Denise
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 19.05.03 13:34
Hallo,
zeig doch mal den Code mit dem Du den Wert wieder ausliest. Denn mit:
Delphi-Quelltext 1:
| regist.WriteBool ('Checked', FMHaupt.Checked); |
schreibst Du ja einen Wert in die Registry. Nicht mehr und nicht weniger. Du musst natürlich auch noch beim Starten der Anwendung den Wert wieder aus der Registry lesen und diesen der Komponente zuweisen:
Delphi-Quelltext 1:
| FMHaupt.Checked := regist.ReadBool ('Checked'); |
Gruß
Tino
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Mo 19.05.03 13:43
Titel: Hy!
Habe einbisschen herum Probiert (leider) jetzt funktioniert es wieder nicht jetzt bringt er mir in diesem Code
Delphi-Quelltext 1:
| regist.WriteBool('Checked', FMHaupt.Checked); |
Undefinierter Bezeichner Checked;
Ausgegeben hätte ich den Code mit ReadBool! Ich weiß auch nicht was ich andauert falsch mache!
Danke für die Hilfe
Nise
Moderiert von Tino: Delphi-Tags hinzugefügt.
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Mo 19.05.03 13:57
Titel: Hallo!
Frage kann ich irgend wie testen ob er mir es überhaupt einließt?
Irgendwo nach sehen?
Mfg Nise
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 19.05.03 14:57
Titel: Re: Hy!
| Nise hat folgendes geschrieben: | | Undefinierter Bezeichner Checked; |
Ist FMHaupt auch ein TMenu Item oder nur vom Type TMenu? Es muss natürlich vom Type TMenuItem sein da nur dieses Objekt eine Eigenschaft namens Checked besitzt.
Gruß
Tino
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Mo 19.05.03 15:22
Titel: FMHaupt!
Ist der Name eines meiner Formulare! Ich habe es jetzt anders angeschrieben und zwar
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:
| procedure TFmHaupt.FmDestroy(Sender: TObject); var regist: TRegistry; begin regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; regist.OpenKey('Software\ZVVerwaltung\DialogPosition\FMHaupt', true); regist.WriteInteger('3000', FMHaupt.Tag); regist.WriteInteger('3016', FMHaupt.Tag); regist.WriteInteger('3101', FMHaupt.Tag); regist.WriteInteger('3111', FMHaupt.Tag); regist.WriteInteger('3201', FMHaupt.Tag); regist.WriteInteger('3221', FMHaupt.Tag); regist.WriteInteger('3301', FMHaupt.Tag); regist.WriteInteger('3303', FMHaupt.Tag); regist.WriteInteger('3401', FMHaupt.Tag); regist.WriteInteger('3405', FMHaupt.Tag); regist.WriteInteger('3501', FMHaupt.Tag); regist.WriteInteger('3505', FMHaupt.Tag); regist.WriteInteger('3601', FMHaupt.Tag); regist.WriteInteger('3605', FMHaupt.Tag); regist.WriteInteger('3701', FMHaupt.Tag); regist.WriteInteger('3710', FMHaupt.Tag); regist.free; end; |
Für jedes Popup menü wo ich ein Checked benutze habe ich über den tag die Checked funktion angegeben! Nur habe ich noch ein kleines Problem und zwar das auslesen funktioniert noch nicht!
Kann mir da noch jemand helfen?
Mfg Nise
Moderiert von Tino: Delphi-Tags hinzugefügt.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 19.05.03 17:07
Hi Nise,
bitte benutze in Zukunft wenn Du Sourcecode in deinen Beiträgen postest die Delphi-Tags damit der Sourcecode besser zu lesen ist. So benutzt du den Tag (ohne das Sternchen):
[delphi*]
procedrue TFmHaupt.FmDestroy(Sender: TObject);
[/delphi*]
So, jetzt zu deinem Problem. Leider kapiere ich wieder nicht was du vorhast  Deshalb habe ich zwei Fragen:
| Nise hat folgendes geschrieben: | | Für jedes Popup menü wo ich ein Checked benutze |
Ein Popup-Menu verfügt über keine Checked Eigenschaft. Was meinst Du genau?
| Nise hat folgendes geschrieben: | | habe ich über den tag die Checked funktion angegeben! |
Was meinst du mit Checked-Funktion?
Gruß
Tino
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Di 20.05.03 09:40
Titel: Guten Morgen!
Ich habe über eine Action eine Checked im Popup menü.
Jetzt funktioniert es auch schon so weit das er es ein und aus lesen kann aber ich habe noch ein problem mit dem ausgeben!
Ausgeben: Wenn ich ein Checked anklicke soll es bestehen bleiben und beim Programm schließen in die Registry eingetragen werden und beim wieder starten des Programmes soll er mir das Häckchen (Checked) aus der Registry nehmen und dann wieder machen.
Hier ließt er es ein!
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: 26:
| procedure TFmHaupt.FmClose(Sender: TObject; var Action: TCloseAction); var regist : TRegistry; begin regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; regist.OpenKey('Software\ZVVerwaltung\DialogPosition\FMHaupt', true);
regist.WriteInteger('Tag', ZimmTabeTag); regist.WriteInteger('Tag1', ZimmSuchTag); regist.WriteInteger('Tag2', AdreTabeTag); regist.WriteInteger('Tag3', AdreSuchTag); regist.WriteInteger('Tag4', ArtiTabeTag); regist.WriteInteger('Tag5', ArtiSuchTag); regist.WriteInteger('Tag6', WareTabeTag); regist.WriteInteger('Tag7', WareSuchTag); regist.WriteInteger('Tag8', KontTabeTag); regist.WriteInteger('Tag9', KontSuchTag); regist.WriteInteger('Tag10', KostTabeTag); regist.WriteInteger('Tag11', KostSuchTag); regist.WriteInteger('Tag12', DokuTabeTag); regist.WriteInteger('Tag13', DokuSuchTag); regist.WriteInteger('Tag14', HistTabeTag); regist.WriteInteger('Tag15', HistSuchTag);
regist.free; end; |
und hier wieder aus!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; regist.OpenKey('Software\ZVVerwaltung\DialogPosition\FMHaupt', true);
ZimmTabeTag := regist.ReadInteger('Tag'); ZimmSuchTag := regist.ReadInteger('Tag1'); AdreTabeTag := regist.ReadInteger('Tag2'); AdreSuchTag := regist.ReadInteger('Tag3'); ArtiTabeTag := regist.ReadInteger('Tag4'); ArtiSuchTag := regist.ReadInteger('Tag5'); WareTabeTag := regist.ReadInteger('Tag6'); WareSuchTag := regist.ReadInteger('Tag7'); KontTabeTag := regist.ReadInteger('Tag8'); KontSuchTag := regist.ReadInteger('Tag9'); KostTabeTag := regist.ReadInteger('Tag10'); KostSuchTag := regist.ReadInteger('Tag11'); DokuTabeTag := regist.ReadInteger('Tag12'); DokuSuchTag := regist.ReadInteger('Tag13'); HistTabeTag := regist.ReadInteger('Tag14'); HistSuchTag := regist.ReadInteger('Tag15');
regist.free; |
Hier noch ein Beispiel wo ich die Checked angebe.
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:
| procedure TFmHaupt.ZimmTabellenExecute(Sender: TObject); begin case TComponent(Sender).Tag of
3000: begin ZimmerZimmerNummer.Checked := true; ZimmerStock.Checked := false; ZimmerZimmerTyp.Checked := false; ZimmerMaximumBetten.Checked := false; ZimmerZimmerAusstattung.Checked := false; ZimmerZimmerAusrichtung.Checked := false; ZimmerPreis1.Checked := false; ZimmerPreis2.Checked := false; ZimmerPreis3.Checked := false; ZimmerPreis4.Checked := false; ZimmerPreis5.Checked := false; ZimmerPreis6.Checked := false; ZimmerPreis7.Checked := false; ZimmerPreis8.Checked := false; ZimmerPreis9.Checked := false; ZimmerPreis10.Checked := false; <Registry> ZimmTabeTag := ZimmerZimmerNummer.Tag; <Registry> end; end; |
So weit so gut, aber ich weiß nicht wie ich es angeben soll das es funktioniert!
Ich hoffe es ist einiger Maßen gut erklärt!
Mfg Denise
Moderiert von Tino: Delphi-Tags hinzugefügt.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Di 20.05.03 10:51
Titel: Re: Guten Morgen!
| Nise hat folgendes geschrieben: | | Ich habe über eine Action eine Checked im Popup menü. |
Ich gehe mal davon aus das Du ein tMenuItem einer Action zugewiesen hast und über die Checked-Eigenschaft der Action änderst Du den Checked-Status des Menueintrags. Ist das richtig?
| Nise hat folgendes geschrieben: | | Wenn ich ein Checked anklicke soll es bestehen bleiben und beim Programm schließen in die Registry eingetragen werden und beim wieder starten des Programmes soll er mir das Häckchen (Checked) aus der Registry nehmen und dann wieder machen. |
Wie das geht habe ich doch schon oben geschrieben.
Hier noch mal (diesmal mit Actions):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; regist.OpenKey('Software\ZVVerwaltung\DialogPosition\FMHaupt', true); regist.WriteBool ('Action1', Action1.Checked); regist.WriteBool ('Action2', Action2.Checked); regist.WriteBool ('Action3', Action3.Checked); |
und das laden
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; regist.OpenKey('Software\ZVVerwaltung\DialogPosition\FMHaupt', true);
Action1.Checked := regist.ReadBool ('Action1'); Action2.Checked := regist.ReadBool ('Action2'); Action3.Checked := regist.ReadBool ('Action3'); Gruß |
Tino
PS: Bitte beachte meinen Hinweis mit den Delphi-Tags!
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Di 20.05.03 16:16
Titel: Hallo!
Das oben angeführte Beispiel funktioniert wunderbar!
Nur die Action wird nicht ausgelöst.
Woran kann das liegen?
Mfg Denise
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Di 20.05.03 16:29
Titel: Re: Hallo!
| Nise hat folgendes geschrieben: | | Nur die Action wird nicht ausgelöst. |
Hast Du die Action auch mit einem tMenuItem verbunden?
|
|
Nise 
      
Beiträge: 20
|
Verfasst: Di 20.05.03 16:40
Titel: Hallo
Ja habe ich und sie wird aber nicht ausgelöst. Keine Ahnunung wieso er das nicht macht!
Mfg Nise
|
|