AGB  ·  Datenschutz  ·  Impressum  







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

Problem bei MDIChild Enabled

Ein Thema von e-gon · begonnen am 2. Okt 2013 · letzter Beitrag vom 21. Okt 2013
Antwort Antwort
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#1

Problem bei MDIChild Enabled

  Alt 2. Okt 2013, 11:32
Hallo!

Mein Programm dient zur Thumbnail-Betrachtung und MDIChilds repräsentieren verschiedene Verzeichnisse. Je nach Anzahl von Bildern im Verzeichnis kann das Laden eines MDIChilds auch mal mehrere Sekunden dauern. Wird aber während des Ladevorgangs der Scrollbalken des Childs bewegt, wird das nächste erzeugte Vorschaubild versetzt auf das MDIChild gezeichnet.

Um dies zu verhindern setzte ich zuvor Self.Enabled:= False und nach dem Ladevorgang auf True. Danach kommt allerdings kein MouseWheel-Ereignis mehr bei dem MDIChild an. Erst wenn ich ein anderes MDIChild anklicke und dann zurück auf das ursprüngliche Child wechsle, empfängt das MDIChild wieder die Ereignisse.

Vergeblich versucht habe ich bereits:
Delphi-Quellcode:
Self.BringToFront;
Self.SetFocus;
Self.Show;
Self.Repaint;
Weiß jemand welche Eigenschaft/Methode ich setzen/aufrufen muss um wieder zum Empfänger der MouseWheel-Ereignisse zu werden?

Gruß
e-gon
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Problem bei MDIChild Enabled

  Alt 17. Okt 2013, 10:11
Vielen Dank für die zahlreichen Hilfestellungen!
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Problem bei MDIChild Enabled

  Alt 17. Okt 2013, 10:29
Mir fehlt die Vorstellungskraft deines Problems.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: Problem bei MDIChild Enabled

  Alt 17. Okt 2013, 10:31
Mal abgesehen davon, daß MDI wie auch Delphi 6 halt nicht gerade dem Stand der Technik entspricht, ist die Hauptursache für fehlende Antworten eine unzureichend gestellte Frage. Wenn ich, wie in diesem Fall, erst selbst umständlich ein Testszenario aufbauen muss, lass ich es lieber gleich bleiben.

Du kannst natürlich jederzeit professionelle Hilfe gegen Bezahlung nachfragen. Auch in diesem Forum gibt es einige Leute, die damit ihren Lebensunterhalt verdienen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#5

AW: Problem bei MDIChild Enabled

  Alt 18. Okt 2013, 00:16
Hallo,

[...] Wenn ich, wie in diesem Fall, erst selbst umständlich ein Testszenario aufbauen muss, lass ich es lieber gleich bleiben. [...]
Dazu hatte ich auch keine große Lust. Daher nur:
  • Form1 (fsMDIForm) mit einem Button
  • Form2 (fsMDIChild) mit einem übergroßen Panel (wir wollen ja auch scrollen) und ein Timer, der die längere Ladezeit simuliert

Dann noch etwas Code
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  f : TForm2;
begin
  f := TForm2.Create (Self);
  f.Show
end;
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  AutoScroll := True;
  Enabled := False
end;

procedure TForm2.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  ScrollBy (0, WheelDelta)
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;

  Enabled := True;
  SetFocus
end;
Wird der Timer getriggert kommt das Form in den Vordergrund (falls von einem anderen Form überdeckt) und das Scrollen per Mausrad ist problemlos möglich.

Also wird es wohl irgendwo an Deinem Code haken. Was, warum, wieso, weshalb, sorry, da habe ich keine Lust mit der langen Stange im Nebel zu stochern. Gib den hilfswilligen hier im Forum mal etwas mehr Infos und Dir wird sicherlich geholfen.

BTW völlig kontraproduktiv sind Posts like:
Vielen Dank für die zahlreichen Hilfestellungen!
Mach Dir mal besser Gedanken darüber:
[...] die Hauptursache für fehlende Antworten eine unzureichend gestellte Frage. [...]

Gruß
Volker Zeller

Geändert von Volker Z. (18. Okt 2013 um 13:32 Uhr)
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Problem bei MDIChild Enabled

  Alt 21. Okt 2013, 13:29
Hallo,

tut mir leid, wenn Ihr meine Fragestellung als unzureichend angesehen habt. Aber das hätte mir ja auch jemand auf meine Anfrage hin sagen können und mich nicht 14 Tage im Ungewissen lassen! Außerdem ist es nicht das erste Mal, dass ich hier Monologe führen musste! So warte ich beispielsweise bis heute auf eine Antwort zu diesem Thema!
Sorry, wenn ich deshalb etwas zu provozierend war!

@Uwe Raabe:
Ich weiß dass Delphi 6 nicht mehr auf dem neusten Stand ist. Aber ich habe damals verdammt viel Geld dafür ausgegeben!
Zitat:
Du kannst natürlich jederzeit professionelle Hilfe gegen Bezahlung nachfragen. Auch in diesem Forum gibt es einige Leute, die damit ihren Lebensunterhalt verdienen.
Das wusste ich nicht, klingt aber interessant! Wie würde ich bei Bedarf diese Leute kontaktieren?

@Volker Z.:
Danke für die Bemühungen! Aber am Wochenende habe ich nun endlich eine andere Lösung gefunden. Statt das MDIChild zu "disablen" setze ich die Top- und Left-Eigenschaften nun abhängig von den Scrollbalken.
Delphi-Quellcode:
IMG[Index].Top:= (Index div ColCount) * (OpThumbSize + 60) - Self.VertScrollBar.Position;
IMG[Index].Left:= (Index mod ColCount) * (OpThumbSize + 8) - Self.HorzScrollBar.Position;
Scheint auch die elegantere Lösung zu sein...

Gruß
e-gon
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#7

AW: Problem bei MDIChild Enabled

  Alt 21. Okt 2013, 14:35
Zitat:
Du kannst natürlich jederzeit professionelle Hilfe gegen Bezahlung nachfragen. Auch in diesem Forum gibt es einige Leute, die damit ihren Lebensunterhalt verdienen.
Das wusste ich nicht, klingt aber interessant! Wie würde ich bei Bedarf diese Leute kontaktieren?
http://www.delphipraxis.net/66-job-b...e-und-gesuche/
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 14:02 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