vad gör man?
när man klarar alla nybörjarkurser, kan progga lite mot WinAPI:n, behärskar delphi grundläggande...
...men ändå inte fattar ett smack av "proffskod"!
hur går man egentligen vidare?
allt i alla böcker som jag har läst tycker jag mig kunna. (nu kanske det inte stämmer i verkligheten...)
Vill helst inte ploga igenom böcker med svårläst engelska.
någon som har ett bra tips på hur man kommer vidare?
upp ur nybörjarträsket - upp till "hacker"-klassen!
säkerligen är det fler än jag som har ett liknande problem.
Men vad gör man?
------------------
//N99ASP
jtMedlem sedan juni 2000350 inlägg Lär dig läsa tråkiga engelska böcker ;-) . Jag tycker inte det finns några riktigt bra böcker på svenska.
Annars är det väl aldrig fel att göra ett bra program. Har du ingen bra ide så kan du ju prova att försöka göra något som redan finns.
Du får väl fråga om det är något som du tycker är konstigt i "proffskod".
WiNNeMedlem sedan maj 2000192 inlägg Det stora steget för nybörjare är att gå över helt till object-orienterad (OO)kod. Om man sitter i Delphi och trycker ut lite komponenter och skapar lite events till dem är det lätt att tro att man sitter och skapar OO kod när man egentligen programmerar vanlig uppifrån och ner kod (strukturerad kod).
Jag hade själv stora problem med att inse fördelarna med OO kod innan jag började jobba med programmering på heltid. Hemmaprogrammering duger det oftast med vanlig programering.
Vet inte om det finns nån specifik Delphi bok på svenska om OO kodning men du kan ju alltid höra med den lokala bokhandeln eller på nätet.
------------------
winne.net
jtMedlem sedan juni 2000350 inlägg Håller med WINNe om det mesta.
Att börja med OOP brukar ochså göra att man bättre förstår hur delphis klasser(vcl m.m) funkar.
Har du testat att göra någon koponent.
Är inte någon expert på OOP men när man pysslar med komponenter brukar OOP bli ett naturligt sätt att programmera.
kan inte OO-kod vara stukturerad?
eller kanske är det jag som inte fattat innebörden av OO-kod
kan någon isåfall tipsa om var man kan läsa mer om OO-programmering?
nej, jag har inte programmerat någon komponent, men ett antal unit:ar...
appropå det...
jag har en unit som har två funktioner med samma namn, men som resulterar i olika datatyper. problemet är att jag inte kan exportera funktionerna. för det ska väl gå, eller?
jag tänker på TWebBrowser som har ett antal olika versioner av Navigate().
Någon som har nån idé som kan hjälpa?
------------------
//N99ASP
jtMedlem sedan juni 2000350 inlägg Lite att läsa om OOP/delphi: http://www.delphioop.com/
Använder du OverLoad på funtionerna typ.
function MinFunk(param: Integer): Integer; OverLoad;
function MinFunk(param: String): Integer; OverLoad;
nej, det har jag inte provat...
vad exakt gör OverLoad?
------------------
//N99ASP
jtMedlem sedan juni 2000350 inlägg Att deklarera två procedurer med samma namn kallas overloading. Och för att inte delphi ska gnälla vid kompilerning så måste du deklarera dessa med Overload.
Det Overload gör är väl helt enkelt att tala om att function är overload ;-).
Det bästa är nog att kolla i hjälpen på "Overloading procedures and functions".
WiNNeMedlem sedan maj 2000192 inlägg ett litet tillägg är att det måste vara skillnader i anropet till procedurerna/funktionerna som anropas. Sedan beroende på med vilken typ av parameter du skickar med så kör den olika procedurer.
------------------
winne.net
OverLoad funkar inte riktigt som jag vill...
om man använder StrTillTal i exemplet nedan så blir det fel!
Delphi kan inte fatta vilken av funktionerna den ska använda...
nån idé om hur jag ska lösa detta? (vill fortfarande att funktionerna ska ha samma namn).
- - - - - - - - - - - - - - - - - - - - - - -
unit exempel;
interface
uses Windows;
function TalTillStr(tal: integer): string; OverLoad;
function TalTillStr(tal: real): string; OverLoad;
function StrTillTal(s: string): real; OverLoad;
function StrTillTal(s: ShortString): integer; OverLoad;
var StrTillTalDef: Integer = 0;
implementation
function StrTillTal(s: string): real; OverLoad;
var errorcode: integer; tmp: real;
begin
Val(s, tmp, errorcode);
if errorcode <> 0 then
result := StrTillTalDef
else result := tmp;
end;
function StrTillTal(s: ShortString): integer; OverLoad;
var errorcode: integer; tmp: integer;
begin
Val(s, tmp, errorcode);
if errorcode <> 0 then
result := StrTillTalDef
else result := tmp;
end;
function TalTillStr(tal: real): string; OverLoad;
var tmp: string;
begin
Str(tal:0:0, tmp);
result := tmp;
end;
function TalTillStr(tal: integer): string; OverLoad;
var tmp: string;
begin
Str(tal, tmp);
result := tmp;
end;
end.
jtMedlem sedan juni 2000350 inlägg Om man tex skriver
StrTillTal('111');
så går det ju inte att veta om du menar att '123' ska vara en shortstring eller en string. Dessutom som finns shortstring kvar för bakåtkompabilitet.
Tror inte det finns någon lösning om du måste deklarera procedurerna exakt som du gjort. Vad vill du uppnå?
man tycker att delphi kunde fatta att om man tilldelar en realtalsvariabel := StrTillTal(strangen) att den ska välja den version av StrTillTal som passar bäst.
men detta funkar tydligen inte, eller?
jtMedlem sedan juni 2000350 inlägg Vilken funktion tycker du delphi ska välja?
var
x: real;
begin
x := StrTillTal('10') / 3;
end;
jo, jag fattade vad du menade...
(jag tycker delphi skulle valt realtyp)
[Redigerat av svampträsk den 10 okt 2000]