Autor Beitrag
Michael15
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Win XP Professional
Delphi 2, 3, 7, 8
BeitragVerfasst: Di 26.04.05 16:59 
ausblenden volle Höhe 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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
(*********************************)
(******** Array - Demo ***********)
(************* von ***************)
(*********** Michael *************)
(********** 25.04.2005 ***********)
(*********************************)

const max = 40;
      datpfad = 'D:\';
      datname = 'liste.dat';

type Tds = record
             vorname : string [30];
             nachname : string [30];
             telnr : string [20];
             strasse : string [30];
             stadt : string [30];
           end;
     Tliste = array [1..max] of Tds;
     Tdat = file of Tds;

var liste   : Tliste;
    dat     : Tdat;
    zaehler : integer;


(**************************************)
(******** Eigene Prozeduren ***********)
(**************************************)

procedure clear_list(var x:Tliste);
var i : integer;
begin
  for i := 1 to max do // FOR-Schleife
    begin
      x[i].vorname := '';
      x[i].nachname := '';
      x[i].telnr := '';
      x[i].strasse := '';
      x[i].stadt := '';
      form1.edit1.clear;
      form1.edit2.clear;
      form1.edit3.clear;
      form1.edit4.clear;
      form1.edit5.clear;
    end;
end;

procedure show_list(x:Tliste);
var i : integer;
begin
  form1.listbox1.clear;
  for i := 1 to max do
    begin
      if x[i].strasse <> '' then
        begin
          form1.listbox1.items.add(x[i].vorname+' '
           + x[i].nachname + ', ' + x[i].telnr + ', '
           + x[i].strasse  + ', ' + x[i].stadt + '.');
        end;
    end;
end;

procedure speichern(x:Tliste);
var i : integer;
begin
  assignfile(dat,datpfad+datname);
  rewrite(dat); //anrufen mit Killfunktion
  for i := 1 to max do
    begin
      write(dat,x[i]);//i-ten DS speichern
    end;
  closefile(dat); // auflegen
  zaehler := 1;
end;

procedure laden(var x:Tliste);
var i : integer;
begin
  assignfile(dat,datpfad+datname);
  reset(dat); //öffnen und zurücksetzen
  for i := 1 to max do
    begin
      read(dat,x[i]);//i-ten DS laden
  end;
  closefile(dat); // auflegen
end;

procedure suche_freien_platz(var frei:integer;x:Tliste);
var i : integer;
begin
  frei := 1;
  i := 1;
  repeat
    if x[i].stadt <> '' then inc(frei);
    inc(i);
  until (x[i].stadt = '') or(i=max);
end;

procedure uebernehmen(frei:integer;var x:Tliste);
begin
  x[frei].vorname := form1.edit1.text;
  x[frei].nachname := form1.edit2.text;
  x[frei].telnr := form1.edit3.text;
  x[frei].strasse := form1.edit4.text;
  x[frei].stadt := form1.edit5.text;
end;

procedure aendern(x:Tliste);
var aktuell : integer;
begin
  aktuell := form1.listbox1.itemindex + 1;
  form1.edit1.text := x[aktuell].vorname;
  form1.edit2.text := x[aktuell].nachname;
  form1.edit3.text := x[aktuell].telnr;
  form1.edit4.text := x[aktuell].strasse;
  form1.edit5.text := x[aktuell].stadt;
end;

procedure loeschen(var x:Tliste);
var i,aktuell : integer;
begin
  aktuell := form1.listbox1.itemindex + 1;
  for i := aktuell to max do
    begin
      x[i]:= x[i+1];
    end;
  x[max].vorname := '';
  x[max].nachname := '';
  x[max].telnr := '';
  x[max].strasse := '';
  x[max].stadt := '';
  show_list(liste);
end;

procedure tausche_platz(var x:Tliste;platz :integer);
var i : integer;
    lager : Tds;
begin
  if     (platz < max)
     and (x[platz+1].strasse <> '') then
     begin
       lager := x[platz];
       x[platz]:=x[platz+1];
       x[platz+1]:= lager;
     end;
end;


procedure uebernehmen_klick;
var frei : integer;
begin
  suche_freien_platz(frei,liste);
  uebernehmen(frei,liste);
  show_list(liste);
  form1.edit1.clear;
  form1.edit2.clear;
  form1.edit3.clear;
  form1.edit4.clear;
  form1.edit5.clear;
  form1.edit1.setfocus;
  form1.button6.enabled := true;
end;

procedure aendern_klick;
begin
  aendern(liste);
end;

procedure aenderung_uebernehmen_klick;
var aktuell :integer;
begin
  aktuell := form1.listbox1.itemindex + 1;
  uebernehmen(aktuell,liste);
  show_list(liste);
  form1.edit1.clear;
  form1.edit2.clear;
  form1.edit3.clear;
  form1.edit4.clear;
  form1.edit5.clear;
  form1.button6.enabled := true;
end;

procedure loeschen_klick;
begin
  loeschen(liste);
end;

procedure tausche_platz_klick;
var platz : integer;
begin
  platz := form1.listbox1.itemindex + 1;
  tausche_platz(liste,platz);
  show_list(liste);
end;

procedure stop_klick;
begin
      application.title := 'Adressprogramm';
      showmessage ('Produced By');
      halt;
end;

procedure speichern_klick;
begin
  speichern(liste);
end;

procedure laden_klick;
begin
  laden(liste);
  show_list(liste);
  form1.button6.enabled := true;
end;

procedure clear_all;
begin
  clear_list(liste);
  show_list(liste);
end;

procedure bubble_klick;
begin
end;

procedure settings;
begin
  form1.caption := 'Adressprogramm';
  form1.windowstate := wsmaximized;
  form1.edit1.setfocus;
  form1.button6.enabled := false;
  laden_klick;
end;

(**************************************)
(******** DELPHI Prozeduren ***********)
(**************************************)

procedure TForm1.FormActivate(Sender: TObject);
begin
  settings;
end;

procedure TForm1.beenden1Click(Sender: TObject);
begin
  stop_klick;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  uebernehmen_klick;;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  aendern_klick;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  aenderung_uebernehmen_klick;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  loeschen_klick;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 tausche_platz_klick;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  speichern_klick;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  laden_klick;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  clear_all;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  bubble_klick;
end;

end.


//Wie kann ich das Listboxitem x[i].vorname nach dem Alphabet ordnen. (mit bubble_klick;)
// wie kann ich mit printdialog den listboxinhalt drucken???

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.
Harry M.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754

Win 2000, XP
D2005
BeitragVerfasst: Di 26.04.05 17:41 
tach!
nach alphabet kannst du sie mit TRUE oder FALSE unter "sorted" im objektinspector ändern und drucken mit printdialog+F1 :lol:

_________________
Gruß Harry
Et spes me per dies sine te ducat et amor me ferat, si dolor spem tollit.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 26.04.05 17:49 
Hallo!

Bitte erstelle für jede Frage einen eigenen Thread. Das gibt sonst erfahrungsgemäßg ein ziemliches Durcheinander. :-)

Außerdem ist es nicht sinnvoll, den kompletten Quelltext zu posten. Beschränke Dich bitte auf die relevanten Teile, das liest sich ja kein Mensch durch. ;-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.