AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Panel als ShowModal?

Ein Thema von OrNEC · begonnen am 5. Jan 2015 · letzter Beitrag vom 5. Jan 2015
Antwort Antwort
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

Panel als ShowModal?

  Alt 5. Jan 2015, 14:54
Hallo,

ist es möglich ein Panel als ShowModal im Form zu halten? Also ich habe ein Paar Edits auf dem Panel, sobald diese (Text) geändert werden erscheinen auf dem Panel die Buttons "Übernehmen" und "Abbrechen". Nun will ich verhindern, dass der User irgendwas auf dem Form klicken kann bevor er die Änderung übernimmt oder abbricht.

Danke!
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Panel als ShowModal?

  Alt 5. Jan 2015, 14:58
Du kannst alle anderen Komponenten auf enabled := false; setzen. Aufwand hängt vom Design deiner Oberfläche ab.
Philip
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Panel als ShowModal?

  Alt 5. Jan 2015, 15:05
Du kannst alle anderen Komponenten auf enabled := false; setzen. Aufwand hängt vom Design deiner Oberfläche ab.
Oh... das wird sehr aufwendig. Geht das nicht anders, einfacher?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Panel als ShowModal?

  Alt 5. Jan 2015, 15:17
Du könntest doch im OnExit des Panels prüfen, ob
- ein Wert verändert wurde
- ActiveControl gesetzt ist
- dessen Parent gesetzt ist
- dieser Parent Dein Panel ist

Wenn die ersten Punke zutreffen und der letzte nicht, kannst Du ja ActiveControl auf das Panel oder eins der Edits setzen.
Delphi-Quellcode:
procedure TFormTest.Panel1Exit(Sender: TObject);
begin
  if FChanged then //FChanged wird bei Änderung eines Edits gesetzt
    if Assigned(ActiveControl) and Assigned(ActiveControl.Parent) and
      (ActiveControl.Parent <> Panel1) then
      ActiveControl := Edit1; //erstes Edit auf dem Panel
end;
Nur so eine Idee.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Panel als ShowModal?

  Alt 5. Jan 2015, 15:43
Ob die Werte sich verändert haben prüfe ich wie folgt:

Delphi-Quellcode:
procedure TForm1.VornameEditKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  OkBitBtn.Visible := True;
  CancelBitBtn.Visible := True;
end;
Wie weit kann damit Dein Vorschlag reduziert werden?

Wie wäre es mit: in OnExit des Panels prüfen, on die Buttons sichtbar sind und entsprechend eine Meldung ausgeben, ob die Werte übernommen werden sollen oder nicht? Ist doch auch eine Möglichkeit, oder?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Panel als ShowModal?

  Alt 5. Jan 2015, 15:45
Es ist zwar nicht sonderlich elegant (bezgl. Trennung von Logik und Oberfläche), aber so sollte es auch gehen, ja.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Panel als ShowModal?

  Alt 5. Jan 2015, 21:06
In meinen Datenbank-Anwendungen verwende ich gewöhnlich zwei Methoden – SchreibenErlaubt und SchreibenVerboten –, die jeweils vor dem Versetzen des betreffenden Queries in den Edit- oder Append-Modus bzw. Browsemodus aufgerufen werden. Dort stehen dann Sachen wie z.B.:
Delphi-Quellcode:
  DBGrid_Autoren.Enabled := False;
  Bit_Append.Enabled := False;
  Bit_Edit.Enabled := False;
  Bit_Post.Enabled := True;
  Bit_Cancel.Enabled := True;
  Bit_Delete.Enabled := False;
  Bit_Close.Enabled := False;
  DBEd_Vorname.ReadOnly := False;
  DBEd_Nachname.ReadOnly := False;
  DBRich_Autoren.ReadOnly := False;
  DBEd_Vorname.SetFocus;
Eine andere Möglichkeit, gewisse Komponentenzustände zu ändern, sehe ich nicht. Programmieren ist eben eine aufwendige Angelegenheit
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz