AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Anzeige der Nebenform vor der Hauptform
Thema durchsuchen
Ansicht
Themen-Optionen

Anzeige der Nebenform vor der Hauptform

Ein Thema von Avax2k · begonnen am 29. Jan 2006 · letzter Beitrag vom 29. Jan 2006
Antwort Antwort
Seite 3 von 3     123   
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#21

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:19
Der Button wird durch deinen Code nicht gedrückt, nur die Routine ButtonClick() wird ausgeführt. Das sollte kein Problem bereiten. Wahrscheinlich hast du irgendwo deinen Code nicht aufgeräumt - nach den vielen Änderungen. Ich habe dein Problem nochmal nachgestellt, allerdings ohne deine Komponentennamen. Über Sinn und Unsinn deiner Vorgehensweise möchte ich mir besser keine Gedanken machen.

Delphi-Quellcode:
unit SpecialFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IniFiles;

type
  TSpecialForm = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    ini: TMemIniFile;
  public
  end;

var
  SpecialForm: TSpecialForm;

implementation

{$R *.dfm}

const
  Password = 'hallo';

procedure TSpecialForm.Button1Click(Sender: TObject);
begin
  if Edit1.Text = Password then
  begin
    ini.WriteString('Abschnitt', 'Eintrag', Edit1.Text);
    ini.UpdateFile;
    ModalResult := mrOK;
  end else ShowMessage(Password);
end;

procedure TSpecialForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if Edit1.Text = Password
    then ModalResult := mrOK
    else ModalResult := mrCancel;
end;

procedure TSpecialForm.FormCreate(Sender: TObject);
var
  fn: TFileName;
begin
  fn := ChangeFileExt(ParamStr(0), '.ini');
  ini := TMemIniFile.Create(fn);
  Edit1.Text := ini.ReadString('Abschnitt', 'Eintrag', '');
  Button1Click(nil);
end;

procedure TSpecialForm.FormDestroy(Sender: TObject);
begin
  ini.Free;
end;

end.
marabu
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#22

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:31
habe gerade alles nochmal nachgeprüft und sogar gegen deinen Code ersetzt

Ergebnis

der Knopf wird immer noch nicht gedürckt..ich muss immer selbst drücken

wenn ich in Button1Click(Button1) oder Button1Click(nil) mache geht es einfach nicht
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#23

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:52
Ich habe doch geschrieben - der Knopf wird nicht gedrückt, aber der Code wird ausgeführt. Was erwartest du denn? Dass die Form automatisch geschlossen wird? Bedenke, dass du das ModalResult im OnCreate setzt. Zu diesem Zeitpunkt ist das noch zu früh.

marabu
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#24

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:55
achso das soll bedeuten, dass was ich vorhabe, dass das Fenster sich automatisch schließt wenn alles stimmt ist unmöglich ?? und es muss obe man will oder nicht der Knopf gedrückt werden ??

wenn ja dann ist ja das alles was ich mit deiner Hilfe erstellt habe ja vollkommen nutzlos

außerdem verstehe ich das nicht...dass doch die Knopfprocedur ausgelöst wird wenn eben nichts in der ini steht..dann kommt die Meldung mit dem Fenster... wieso geht das dann nicht weiter wenn etwas drin steht ist doch das gleiche Prinzip und onCreat showmodal gesetzt und da geht es
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#25

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 18:21
Warum muss denn dein Fenster noch aufgehen, wenn alles schon stimmt? Da ist die Sache doch schon wurmig. Und dass ShowMessage() funktioniert, wenn du die ButtonClick Routine rufst. Das beweist, dass diese Routine aus dem OnCreate ausgeführt wird. Auch der Zweig, in dem du ModalResult setzt, wird ausgeführt - er bleibt zu diesem Zeitpunkt nur ohne Wirkung, weil der Wert erst später initialisiert und ausgewertet wird. Deine Form ist noch nicht modal zu diesem Zeitpunkt.

Vielleicht kannst du dich ja doch noch mit meinem Vorschlag aus der Demo anfreunden.

marabu
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#26

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 18:35
hab es nun mit einem Timer hinbekommen NUR dieser löst den Knopf ja in einem bestimmten Intervall aus.. werde versuchen da irgendwas zu ändern sodass er gar nciht aktiviert wird, wenn das Editfeld leer ist.. aber das ist denke ich, wenn dann ein anderer Topic.

Vieln super herzlichen Dank für deine wirklich sehr gute Unterstützung Marabu!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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:27 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