![]() |
reset eines programmes?
moin, ich bins wieder. wie ihr seht, hab ich noch nicht so den plan über befehle in delphi.
deshalb meine frage: wie resettet ich ein programm? bzw. wie setze ich eine combobox in den anfangszustand zurück? danke im voraus. |
Re: reset eines programmes?
Fallen mir zwei Sachen ein:
1) für alle Werte die geändert werden standartkonstanten anlegen u. zuweisen = Aufwand³³³³³³³³³ (Bei kompos. evt. Tag benutzen) 2) das Proggi neustarten Ratte |
Re: reset eines programmes?
Moin Herrentor,
weitere Variante: Initialisieren aller entsprechenden Komponenten/Variablen an zentraler Stelle, und diese Routine bei einem Reset wieder aufrufen. |
Re: reset eines programmes?
wie starte ich das programm neu?
ich hab die erste variante von ratte, jedoch ist das problem da, dass ich die combobox nicht wieder zurücksetzen kann. |
Re: reset eines programmes?
Moin Herrentor,
Zitat:
|
Re: reset eines programmes?
ich kenn den befehl nicht, der die combobox in den anfangszustand bringt.
Code:
das klappt nicht.combobox.items[-1]; |
Re: reset eines programmes?
Delphi-Quellcode:
:hi:
combobox.items.clear
|
Re: reset eines programmes?
hatte ich schon versucht und habs gerade nochmal probiert, klappt nicht.
|
Re: reset eines programmes?
Was klappt denn nicht. Was möchtest du denn überhaupt? :gruebel:
|
Re: reset eines programmes?
die combobox wird nicht bei einem drücken des reset buttons in den anfangszustand gesetzt. es bleibt das zuletzt ausgewählte drin stehen.
|
Re: reset eines programmes?
Setz mal ComboBox.ItemIndex auf -1.
|
Re: reset eines programmes?
geht auch nicht
|
Re: reset eines programmes?
Dann schließ doch einfach das Prog und im
Code:
startest
OnClose
Du es mit
Code:
wieder neu... :?:
ShellEcecute
|
Re: reset eines programmes?
muss ich dann hinter onclose den programmnamen hängen?
|
Re: reset eines programmes?
so gehts
Delphi-Quellcode:
raik
combobox1.Items.strings[0]:='';
combobox1.Items.clear; |
Re: reset eines programmes?
listenindex überschreitet das maximum(0)
was auch immer das zu bedeuten hat |
Re: reset eines programmes?
haste du das auch genau so übernommen?
|
Re: reset eines programmes?
ja, hab es sogar reinkopiert
|
Re: reset eines programmes?
sorry für die 0 mal combobox1.itemindex einsetzen
funktioniert aber nur wenn itemindex <> -1 ist. |
Re: reset eines programmes?
Also wenn Du nun einen kompletten Reset Deines Programms willst dann...
Code:
...ansonsten wenn Du nur die den Index der ListBox zurücksetzen
unit Unit1;
interface uses Windows, SysUtils, Forms, StdCtrls, Controls, Classes, ShellAPI; // <- die Unit ShellAPI wird für ShellExecute benötigt !!! type TForm1 = class(TForm) Button1: TButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); end; var Form1: TForm1; Reset: Boolean = FALSE; implementation {$R *.dfm} procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if Reset then begin ShellExecute(Self.Handle, 'open', PChar(Application.ExeName), '', PChar(ExtractFilePath(Application.ExeName)), SW_SHOWNORMAL); Action := caFree; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Reset := TRUE; Form1.Close(); end; end.
Code:
Wenn es das war was du wolltest :gruebel:
if (ListBox.Items.Count > 0) then ListBox.ItemIndex := 0 else ListBox1.ItemIndex := -1;
|
Re: reset eines programmes?
wie drück ich das aus, dass itemindex -1 ist? wenn ich das nämlich nicht schreibe, sagt er: der listenindex überschreitet das maximum von (-1)
|
Re: reset eines programmes?
Delphi-Quellcode:
ausserdem muss ja schon was gewählt wurden sein, sonst würde ja ein löschen keinen sinn machen.
if Combobox1.itemindex <> -1 then
begin combobox1.Items.strings[ComboBox1.itemindex]:=''; combobox1.Items.clear; end; |
Re: reset eines programmes?
HEy, wo ist meine Antwort hin :?:
|
Re: reset eines programmes?
Moin Raik,
Du meintest wahrscheinlich:
Delphi-Quellcode:
ComboBox1.Text := '';
ComboBox1.Items.Clear; |
Re: reset eines programmes?
jetzt ändert er das aktivierte nicht und löscht außerdem die liste mit der auswahl
|
Re: reset eines programmes?
Moin Herrentor,
wie sieht denn die Combobox aus, wenn das Programm startet? Sind da schon Inhalte drin, oder ist sie leer? |
Re: reset eines programmes?
auch hier bleibt die auswahl erhalten und die liste wird gelöscht, erst nach einem klick in die combobox steht nichts mehr drin.
|
Re: reset eines programmes?
moin chris.
das oben funktioniert auch :mrgreen: , obwohl deins eleganter ist raik |
Re: reset eines programmes?
dieser teil steht in meiner prozedur formcreate:
Code:
sprich es steht noch kein begriff drin, aber die liste ist gefüllt.with Combobox1 do begin Tab.DefaultRowHeight := Height; Visible := False; Items.Add('Rechteck'); Items.Add('Dreieck'); Items.Add('Kreissektor'); Items.Add('Kreisabschnitt'); Items.Add('Kreis'); Text := ''; end; |
Re: reset eines programmes?
Moin Raik,
kann eigentlich nicht sein. :gruebel: Der Inhalt des Editfeldes der ComboBox wird von Deiner Version doch unberührt gelassen. Du löscht erst den Inhalt eines Items der Drop Down Liste, und anschliessend die ganze Liste. |
Re: reset eines programmes?
Moin Herrentor,
dann solltest Du die Routine ergänzen:
Code:
Anschliessend lagerst Du die Routine in einer Methode des Formulares aus, und rufst diese einmal aus dem Form Create, und ein anderes Mal aus der Button Click Routine des Reset Buttons auf.
with Combobox1 do
begin Tab.DefaultRowHeight := Height; Visible := False; [color=red]Items.Clear;[/color] Items.Add('Rechteck'); Items.Add('Dreieck'); Items.Add('Kreissektor'); Items.Add('Kreisabschnitt'); Items.Add('Kreis'); Text := ''; end; |
Re: reset eines programmes?
moin chris,
getestet und für gut befunden :mrgreen: raik |
Re: reset eines programmes?
Moin Raik,
Deins oder meins :gruebel: :mrgreen: |
Re: reset eines programmes?
moin chris,
deins und meins :mrgreen: raik |
Re: reset eines programmes?
das steht bei mir in der tabselectcell prozedur
Code:
und das im programm:var R: TRect; i: integer; begin if (ACol = 1) and (ARow > 0) then begin R := Tab.CellRect(ACol, ARow); R.Left := R.Left + Tab.Left; R.Right := R.Right + Tab.Left; R.Top := R.Top + Tab.Top; R.Bottom := R.Bottom + Tab.Top; with Combobox1 do begin ItemIndex := Items.IndexOf(Tab.Cells[ACol, ARow]); Left := R.Left + 1; Top := R.Top + 1; Width := (R.Right + 1) - R.Left; Height := (R.Bottom + 1) - R.Top; Visible := True; SetFocus; end; end; CanSelect := True; end;
Code:
procedure TForm1.ComboBox1Change(Sender: TObject); begin Tab.Cells[Tab.Col, Tab.Row]:=ComboBox1.Items[ComboBox1.ItemIndex]; ComboBox1.Visible := False; Tab.SetFocus; end; procedure TForm1.ComboBox1Exit(Sender: TObject); begin Tab.Cells[Tab.Col, Tab.Row]:=ComboBox1.Items[ComboBox1.ItemIndex]; ComboBox1.Visible := False; Tab.SetFocus; end; |
Re: reset eines programmes?
wie lager ich denn aus?
|
Re: reset eines programmes?
moin herrentor,
in beiden proceduren machst du das gleiche :shock: warum? raik |
Re: reset eines programmes?
wenn ich eins weglasse, spinnt er total rum.
|
Re: reset eines programmes?
Moin Herrentor,
Du kannst eine Prozedur unterschiedlichen Ereignissen zuweisen, wenn ihre Parameter übereinstimmen. In diesem Falle kannst Du, z.B., die OnChange so lassen wie sie ist, und sie im Objekt Inspektor dem OnExit Event zuweisen (klick mal auf den Pfeil abwärts rechts vom Event) |
Re: reset eines programmes?
ok danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz